diff -u a/i915_suspend.c b/i915_suspend.c --- a/i915_suspend.c 2012-08-26 18:02:30.820255568 +0200 +++ b/i915_suspend.c 2012-08-26 18:02:34.180256573 +0200 @@ -877,6 +877,15 @@ I915_WRITE(IMR, dev_priv->saveIMR); } + mutex_unlock(&dev->struct_mutex); + + if (drm_core_check_feature(dev, DRIVER_MODESET)) + intel_init_clock_gating(dev); + + intel_enable_gt_powersave(dev); + + mutex_lock(&dev->struct_mutex); + /* Cache mode state */ I915_WRITE(CACHE_MODE_0, dev_priv->saveCACHE_MODE_0 | 0xffff0000);