Skip to content

Commit bd73157

Browse files
Fangzhi Zuogregkh
authored andcommitted
drm/amd/display: Have Payload Properly Created After Resume
commit 482e6ad upstream. 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 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent ca5097f commit bd73157

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2813,7 +2813,7 @@ static int dm_resume(void *handle)
28132813
* this is the case when traversing through already created
28142814
* MST connectors, should be skipped
28152815
*/
2816-
if (aconnector->dc_link->type == dc_connection_mst_branch)
2816+
if (aconnector && aconnector->mst_root)
28172817
continue;
28182818

28192819
mutex_lock(&aconnector->hpd_lock);
@@ -6717,7 +6717,7 @@ static int dm_encoder_helper_atomic_check(struct drm_encoder *encoder,
67176717
int clock, bpp = 0;
67186718
bool is_y420 = false;
67196719

6720-
if (!aconnector->mst_output_port || !aconnector->dc_sink)
6720+
if (!aconnector->mst_output_port)
67216721
return 0;
67226722

67236723
mst_port = aconnector->mst_output_port;

0 commit comments

Comments
 (0)