[BISECTED] Output dies at random when display is replugged or system is resumed from suspend
Since kernel 5.9 I have been experiencing an issue where after resuming my machine from suspend my monitor (only one of three) will theatrically choke and die, it gets scrolling, tiled images of what should be on display in black and white for a few seconds then switches to standby.
Physically replugging the display then randomly either resolves or reproduces the issue, so each time I resume from suspend I am forced to replug my monitor anywhere from once, to ten times if I'm unlucky.
Sometimes the same monitor starts dead when booting the system, same fix, replug until it works. However while bisecting I found that this occasionally happened even in commits that were 'good' and did not contain this particular bug, so while it's possible this bug happens on boot I have no way to confirm it since it's overlapping with an older bug.
I have bisected and confirmed that this is the commit responsible for the behavior.
3fd20292c2352660155bbc11736dd014b2fc6e98 is the first bad commit
commit 3fd20292c2352660155bbc11736dd014b2fc6e98
Author: Martin Tsai <martin.tsai@amd.com>
Date: Wed Jul 15 11:21:43 2020 +0800
drm/amd/display: Check lane status again after link training done
[Why]
Some monitors could suffer symbol unlock but cannot send HPD IRQ to
notic source device to handle link loss. This makes monitor stuck in
abnormal status and causes black screen.
[How]
According to the suggestion from scalar vendor, to check lane status
again after link training done. That can improve the comaptibility
from current production monitors.
Signed-off-by: Martin Tsai <martin.tsai@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 50 ++++++++++++++++++++++
.../drm/amd/display/include/link_service_types.h | 2 +
2 files changed, 52 insertions(+)
CPU: 3900X GPU: 5700XT Affected Display: DisplayPort-1080p144