[PATCH] drm/i915: Check that we disable RPS interrupts prior to suspending

Chris Wilson chris at chris-wilson.co.uk
Mon Aug 21 09:58:53 UTC 2017


Anytime we suspend, either at runtime or S3, check that we have disabled
the RPS interrupt generator (via PMINTRMSK). This should have been done
upon idling (see gen6_rps_idle()) prior to dropping our GT wakeref.

Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Imre Deak <imre.deak at intel.com>
Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
Cc: Katarzyna Dec <katarzyna.dec at intel.com>
---
 drivers/gpu/drm/i915/intel_pm.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 68187bcfded4..8f66587a45de 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -7796,13 +7796,16 @@ void intel_cleanup_gt_powersave(struct drm_i915_private *dev_priv)
  */
 void intel_suspend_gt_powersave(struct drm_i915_private *dev_priv)
 {
+	GEM_BUG_ON(dev_priv->gt.awake);
+
 	if (INTEL_GEN(dev_priv) < 6)
 		return;
 
 	if (cancel_delayed_work_sync(&dev_priv->rps.autoenable_work))
 		intel_runtime_pm_put(dev_priv);
 
-	/* gen6_rps_idle() will be called later to disable interrupts */
+	GEM_WARN_ON(I915_READ(GEN6_PMINTRMSK) !=
+		    gen6_sanitize_rps_pm_mask(dev_priv, ~0));
 }
 
 void intel_sanitize_gt_powersave(struct drm_i915_private *dev_priv)
-- 
2.14.1



More information about the Intel-gfx-trybot mailing list