[Intel-gfx] [PATCH 05/10] drm/i915: Move overclocking detection to alongside RPS frequency detection

Mika Kuoppala mika.kuoppala at linux.intel.com
Mon Jul 11 13:37:37 UTC 2016


Chris Wilson <chris at chris-wilson.co.uk> writes:

> Move the overclocking max frequency detection alongside the regular
> frequency detection, before we expose the undefined value to userspace.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/intel_pm.c | 24 +++++++++++++++---------
>  1 file changed, 15 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 54f739fbd133..24b23a51c56b 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -5343,7 +5343,7 @@ static void gen8_enable_rps(struct drm_i915_private *dev_priv)
>  static void gen6_enable_rps(struct drm_i915_private *dev_priv)
>  {
>  	struct intel_engine_cs *engine;
> -	u32 rc6vids, pcu_mbox = 0, rc6_mask = 0;
> +	u32 rc6vids, rc6_mask = 0;
>  	u32 gtfifodbg;
>  	int rc6_mode;
>  	int ret;
> @@ -5417,14 +5417,6 @@ static void gen6_enable_rps(struct drm_i915_private *dev_priv)
>  	if (ret)
>  		DRM_DEBUG_DRIVER("Failed to set the min frequency\n");
>  
> -	ret = sandybridge_pcode_read(dev_priv, GEN6_READ_OC_PARAMS, &pcu_mbox);
> -	if (!ret && (pcu_mbox & (1<<31))) { /* OC supported */
> -		DRM_DEBUG_DRIVER("Overclocking supported. Max: %dMHz, Overclock max: %dMHz\n",
> -				 (dev_priv->rps.max_freq_softlimit & 0xff) * 50,
> -				 (pcu_mbox & 0xff) * 50);
> -		dev_priv->rps.max_freq = pcu_mbox & 0xff;
> -	}
> -
>  	reset_rps(dev_priv, gen6_set_rps);
>  
>  	rc6vids = 0;
> @@ -6526,6 +6518,20 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
>  			      dev_priv->rps.efficient_freq,
>  			      intel_freq_opcode(dev_priv, 450));
>  
> +	/* After setting max-softlimit, find the overclock max freq */
> +	if (IS_GEN6(dev_priv) ||
> +	    IS_IVYBRIDGE(dev_priv) || IS_HASWELL(dev_priv)) {
> +		u32 params = 0;
> +
> +		sandybridge_pcode_read(dev_priv, GEN6_READ_OC_PARAMS, &params);
> +		if (params & BIT(31)) { /* OC supported */
> +			DRM_DEBUG_DRIVER("Overclocking supported, max: %dMHz, overclock: %dMHz\n",
> +					 (dev_priv->rps.max_freq & 0xff) * 50,
> +					 (params & 0xff) * 50);

Yeah max_freq makes more sense.

Reviewed-by: Mika Kuoppala <mika.kuoppala at intel.com>

> +			dev_priv->rps.max_freq = params & 0xff;
> +		}
> +	}
> +
>  	mutex_unlock(&dev_priv->rps.hw_lock);
>  }
>  
> -- 
> 2.8.1


More information about the Intel-gfx mailing list