drm/i915: don't suspend gt until after we disable irqs and display (v2)
authorDave Airlie <airlied@redhat.com>
Wed, 23 Jul 2014 04:25:24 +0000 (14:25 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 24 Jul 2014 00:26:58 +0000 (10:26 +1000)
When I moved the irq disable down to after display disable,
I didn't realise the gt suspend also required irqs off, so move it
down as well.

Fixes WARNs seen at suspend/resume time.

v2: moved the rps flush down as well.

Tested-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/i915/i915_drv.c

index a361bb9bc2430e4110506d4ff982498791d6644d..2a83833207b1be925531892549132202d9c53c06 100644 (file)
@@ -516,11 +516,6 @@ static int i915_drm_freeze(struct drm_device *dev)
                        return error;
                }
 
-               flush_delayed_work(&dev_priv->rps.delayed_resume_work);
-
-
-               intel_suspend_gt_powersave(dev);
-
                /*
                 * Disable CRTCs directly since we want to preserve sw state
                 * for _thaw.
@@ -532,8 +527,13 @@ static int i915_drm_freeze(struct drm_device *dev)
                drm_modeset_unlock_all(dev);
 
                intel_dp_mst_suspend(dev);
+
+               flush_delayed_work(&dev_priv->rps.delayed_resume_work);
+
                intel_runtime_pm_disable_interrupts(dev);
 
+               intel_suspend_gt_powersave(dev);
+
                intel_modeset_suspend_hw(dev);
        }