[Intel-gfx] [PATCH] drm/i915: unlock mutex before intel_modeset_init_hw

Paulo Zanoni przanoni at gmail.com
Fri May 18 22:57:13 CEST 2012


From: Paulo Zanoni <paulo.r.zanoni at intel.com>

Because on IVB, intel_modeset_init_hw calls gen6_enable_rps with locks
the mutex. This problem broke suspend on my machine. It was introduced
in the following commit:

commit 2e1352cf196094f44e73776f41087f4c489ab936
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed May 9 11:56:28 2012 +0100

    drm/i915: gen6_enable_rps() wants to be called after ring initialisation

This fix was actually suggested by Chris Wilson on a conversation, so
the credit goes to him. I just bisected the problem, reported to him
and tested his idea.

Cc: Chris Wilson <chris at chris-wilson.co.uk>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
---
 drivers/gpu/drm/i915/i915_drv.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 3947804..d3e1948 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -638,9 +638,9 @@ static int i915_drm_thaw(struct drm_device *dev)
 		dev_priv->mm.suspended = 0;
 
 		error = i915_gem_init_hw(dev);
-		intel_modeset_init_hw(dev);
 		mutex_unlock(&dev->struct_mutex);
 
+		intel_modeset_init_hw(dev);
 		drm_mode_config_reset(dev);
 		drm_irq_install(dev);
 
-- 
1.7.9.5




More information about the Intel-gfx mailing list