[Intel-gfx] [PATCH] drm/i915: Remove wait for for punit to updates freq.

Deepak S deepak.s at linux.intel.com
Tue Apr 28 03:43:12 PDT 2015



On Monday 13 April 2015 05:40 PM, Ville Syrjälä wrote:
> On Mon, Apr 13, 2015 at 02:55:12PM +0300, Jani Nikula wrote:
>> On Thu, 05 Mar 2015, deepak.s at linux.intel.com wrote:
>>> From: Deepak S <deepak.s at linux.intel.com>
>>>
>>> When GPU is idle on VLV, Request freq to punit should be good enough to
>>> get the voltage back to VNN. Also, make sure gfx clock force applies
>>> before requesting the freq fot vlv.
>>>
>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75244
>>> suggested-by: Jesse Barnes <jbarnes at virtuousgeek.org>
>>> Signed-off-by: Deepak S <deepak.s at linux.intel.com>
>> Deepak, these patches seem to have fallen through the cracks. Are they
>> still valid? Please rebase and repost if they are.
>>
>> Ville, your opinion also appreciated.
> I don't I have any VLVs old enough to hit this, so can't really confirm
> one way or the other.

Hi Jesse, Can you please review the patch?

Thanks
Deepak

>> BR,
>> Jani.
>>
>>
>>
>>> ---
>>>   drivers/gpu/drm/i915/intel_pm.c | 20 ++++----------------
>>>   1 file changed, 4 insertions(+), 16 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
>>> index e710b43..2e1ed07 100644
>>> --- a/drivers/gpu/drm/i915/intel_pm.c
>>> +++ b/drivers/gpu/drm/i915/intel_pm.c
>>> @@ -3894,7 +3894,7 @@ static void valleyview_set_rps(struct drm_device *dev, u8 val)
>>>    * * If Gfx is Idle, then
>>>    * 1. Mask Turbo interrupts
>>>    * 2. Bring up Gfx clock
>>> - * 3. Change the freq to Rpn and wait till P-Unit updates freq
>>> + * 3. Request the freq to Rpn.
>>>    * 4. Clear the Force GFX CLK ON bit so that Gfx can down
>>>    * 5. Unmask Turbo interrupts
>>>   */
>>> @@ -3902,8 +3902,8 @@ static void vlv_set_rps_idle(struct drm_i915_private *dev_priv)
>>>   {
>>>   	struct drm_device *dev = dev_priv->dev;
>>>   
>>> -	/* CHV and latest VLV don't need to force the gfx clock */
>>> -	if (IS_CHERRYVIEW(dev) || dev->pdev->revision >= 0xd) {
>>> +	/* CHV don't need to force the gfx clock */
>>> +	if (IS_CHERRYVIEW(dev)) {
> Why was the stepping check removed?
>
>>>   		valleyview_set_rps(dev_priv->dev, dev_priv->rps.min_freq_softlimit);
>>>   		return;
>>>   	}
>>> @@ -3920,20 +3920,8 @@ static void vlv_set_rps_idle(struct drm_i915_private *dev_priv)
>>>   		   gen6_sanitize_rps_pm_mask(dev_priv, ~0));
>>>   
>>>   	vlv_force_gfx_clock(dev_priv, true);
>>> -
>>> -	dev_priv->rps.cur_freq = dev_priv->rps.min_freq_softlimit;
>>> -
>>> -	vlv_punit_write(dev_priv, PUNIT_REG_GPU_FREQ_REQ,
>>> -					dev_priv->rps.min_freq_softlimit);
>>> -
>>> -	if (wait_for(((vlv_punit_read(dev_priv, PUNIT_REG_GPU_FREQ_STS))
>>> -				& GENFREQSTATUS) == 0, 100))
>>> -		DRM_ERROR("timed out waiting for Punit\n");
>>> -
>>> +	valleyview_set_rps(dev_priv->dev, dev_priv->rps.min_freq_softlimit);
>>>   	vlv_force_gfx_clock(dev_priv, false);
>>> -
>>> -	I915_WRITE(GEN6_PMINTRMSK,
>>> -		   gen6_rps_pm_mask(dev_priv, dev_priv->rps.cur_freq));
>>>   }
>>>   
>>>   void gen6_rps_idle(struct drm_i915_private *dev_priv)
>>> -- 
>>> 1.9.1
>>>
>>> _______________________________________________
>>> Intel-gfx mailing list
>>> Intel-gfx at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>> -- 
>> Jani Nikula, Intel Open Source Technology Center
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



More information about the Intel-gfx mailing list