Skip to content

Commit 2c1674f

Browse files
Wayne Lingregkh
authored andcommitted
drm/amd/display: Don't write DP_MSTM_CTRL after LT
commit bc06819 upstream. [Why] Observe after suspend/resme, we can't light up mst monitors under specific mst hub. The reason is that driver still writes DPCD DP_MSTM_CTRL after LT. It's forbidden even we write the same value for that dpcd register. [How] We already resume the mst branch device dpcd settings during resume_mst_branch_status(). Leverage drm_dp_mst_topology_queue_probe() to only probe the topology, not calling drm_dp_mst_topology_mgr_resume() which will set DP_MSTM_CTRL as well. Reviewed-by: Jerry Zuo <[email protected]> Signed-off-by: Wayne Lin <[email protected]> Signed-off-by: Zaeem Mohamed <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 9540730 commit 2c1674f

File tree

1 file changed

+4
-12
lines changed

1 file changed

+4
-12
lines changed

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

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3231,8 +3231,7 @@ static int dm_resume(void *handle)
32313231
struct dm_atomic_state *dm_state = to_dm_atomic_state(dm->atomic_obj.state);
32323232
enum dc_connection_type new_connection_type = dc_connection_none;
32333233
struct dc_state *dc_state;
3234-
int i, r, j, ret;
3235-
bool need_hotplug = false;
3234+
int i, r, j;
32363235
struct dc_commit_streams_params commit_params = {};
32373236

32383237
if (dm->dc->caps.ips_support) {
@@ -3427,23 +3426,16 @@ static int dm_resume(void *handle)
34273426
aconnector->mst_root)
34283427
continue;
34293428

3430-
ret = drm_dp_mst_topology_mgr_resume(&aconnector->mst_mgr, true);
3431-
3432-
if (ret < 0) {
3433-
dm_helpers_dp_mst_stop_top_mgr(aconnector->dc_link->ctx,
3434-
aconnector->dc_link);
3435-
need_hotplug = true;
3436-
}
3429+
drm_dp_mst_topology_queue_probe(&aconnector->mst_mgr);
34373430
}
34383431
drm_connector_list_iter_end(&iter);
34393432

3440-
if (need_hotplug)
3441-
drm_kms_helper_hotplug_event(ddev);
3442-
34433433
amdgpu_dm_irq_resume_late(adev);
34443434

34453435
amdgpu_dm_smu_write_watermarks_table(adev);
34463436

3437+
drm_kms_helper_hotplug_event(ddev);
3438+
34473439
return 0;
34483440
}
34493441

0 commit comments

Comments
 (0)