Commit 4f338ac0 authored by Lucas De Marchi's avatar Lucas De Marchi

drm/i915/icl: use ranges for voltage level lookup

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.

v2: invert checks by comparing biggest cdclk first (suggested by Ville)
Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190610214819.9703-1-lucas.demarchi@intel.com
parent 09a32cb7
...@@ -1865,21 +1865,12 @@ static void icl_set_cdclk(struct drm_i915_private *dev_priv, ...@@ -1865,21 +1865,12 @@ static void icl_set_cdclk(struct drm_i915_private *dev_priv,
static u8 icl_calc_voltage_level(int cdclk) static u8 icl_calc_voltage_level(int cdclk)
{ {
switch (cdclk) { if (cdclk > 556800)
case 50000:
case 307200:
case 312000:
return 0;
case 556800:
case 552000:
return 1;
default:
MISSING_CASE(cdclk);
/* fall through */
case 652800:
case 648000:
return 2; return 2;
} else if (cdclk > 312000)
return 1;
else
return 0;
} }
static void icl_get_cdclk(struct drm_i915_private *dev_priv, static void icl_get_cdclk(struct drm_i915_private *dev_priv,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment