Skip to content

Commit 71ad905

Browse files
superm1alexdeucher
authored andcommitted
drm/amd/display: Move sleep into each retry for retrieve_link_cap()
[Why] When a monitor is booting it's possible that it isn't ready to retrieve link caps and this can lead to an EDID read failure: ``` [drm:retrieve_link_cap [amdgpu]] *ERROR* retrieve_link_cap: Read receiver caps dpcd data failed. amdgpu 0000:c5:00.0: [drm] *ERROR* No EDID read. ``` [How] Rather than msleep once and try a few times, msleep each time. Should be no changes for existing working monitors, but should correct reading caps on a monitor that is slow to boot. Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4672 Reviewed-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org> Signed-off-by: Ivan Lipski <ivan.lipski@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 669dca3) Cc: stable@vger.kernel.org
1 parent cfa0904 commit 71ad905

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1734,12 +1734,13 @@ static bool retrieve_link_cap(struct dc_link *link)
17341734
}
17351735

17361736
dpcd_set_source_specific_data(link);
1737-
/* Sink may need to configure internals based on vendor, so allow some
1738-
* time before proceeding with possibly vendor specific transactions
1739-
*/
1740-
msleep(post_oui_delay);
17411737

17421738
for (i = 0; i < read_dpcd_retry_cnt; i++) {
1739+
/*
1740+
* Sink may need to configure internals based on vendor, so allow some
1741+
* time before proceeding with possibly vendor specific transactions
1742+
*/
1743+
msleep(post_oui_delay);
17431744
status = core_link_read_dpcd(
17441745
link,
17451746
DP_DPCD_REV,

0 commit comments

Comments
 (0)