diff options
author | Sean Paul <seanpaul@chromium.org> | 2012-03-23 08:52:58 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-04-03 04:37:37 -0400 |
commit | 927a2f119e8235238a2fc64871051b16c9bdae75 (patch) | |
tree | 982fd48fc0a39dd5ce0e073b3475283219bd11a7 /drivers/gpu/drm | |
parent | e02f14cd48a5da0ebaecf88c93dbd54a81e0dead (diff) |
drm/i915: Add lock on drm_helper_resume_force_mode
i915_drm_thaw was not locking the mode_config lock when calling
drm_helper_resume_force_mode. When there were multiple wake sources,
this caused FDI training failure on SNB which in turn corrupted the
display.
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@kernel.org
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 19d55bc54873..dfa55e7478fb 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -538,7 +538,9 @@ static int i915_drm_thaw(struct drm_device *dev) | |||
538 | drm_irq_install(dev); | 538 | drm_irq_install(dev); |
539 | 539 | ||
540 | /* Resume the modeset for every activated CRTC */ | 540 | /* Resume the modeset for every activated CRTC */ |
541 | mutex_lock(&dev->mode_config.mutex); | ||
541 | drm_helper_resume_force_mode(dev); | 542 | drm_helper_resume_force_mode(dev); |
543 | mutex_unlock(&dev->mode_config.mutex); | ||
542 | 544 | ||
543 | if (IS_IRONLAKE_M(dev)) | 545 | if (IS_IRONLAKE_M(dev)) |
544 | ironlake_enable_rc6(dev); | 546 | ironlake_enable_rc6(dev); |