On Thu, Sep 09, 2021 at 03:51:53PM +0300, Jani Nikula wrote: > The bw code equals link_rate / 0.27 Gbps only for 8b/10b link > rates. Handle DP 2.0 UHBR rates as special cases, though this is not > pretty. > > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_dp_helper.c | 26 ++++++++++++++++++++++---- > 1 file changed, 22 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c > index 6d0f2c447f3b..9b2a2961fca8 100644 > --- a/drivers/gpu/drm/drm_dp_helper.c > +++ b/drivers/gpu/drm/drm_dp_helper.c > @@ -207,15 +207,33 @@ EXPORT_SYMBOL(drm_dp_lttpr_link_train_channel_eq_delay); > > u8 drm_dp_link_rate_to_bw_code(int link_rate) > { > - /* Spec says link_bw = link_rate / 0.27Gbps */ > - return link_rate / 27000; > + switch (link_rate) { > + case 1000000: > + return DP_LINK_BW_10; > + case 1350000: > + return DP_LINK_BW_13_5; > + case 2000000: > + return DP_LINK_BW_20; > + default: > + /* Spec says link_bw = link_rate / 0.27Gbps */ > + return link_rate / 27000; > + } > } > EXPORT_SYMBOL(drm_dp_link_rate_to_bw_code); > > int drm_dp_bw_code_to_link_rate(u8 link_bw) > { > - /* Spec says link_rate = link_bw * 0.27Gbps */ > - return link_bw * 27000; > + switch (link_bw) { > + case DP_LINK_BW_10: > + return 1000000; > + case DP_LINK_BW_13_5: > + return 1350000; > + case DP_LINK_BW_20: > + return 2000000; > + default: > + /* Spec says link_rate = link_bw * 0.27Gbps */ > + return link_bw * 27000; > + } > } > EXPORT_SYMBOL(drm_dp_bw_code_to_link_rate); > > -- > 2.30.2 -- Ville Syrjälä Intel