]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
drm/amd/display: Work around bad DPCD state on link loss
authorIlya Bakoulin <ilya.bakoulin@amd.com>
Fri, 2 Jun 2023 21:01:23 +0000 (17:01 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 30 Jun 2023 17:11:35 +0000 (13:11 -0400)
commit2faa3653d6657aedf357ca74c4e58c5768899269
tree1ffcfb5088c427906d2f295074ee9145196c1cfa
parent2036b34d4af9e09ed07f79c4e3f27952463e6f4e
drm/amd/display: Work around bad DPCD state on link loss

[Why]
This display doesn't properly indicate link loss through DPCD bits such
as CR_DONE / CHANNEL_EQ_DONE / SYMBOL_LOCKED / INTERLANE_ALIGN_DONE,
which all remain set.

In addition, DPCD200Eh doesn't match the value of DPCD204h in all cases.

For these reasons, we can miss re-training the link, since we don't
properly detect link loss with this display.

[Why]
Add display-specific workaround to read DPCD204h, so that we can detect
link loss based on 128b132b-specific status bits in this register.

Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: Wenjing Liu <wenjing.liu@amd.com>
Acked-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com>
Signed-off-by: Ilya Bakoulin <ilya.bakoulin@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c