Skip to content

Commit 404d85a

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 <jerry.zuo@amd.com> Signed-off-by: Wayne Lin <Wayne.Lin@amd.com> Signed-off-by: Zaeem Mohamed <zaeem.mohamed@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> [cascardo: adjust context in local declarations] Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 5f57a96 commit 404d85a

1 file changed

Lines changed: 4 additions & 12 deletions

File tree

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

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2825,8 +2825,7 @@ static int dm_resume(void *handle)
28252825
struct dm_atomic_state *dm_state = to_dm_atomic_state(dm->atomic_obj.state);
28262826
enum dc_connection_type new_connection_type = dc_connection_none;
28272827
struct dc_state *dc_state;
2828-
int i, r, j, ret;
2829-
bool need_hotplug = false;
2828+
int i, r, j;
28302829

28312830
if (amdgpu_in_reset(adev)) {
28322831
dc_state = dm->cached_dc_state;
@@ -3003,23 +3002,16 @@ static int dm_resume(void *handle)
30033002
aconnector->mst_root)
30043003
continue;
30053004

3006-
ret = drm_dp_mst_topology_mgr_resume(&aconnector->mst_mgr, true);
3007-
3008-
if (ret < 0) {
3009-
dm_helpers_dp_mst_stop_top_mgr(aconnector->dc_link->ctx,
3010-
aconnector->dc_link);
3011-
need_hotplug = true;
3012-
}
3005+
drm_dp_mst_topology_queue_probe(&aconnector->mst_mgr);
30133006
}
30143007
drm_connector_list_iter_end(&iter);
30153008

3016-
if (need_hotplug)
3017-
drm_kms_helper_hotplug_event(ddev);
3018-
30193009
amdgpu_dm_irq_resume_late(adev);
30203010

30213011
amdgpu_dm_smu_write_watermarks_table(adev);
30223012

3013+
drm_kms_helper_hotplug_event(ddev);
3014+
30233015
return 0;
30243016
}
30253017

0 commit comments

Comments
 (0)