* [PATCH 6.12] drm/amd/display: Don't write DP_MSTM_CTRL after LT
@ 2025-03-31 14:58 Thadeu Lima de Souza Cascardo
2025-04-01 9:18 ` Jani Nikula
0 siblings, 1 reply; 2+ messages in thread
From: Thadeu Lima de Souza Cascardo @ 2025-03-31 14:58 UTC (permalink / raw)
To: stable
Cc: Wayne Lin, Jerry Zuo, Zaeem Mohamed, Daniel Wheeler, Alex Deucher,
amd-gfx, dri-devel, kernel-dev, cascardo
From: Wayne Lin <Wayne.Lin@amd.com>
[ Upstream commit bc068194f548ef1f230d96c4398046bf59165992 ]
[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>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
---
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index d9a3917d207e..c4c6538eabae 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3231,8 +3231,7 @@ static int dm_resume(void *handle)
struct dm_atomic_state *dm_state = to_dm_atomic_state(dm->atomic_obj.state);
enum dc_connection_type new_connection_type = dc_connection_none;
struct dc_state *dc_state;
- int i, r, j, ret;
- bool need_hotplug = false;
+ int i, r, j;
struct dc_commit_streams_params commit_params = {};
if (dm->dc->caps.ips_support) {
@@ -3427,23 +3426,16 @@ static int dm_resume(void *handle)
aconnector->mst_root)
continue;
- ret = drm_dp_mst_topology_mgr_resume(&aconnector->mst_mgr, true);
-
- if (ret < 0) {
- dm_helpers_dp_mst_stop_top_mgr(aconnector->dc_link->ctx,
- aconnector->dc_link);
- need_hotplug = true;
- }
+ drm_dp_mst_topology_queue_probe(&aconnector->mst_mgr);
}
drm_connector_list_iter_end(&iter);
- if (need_hotplug)
- drm_kms_helper_hotplug_event(ddev);
-
amdgpu_dm_irq_resume_late(adev);
amdgpu_dm_smu_write_watermarks_table(adev);
+ drm_kms_helper_hotplug_event(ddev);
+
return 0;
}
--
2.47.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 6.12] drm/amd/display: Don't write DP_MSTM_CTRL after LT
2025-03-31 14:58 [PATCH 6.12] drm/amd/display: Don't write DP_MSTM_CTRL after LT Thadeu Lima de Souza Cascardo
@ 2025-04-01 9:18 ` Jani Nikula
0 siblings, 0 replies; 2+ messages in thread
From: Jani Nikula @ 2025-04-01 9:18 UTC (permalink / raw)
To: Thadeu Lima de Souza Cascardo, stable
Cc: Wayne Lin, Jerry Zuo, Zaeem Mohamed, Daniel Wheeler, Alex Deucher,
amd-gfx, dri-devel, kernel-dev, cascardo, imre.deak
On Mon, 31 Mar 2025, Thadeu Lima de Souza Cascardo <cascardo@igalia.com> wrote:
> From: Wayne Lin <Wayne.Lin@amd.com>
>
> [ Upstream commit bc068194f548ef1f230d96c4398046bf59165992 ]
>
> [Why]
> Observe after suspend/resme, we can't light up mst monitors under specific
> mst hub.
This is already at stable backport stage, but it would really be helpful
to log *which* specific mst hub we're talking about here. Now the
information is lost in time, at least to outsiders.
BR,
Jani.
> 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>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
> ---
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 16 ++++------------
> 1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index d9a3917d207e..c4c6538eabae 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -3231,8 +3231,7 @@ static int dm_resume(void *handle)
> struct dm_atomic_state *dm_state = to_dm_atomic_state(dm->atomic_obj.state);
> enum dc_connection_type new_connection_type = dc_connection_none;
> struct dc_state *dc_state;
> - int i, r, j, ret;
> - bool need_hotplug = false;
> + int i, r, j;
> struct dc_commit_streams_params commit_params = {};
>
> if (dm->dc->caps.ips_support) {
> @@ -3427,23 +3426,16 @@ static int dm_resume(void *handle)
> aconnector->mst_root)
> continue;
>
> - ret = drm_dp_mst_topology_mgr_resume(&aconnector->mst_mgr, true);
> -
> - if (ret < 0) {
> - dm_helpers_dp_mst_stop_top_mgr(aconnector->dc_link->ctx,
> - aconnector->dc_link);
> - need_hotplug = true;
> - }
> + drm_dp_mst_topology_queue_probe(&aconnector->mst_mgr);
> }
> drm_connector_list_iter_end(&iter);
>
> - if (need_hotplug)
> - drm_kms_helper_hotplug_event(ddev);
> -
> amdgpu_dm_irq_resume_late(adev);
>
> amdgpu_dm_smu_write_watermarks_table(adev);
>
> + drm_kms_helper_hotplug_event(ddev);
> +
> return 0;
> }
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-04-01 14:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-31 14:58 [PATCH 6.12] drm/amd/display: Don't write DP_MSTM_CTRL after LT Thadeu Lima de Souza Cascardo
2025-04-01 9:18 ` Jani Nikula
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox