On Wed, 21 Apr 2021, Ville Syrjala wrote:
> From: Ville Syrjälä
>
> Split the hsw/bdw/skl/kbl get_buf_trans() functions into
> clean platform specific variants.
One of the most obnoxious patches to review lately, but it was worth it.
Reviewed-by: Jani Nikula
>
> Signed-off-by: Ville Syrjälä
> ---
> .../drm/i915/display/intel_ddi_buf_trans.c| 308 +++---
> 1 file changed, 118 insertions(+), 190 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> index 37a9c3b2c03c..1d78640c439e 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi_buf_trans.c
> @@ -1012,102 +1012,34 @@ intel_get_buf_trans(const struct intel_ddi_buf_trans
> *ddi_translations, int *num
> }
>
> static const struct intel_ddi_buf_trans *
> -bdw_get_buf_trans_edp(struct intel_encoder *encoder, int *n_entries)
> +hsw_get_buf_trans(struct intel_encoder *encoder,
> + const struct intel_crtc_state *crtc_state,
> + int *n_entries)
> {
> - struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -
> - if (dev_priv->vbt.edp.low_vswing) {
> - return intel_get_buf_trans(&bdw_ddi_translations_edp,
> -n_entries);
> - } else {
> - return intel_get_buf_trans(&bdw_ddi_translations_dp,
> -n_entries);
> - }
> -}
> -
> -static const struct intel_ddi_buf_trans *
> -skl_get_buf_trans_dp(struct intel_encoder *encoder, int *n_entries)
> -{
> - struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -
> - if (IS_SKL_ULX(dev_priv)) {
> - return intel_get_buf_trans(&skl_y_ddi_translations_dp,
> -n_entries);
> - } else if (IS_SKL_ULT(dev_priv)) {
> - return intel_get_buf_trans(&skl_u_ddi_translations_dp,
> -n_entries);
> - } else {
> - return intel_get_buf_trans(&skl_ddi_translations_dp,
> -n_entries);
> - }
> -}
> -
> -static const struct intel_ddi_buf_trans *
> -kbl_get_buf_trans_dp(struct intel_encoder *encoder, int *n_entries)
> -{
> - struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -
> - if (IS_KBL_ULX(dev_priv) ||
> - IS_CFL_ULX(dev_priv) ||
> - IS_CML_ULX(dev_priv)) {
> - return intel_get_buf_trans(&kbl_y_ddi_translations_dp,
> -n_entries);
> - } else if (IS_KBL_ULT(dev_priv) ||
> -IS_CFL_ULT(dev_priv) ||
> -IS_CML_ULT(dev_priv)) {
> - return intel_get_buf_trans(&kbl_u_ddi_translations_dp,
> -n_entries);
> - } else {
> - return intel_get_buf_trans(&kbl_ddi_translations_dp,
> -n_entries);
> - }
> -}
> -
> -static const struct intel_ddi_buf_trans *
> -skl_get_buf_trans_edp(struct intel_encoder *encoder, int *n_entries)
> -{
> - struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -
> - if (dev_priv->vbt.edp.low_vswing) {
> - if (IS_SKL_ULX(dev_priv) ||
> - IS_KBL_ULX(dev_priv) ||
> - IS_CFL_ULX(dev_priv) ||
> - IS_CML_ULX(dev_priv)) {
> - return intel_get_buf_trans(&skl_y_ddi_translations_edp,
> -n_entries);
> - } else if (IS_SKL_ULT(dev_priv) ||
> -IS_KBL_ULT(dev_priv) ||
> -IS_CFL_ULT(dev_priv) ||
> -IS_CML_ULT(dev_priv)) {
> - return intel_get_buf_trans(&skl_u_ddi_translations_edp,
> -n_entries);
> - } else {
> - return intel_get_buf_trans(&skl_ddi_translations_edp,
> -n_entries);
> - }
> - }
> -
> - if (IS_KABYLAKE(dev_priv) ||
> - IS_COFFEELAKE(dev_priv) ||
> - IS_COMETLAKE(dev_priv))
> - return kbl_get_buf_trans_dp(encoder, n_entries);
> + if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_ANALOG))
> + return intel_get_buf_trans(&hsw_ddi_translations_fdi,
> n_entries);
> + else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI))
> + return intel_get_buf_trans(&hsw_ddi_translations_hdmi,
> n_entries);
> else
> - return skl_get_buf_trans_dp(encoder, n_entries);
> + return intel_get_buf_trans(&hsw_ddi_translations_dp, n_entries);
> }
>
> static const struct intel_ddi_buf_trans *
> -skl_get_buf_trans_hdmi(struct drm_i915_private *dev_priv, int *n_entries)
> +bdw_get_buf_trans(struct intel_encoder *encoder,
> + cons