drm/amd/display: Add a Precise Delay Routine
authorFangzhi Zuo <Jerry.Zuo@amd.com>
Wed, 2 Oct 2024 19:47:10 +0000 (15:47 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 22 Oct 2024 21:50:38 +0000 (17:50 -0400)
Fix DP compliance failures 4.2.2.12, 4.3.1.21, 4.9.1.19
caused by imprecise delay on fsleep().

Reviewed-by: Aric Cyr <aric.cyr@amd.com>
Signed-off-by: Fangzhi Zuo <Jerry.Zuo@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c

index a42c56a..754c895 100644 (file)
@@ -272,7 +272,7 @@ void dp_wait_for_training_aux_rd_interval(
        struct dc_link *link,
        uint32_t wait_in_micro_secs)
 {
-       fsleep(wait_in_micro_secs);
+       usleep_range_state(wait_in_micro_secs, wait_in_micro_secs, TASK_UNINTERRUPTIBLE);
 
        DC_LOG_HW_LINK_TRAINING("%s:\n wait = %d\n",
                __func__,