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@lists.freedesktop.org Signed-off-by: Jani Nikula jani.nikula@intel.com
Reviewed-by: Ville Syrjälä ville.syrjala@linux.intel.com
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