Summary: | [regression] WARNING: CPU: 1 PID: 1961 at drivers/gpu/drm/i915/intel_sprite.c:58 intel_pipe_update_start | ||
---|---|---|---|
Product: | DRI | Reporter: | Chris Wilson <chris> |
Component: | DRM/Intel | Assignee: | Chris Wilson <chris> |
Status: | CLOSED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> |
Severity: | normal | ||
Priority: | high | CC: | intel-gfx-bugs |
Version: | XOrg git | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Chris Wilson
2014-04-30 13:22:12 UTC
intel_pipe_update_start(): WARN_ON(!mutex_is_locked(&crtc->base.mutex)); Could it be as simple as diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 36bdbdfbedb0..160b4b5eb125 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -476,8 +476,11 @@ static int i915_drm_freeze(struct drm_device *dev) * for _thaw. */ mutex_lock(&dev->mode_config.mutex); - list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) + list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { + mutex_lock(&crtc->mutex); dev_priv->display.crtc_disable(crtc); + mutex_unlock(&crtc->mutex); + } mutex_unlock(&dev->mode_config.mutex); intel_modeset_suspend_hw(dev); ? Guilty commit: commit 24576d23976746cb52e7700c4cadbf4bc1bc3472 Author: Jesse Barnes <jbarnes@virtuousgeek.org> Date: Tue Mar 26 09:25:45 2013 -0700 drm/i915: enable VT switchless resume v3 With the other bits in place, we can do this safely. v2: disable backlight on suspend to prevent premature enablement on resume v3: disable CRTCs on suspend to allow RTD3 (Kristen) Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> but assigning to Daniel as the lock imagineer. (In reply to comment #2) > Could it be as simple as > > diff --git a/drivers/gpu/drm/i915/i915_drv.c > b/drivers/gpu/drm/i915/i915_drv.c > index 36bdbdfbedb0..160b4b5eb125 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -476,8 +476,11 @@ static int i915_drm_freeze(struct drm_device *dev) > * for _thaw. > */ > mutex_lock(&dev->mode_config.mutex); > - list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) > + list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) > { > + mutex_lock(&crtc->mutex); > dev_priv->display.crtc_disable(crtc); > + mutex_unlock(&crtc->mutex); > + } > mutex_unlock(&dev->mode_config.mutex); > > intel_modeset_suspend_hw(dev); > > ? Has my review, definitely. Please submit to intel-gfx. commit f87133cf5472415afff9a561ff6342574bde9342 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Thu May 22 09:44:40 2014 +0100 drm/i915: Hold CRTC lock whilst freezing the planes |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.