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

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
Loading
Loading
Loading
Loading
+5 −14
Original line number Diff line number Diff line
@@ -1865,21 +1865,12 @@ 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:
		return 0;
	case 556800:
	case 552000:
		return 1;
	default:
		MISSING_CASE(cdclk);
		/* fall through */
	case 652800:
	case 648000:
	if (cdclk > 556800)
		return 2;
	}
	else if (cdclk > 312000)
		return 1;
	else
		return 0;
}

static void icl_get_cdclk(struct drm_i915_private *dev_priv,