Skip to content

Commit 20c6168

Browse files
Cruise Hungalexdeucher
authored andcommitted
drm/amd/display: Fix DP MST timeslot issue when fallback happened
[Why] When USB4 DP link training failed and fell back to lower link rate, the time slot calculation uses the verified_link_cap. And the verified_link_cap was not updated to the new one. It caused the wrong VC payload time-slot was allocated. [How] Updated verified_link_cap with the new one from cur_link_settings after the LT completes successfully. Reviewed-by: Jun Lei <[email protected]> Acked-by: Wayne Lin <[email protected]> Signed-off-by: Cruise Hung <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 7200205 commit 20c6168

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2758,8 +2758,14 @@ bool perform_link_training_with_retries(
27582758
skip_video_pattern);
27592759

27602760
/* Transmit idle pattern once training successful. */
2761-
if (status == LINK_TRAINING_SUCCESS && !is_link_bw_low)
2761+
if (status == LINK_TRAINING_SUCCESS && !is_link_bw_low) {
27622762
dp_set_hw_test_pattern(link, &pipe_ctx->link_res, DP_TEST_PATTERN_VIDEO_MODE, NULL, 0);
2763+
/* Update verified link settings to current one
2764+
* Because DPIA LT might fallback to lower link setting.
2765+
*/
2766+
link->verified_link_cap.link_rate = link->cur_link_settings.link_rate;
2767+
link->verified_link_cap.lane_count = link->cur_link_settings.lane_count;
2768+
}
27632769
} else {
27642770
status = dc_link_dp_perform_link_training(link,
27652771
&pipe_ctx->link_res,

0 commit comments

Comments
 (0)