[PATCH] drm/amd/display:Check dp_128b_132b_supported_link_rates.raw before link_rate setting

From: Jackie Dong

Date: Tue Jun 30 2026 - 11:07:02 EST


[WHY]
In the evolution of displays from DP 1.4 to DP 2.0, due to considerations
some factors,such as cost, some displays support 128b/132b encoding but
do not support UHBR rate transmission. The values can be read from DPCD
register address as below.

0x00006 is 03
0x02215 is 00

For such displays, the current kernel reports the following error message.

[drm:dp_retrieve_lttpr_cap [amdgpu]] *ERROR* retrieve_link_cap: Invalid RX
128b_132b_supported_link_rates

[HOW]
Add new judgment: if all bits in dp_128b_132b_supported_link_rates.raw
are non-zero, then further determine the specific UHBR type; otherwise,
determine that the display does not support UHBR.

Signed-off-by: Jackie Dong <xy-jackie@xxxxxxx>
---
.../gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
index 47abb4066709..58cbb7ac8f9e 100644
--- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
+++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c
@@ -2079,7 +2079,8 @@ static bool retrieve_link_cap(struct dc_link *link)
if (!dpcd_read_sink_ext_caps(link))
link->dpcd_sink_ext_caps.raw = 0;

- if (link->dpcd_caps.channel_coding_cap.bits.DP_128b_132b_SUPPORTED) {
+ if (link->dpcd_caps.channel_coding_cap.bits.DP_128b_132b_SUPPORTED &&
+ link->dpcd_caps.dp_128b_132b_supported_link_rates.raw) {
DC_LOG_DP2("128b/132b encoding is supported at link %d", link->link_index);

/* Read 128b/132b suppoerted link rates */
--
2.43.0