drm/amd/display: Have Payload Properly Created After Resume
authorFangzhi Zuo <jerry.zuo@amd.com>
Wed, 10 May 2023 20:43:30 +0000 (16:43 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 May 2023 20:37:00 +0000 (16:37 -0400)
commit482e6ad9adde69d9da08864b4ccf4dfd53edb2f0
tree1f64ee9f66bb8022a08e33dacfe15f00dfcbb94e
parent137f9cee113df91107cf91c130d5c414c4b191f0
drm/amd/display: Have Payload Properly Created After Resume

At drm suspend sequence, MST dc_sink is removed. When commit cached
MST stream back in drm resume sequence, the MST stream payload is not
properly created and added into the payload table. After resume, topology
change is reprobed by removing existing streams first. That leads to
no payload is found in the existing payload table as below error
"[drm] ERROR No payload for [MST PORT:] found in mst state"

1. In encoder .atomic_check routine, remove check existance of dc_sink
2. Bypass MST by checking existence of MST root port. dc_link_type cannot
differentiate MST port before topology is rediscovered.

Reviewed-by: Wayne Lin <wayne.lin@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: Fangzhi Zuo <jerry.zuo@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c