drm/amd/display: Modify the link training policy

[Why&How]
Currently fallback to low link rate if the link training
fails once on USB4. It may cause the bandwidth couldn't
satisfy the requirement of streams. Modify the policy
to do training retry in the previous few times, only
do fallback at the last time.

Reviewed-by: Meenakshikumar Somasundaram <meenakshikumar.somasundaram@amd.com>
Signed-off-by: Zhikai Zhai <zhikai.zhai@amd.com>
Signed-off-by: Ray Wu <ray.wu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Zhikai Zhai
2025-07-29 17:39:54 +08:00
committed by Alex Deucher
parent 46fbe1e349
commit 0bfcb56e8b

View File

@@ -1729,6 +1729,15 @@ bool perform_link_training_with_retries(
break;
}
if (link->ep_type == DISPLAY_ENDPOINT_USB4_DPIA &&
stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST &&
!link->dc->config.enable_dpia_pre_training) {
if (j == (attempts - 1))
do_fallback = true;
else
do_fallback = false;
}
if (j == (attempts - 1)) {
DC_LOG_WARNING(
"%s: Link(%d) training attempt %u of %d failed @ rate(%d) x lane(%d) @ spread = %x : fail reason:(%d)\n",