diff options
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_ddi.c')
-rw-r--r-- | drivers/gpu/drm/i915/display/intel_ddi.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c index a542f67ce49a..b6feb71a1af0 100644 --- a/drivers/gpu/drm/i915/display/intel_ddi.c +++ b/drivers/gpu/drm/i915/display/intel_ddi.c @@ -104,12 +104,10 @@ void hsw_prepare_dp_ddi_buffers(struct intel_encoder *encoder, enum port port = encoder->port; const struct hsw_ddi_buf_trans *ddi_translations; - if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_ANALOG)) - ddi_translations = hsw_ddi_get_buf_trans_fdi(dev_priv, &n_entries); - else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) - ddi_translations = hsw_ddi_get_buf_trans_edp(encoder, &n_entries); - else - ddi_translations = hsw_ddi_get_buf_trans_dp(encoder, &n_entries); + ddi_translations = hsw_get_buf_trans(encoder, crtc_state, &n_entries); + + if (drm_WARN_ON_ONCE(&dev_priv->drm, !ddi_translations)) + return; /* If we're boosting the current, set bit 31 of trans1 */ if (DISPLAY_VER(dev_priv) == 9 && !IS_BROXTON(dev_priv) && @@ -130,6 +128,7 @@ void hsw_prepare_dp_ddi_buffers(struct intel_encoder *encoder, * HDMI/DVI use cases. */ static void hsw_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder, + const struct intel_crtc_state *crtc_state, int level) { struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); @@ -138,7 +137,7 @@ static void hsw_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder, enum port port = encoder->port; const struct hsw_ddi_buf_trans *ddi_translations; - ddi_translations = hsw_ddi_get_buf_trans_hdmi(encoder, &n_entries); + ddi_translations = hsw_get_buf_trans(encoder, crtc_state, &n_entries); if (drm_WARN_ON_ONCE(&dev_priv->drm, !ddi_translations)) return; @@ -948,12 +947,7 @@ static void skl_ddi_set_iboost(struct intel_encoder *encoder, const struct hsw_ddi_buf_trans *ddi_translations; int n_entries; - if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI)) - ddi_translations = hsw_ddi_get_buf_trans_hdmi(encoder, &n_entries); - else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) - ddi_translations = hsw_ddi_get_buf_trans_edp(encoder, &n_entries); - else - ddi_translations = hsw_ddi_get_buf_trans_dp(encoder, &n_entries); + ddi_translations = hsw_get_buf_trans(encoder, crtc_state, &n_entries); if (drm_WARN_ON_ONCE(&dev_priv->drm, !ddi_translations)) return; @@ -1027,10 +1021,7 @@ static u8 intel_ddi_dp_voltage_max(struct intel_dp *intel_dp, } else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) { bxt_get_buf_trans(encoder, crtc_state, &n_entries); } else { - if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP)) - hsw_ddi_get_buf_trans_edp(encoder, &n_entries); - else - hsw_ddi_get_buf_trans_dp(encoder, &n_entries); + hsw_get_buf_trans(encoder, crtc_state, &n_entries); } if (drm_WARN_ON(&dev_priv->drm, n_entries < 1)) @@ -3147,7 +3138,7 @@ static void intel_enable_ddi_hdmi(struct intel_atomic_state *state, else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) bxt_ddi_vswing_sequence(encoder, crtc_state, level); else - hsw_prepare_hdmi_ddi_buffers(encoder, level); + hsw_prepare_hdmi_ddi_buffers(encoder, crtc_state, level); if (DISPLAY_VER(dev_priv) == 9 && !IS_BROXTON(dev_priv)) skl_ddi_set_iboost(encoder, crtc_state, level); |