[Intel-gfx] [PATCH] drm/i915/icl: use ranges for voltage level lookup

Ville Syrjälä ville.syrjala at linux.intel.com
Fri Jun 7 12:26:15 UTC 2019


On Thu, Jun 06, 2019 at 08:49:19PM -0700, Lucas De Marchi wrote:
> Spec shows voltage level 0 as 307.2, 312, or lower and suggests to use
> range checks. Prepare for having other frequencies in these ranges by
> not comparing the exact frequency.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_cdclk.c | 21 +++++++++------------
>  1 file changed, 9 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_cdclk.c b/drivers/gpu/drm/i915/intel_cdclk.c
> index 6988c6cbc362..b175a2926caf 100644
> --- a/drivers/gpu/drm/i915/intel_cdclk.c
> +++ b/drivers/gpu/drm/i915/intel_cdclk.c
> @@ -1865,21 +1865,18 @@ static void icl_set_cdclk(struct drm_i915_private *dev_priv,
>  
>  static u8 icl_calc_voltage_level(int cdclk)
>  {
> -	switch (cdclk) {
> -	case 50000:
> -	case 307200:
> -	case 312000:
> +	if (cdclk <= 312000)
>  		return 0;
> -	case 556800:
> -	case 552000:
> +
> +	if (cdclk <= 556800)
>  		return 1;
> -	default:
> -		MISSING_CASE(cdclk);
> -		/* fall through */
> -	case 652800:
> -	case 648000:
> +
> +	if (cdclk <= 652800)
>  		return 2;
> -	}
> +
> +	MISSING_CASE(cdclk);
> +
> +	return 2;

Every other function in the same file does it the other way around.
Would be nice to keep it consistent.

if (cdclk > big)
	return a;
else if (cdclk > notsobig)
	return b;
else
	return c;


>  }
>  
>  static void icl_get_cdclk(struct drm_i915_private *dev_priv,
> -- 
> 2.21.0

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list