[PATCH 1/3] drm/i915: Hold RPM reference while setting freq limits through debugfs

Chris Wilson chris at chris-wilson.co.uk
Fri Sep 23 10:17:06 UTC 2016


On Fri, Sep 23, 2016 at 03:22:26PM +0530, Sagar Arun Kamble wrote:
> Ensure device is active while setting frequency limits as GEN6_RPNSWREQ
> is accessed to set the frequency. Following assert helped catch this:
> [drm:assert_rpm_wakelock_held] RPM wakelock ref not held during HW access

The alternative would be to only touch the hw when busy, since we set
the desired frequency on idle->busy transition. Something like

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 71797e1c6f42..9282426b6ed0 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -5037,6 +5037,11 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv,
 
 void intel_set_rps(struct drm_i915_private *dev_priv, u8 val)
 {
+	if (!dev_priv->gt.awake) {
+		dev_priv->rps.cur_freq = val;
+		return;
+	}
+
 	if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
 		valleyview_set_rps(dev_priv, val);
 	else

with a preceding lockdep_assert_held(dev_priv->rps.hw_lock);
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx-trybot mailing list