Skip to content

Commit 46bdb77

Browse files
committed
drm/i915: Split intel_ddi_compute_min_voltage_level() into platform variants
The mess inside intel_ddi_compute_min_voltage_level() is illegible. Clean it up a bit by splitting the internals into per-platform functions. TODO: make it a vfunc? Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231128115138.13238-7-ville.syrjala@linux.intel.com Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
1 parent 273361f commit 46bdb77

1 file changed

Lines changed: 30 additions & 7 deletions

File tree

drivers/gpu/drm/i915/display/intel_ddi.c

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3672,16 +3672,39 @@ static bool intel_ddi_is_audio_enabled(struct drm_i915_private *dev_priv,
36723672
AUDIO_OUTPUT_ENABLE(cpu_transcoder);
36733673
}
36743674

3675+
static int tgl_ddi_min_voltage_level(const struct intel_crtc_state *crtc_state)
3676+
{
3677+
if (crtc_state->port_clock > 594000)
3678+
return 2;
3679+
else
3680+
return 0;
3681+
}
3682+
3683+
static int jsl_ddi_min_voltage_level(const struct intel_crtc_state *crtc_state)
3684+
{
3685+
if (crtc_state->port_clock > 594000)
3686+
return 3;
3687+
else
3688+
return 0;
3689+
}
3690+
3691+
static int icl_ddi_min_voltage_level(const struct intel_crtc_state *crtc_state)
3692+
{
3693+
if (crtc_state->port_clock > 594000)
3694+
return 1;
3695+
else
3696+
return 0;
3697+
}
3698+
36753699
void intel_ddi_compute_min_voltage_level(struct drm_i915_private *dev_priv,
36763700
struct intel_crtc_state *crtc_state)
36773701
{
3678-
if (DISPLAY_VER(dev_priv) >= 12 && crtc_state->port_clock > 594000)
3679-
crtc_state->min_voltage_level = 2;
3680-
else if ((IS_JASPERLAKE(dev_priv) || IS_ELKHARTLAKE(dev_priv)) &&
3681-
crtc_state->port_clock > 594000)
3682-
crtc_state->min_voltage_level = 3;
3683-
else if (DISPLAY_VER(dev_priv) >= 11 && crtc_state->port_clock > 594000)
3684-
crtc_state->min_voltage_level = 1;
3702+
if (DISPLAY_VER(dev_priv) >= 12)
3703+
crtc_state->min_voltage_level = tgl_ddi_min_voltage_level(crtc_state);
3704+
else if (IS_JASPERLAKE(dev_priv) || IS_ELKHARTLAKE(dev_priv))
3705+
crtc_state->min_voltage_level = jsl_ddi_min_voltage_level(crtc_state);
3706+
else if (DISPLAY_VER(dev_priv) >= 11)
3707+
crtc_state->min_voltage_level = icl_ddi_min_voltage_level(crtc_state);
36853708
}
36863709

36873710
static enum transcoder bdw_transcoder_master_readout(struct drm_i915_private *dev_priv,

0 commit comments

Comments
 (0)