From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com ([134.134.136.24]:20742 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753148AbdBTOav (ORCPT ); Mon, 20 Feb 2017 09:30:51 -0500 From: Mika Kuoppala To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: Chris Wilson , stable@vger.kernel.org Subject: Re: [PATCH 4/7] drm/i915: Use set_rps to enable RPS In-Reply-To: <20170220094713.22874-4-chris@chris-wilson.co.uk> References: <20170220094713.22874-1-chris@chris-wilson.co.uk> <20170220094713.22874-4-chris@chris-wilson.co.uk> Date: Mon, 20 Feb 2017 16:29:16 +0200 Message-ID: <871sutdjgj.fsf@gaia.fi.intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: stable-owner@vger.kernel.org List-ID: Chris Wilson writes: > Defer actual enabling of RPS to the set rps routine, called upon > enabling and so we only start RPS when all thresholds have been set. > > Signed-off-by: Chris Wilson > Cc: Mika Kuoppala > Cc: stable@vger.kernel.org As discussed in irc, we will need a followup cleanup as the function names deviate from the actual content. Reviewed-by: Mika Kuoppala > --- > drivers/gpu/drm/i915/intel_pm.c | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index 169c4908ad5b..a40ad32d76eb 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -5344,9 +5344,17 @@ static void gen9_enable_rps(struct drm_i915_private *dev_priv) > > I915_WRITE(GEN6_RP_IDLE_HYSTERSIS, 0xa); > > + I915_WRITE(GEN6_RP_CONTROL, > + GEN6_RP_MEDIA_TURBO | > + GEN6_RP_MEDIA_HW_NORMAL_MODE | > + GEN6_RP_MEDIA_IS_GFX | > + GEN6_RP_UP_BUSY_AVG | > + GEN6_RP_DOWN_IDLE_AVG); > + > /* Leaning on the below call to gen6_set_rps to program/setup the > - * Up/Down EI & threshold registers, as well as the RP_CONTROL, > - * RP_INTERRUPT_LIMITS & RPNSWREQ registers */ > + * Up/Down EI & threshold registers, as well as the > + * RP_INTERRUPT_LIMITS & RPNSWREQ registers > + */ > reset_rps(dev_priv, gen6_set_rps); > > intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); > @@ -5476,7 +5484,6 @@ static void gen8_enable_rps(struct drm_i915_private *dev_priv) > GEN6_RP_MEDIA_TURBO | > GEN6_RP_MEDIA_HW_NORMAL_MODE | > GEN6_RP_MEDIA_IS_GFX | > - GEN6_RP_ENABLE | > GEN6_RP_UP_BUSY_AVG | > GEN6_RP_DOWN_IDLE_AVG); > > @@ -6042,7 +6049,6 @@ static void cherryview_enable_rps(struct drm_i915_private *dev_priv) > I915_WRITE(GEN6_RP_CONTROL, > GEN6_RP_MEDIA_HW_NORMAL_MODE | > GEN6_RP_MEDIA_IS_GFX | > - GEN6_RP_ENABLE | > GEN6_RP_UP_BUSY_AVG | > GEN6_RP_DOWN_IDLE_AVG); > > @@ -6100,7 +6106,6 @@ static void valleyview_enable_rps(struct drm_i915_private *dev_priv) > GEN6_RP_MEDIA_TURBO | > GEN6_RP_MEDIA_HW_NORMAL_MODE | > GEN6_RP_MEDIA_IS_GFX | > - GEN6_RP_ENABLE | > GEN6_RP_UP_BUSY_AVG | > GEN6_RP_DOWN_IDLE_CONT); > > -- > 2.11.0