[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, ¶ms);
> + 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