On Wed, Sep 30, 2020 at 02:34:45AM +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Make the mess inside the buf trans funcs a bit more manageable by > splitting along the lines of output type. > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Reviewed-by: Imre Deak <imre.deak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_ddi.c | 63 +++++++++++++++--------- > 1 file changed, 41 insertions(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c > index e3c6d4942b68..da7090803ea1 100644 > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > @@ -1109,32 +1109,51 @@ icl_get_mg_buf_trans(struct intel_encoder *encoder, int type, int rate, > return icl_get_mg_buf_trans_dp(encoder, type, rate, n_entries); > } > > +static const struct cnl_ddi_buf_trans * > +ehl_get_combo_buf_trans_hdmi(struct intel_encoder *encoder, int type, int rate, > + int *n_entries) > +{ > + *n_entries = ARRAY_SIZE(icl_combo_phy_ddi_translations_hdmi); > + return icl_combo_phy_ddi_translations_hdmi; > +} > + > +static const struct cnl_ddi_buf_trans * > +ehl_get_combo_buf_trans_dp(struct intel_encoder *encoder, int type, int rate, > + int *n_entries) > +{ > + *n_entries = ARRAY_SIZE(ehl_combo_phy_ddi_translations_dp); > + return ehl_combo_phy_ddi_translations_dp; > +} > + > +static const struct cnl_ddi_buf_trans * > +ehl_get_combo_buf_trans_edp(struct intel_encoder *encoder, int type, int rate, > + int *n_entries) > +{ > + struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > + > + if (dev_priv->vbt.edp.low_vswing) { > + if (rate > 540000) { > + *n_entries = ARRAY_SIZE(icl_combo_phy_ddi_translations_edp_hbr3); > + return icl_combo_phy_ddi_translations_edp_hbr3; > + } else { > + *n_entries = ARRAY_SIZE(icl_combo_phy_ddi_translations_edp_hbr2); > + return icl_combo_phy_ddi_translations_edp_hbr2; > + } > + } > + > + return ehl_get_combo_buf_trans_dp(encoder, type, rate, n_entries); > +} > + > static const struct cnl_ddi_buf_trans * > ehl_get_combo_buf_trans(struct intel_encoder *encoder, int type, int rate, > int *n_entries) > { > - struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); > - > - switch (type) { > - case INTEL_OUTPUT_HDMI: > - *n_entries = ARRAY_SIZE(icl_combo_phy_ddi_translations_hdmi); > - return icl_combo_phy_ddi_translations_hdmi; > - case INTEL_OUTPUT_EDP: > - if (dev_priv->vbt.edp.low_vswing) { > - if (rate > 540000) { > - *n_entries = ARRAY_SIZE(icl_combo_phy_ddi_translations_edp_hbr3); > - return icl_combo_phy_ddi_translations_edp_hbr3; > - } else { > - *n_entries = ARRAY_SIZE(icl_combo_phy_ddi_translations_edp_hbr2); > - return icl_combo_phy_ddi_translations_edp_hbr2; > - } > - } > - /* fall through */ > - default: > - /* All combo DP and eDP ports that do not support low_vswing */ > - *n_entries = ARRAY_SIZE(ehl_combo_phy_ddi_translations_dp); > - return ehl_combo_phy_ddi_translations_dp; > - } > + if (type == INTEL_OUTPUT_HDMI) > + return ehl_get_combo_buf_trans_hdmi(encoder, type, rate, n_entries); > + else if (type == INTEL_OUTPUT_EDP) > + return ehl_get_combo_buf_trans_edp(encoder, type, rate, n_entries); > + else > + return ehl_get_combo_buf_trans_dp(encoder, type, rate, n_entries); > } > > static const struct cnl_ddi_buf_trans * > -- > 2.26.2 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx