]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/amd/display: Release MST resources on switch from MST to SST
authorVladimir Stempen <vladimir.stempen@amd.com>
Wed, 19 May 2021 17:55:46 +0000 (13:55 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 8 Jun 2021 16:20:26 +0000 (12:20 -0400)
[why]
When OS overrides training link training parameters
for MST device to SST mode, MST resources are not
released and leak of the resource may result crash and
incorrect MST discovery during following hot plugs.

[how]
Retaining sink object to be reused by SST link and
releasing MST  resources.

Signed-off-by: Vladimir Stempen <vladimir.stempen@amd.com>
Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com>
Acked-by: Stylon Wang <stylon.wang@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c

index 87f955820c0f010003e571cb5f94fd57e2e7e250..919c94de2a2042d37b56301226551275e3cfd975 100644 (file)
@@ -1917,6 +1917,8 @@ static void set_dp_mst_mode(struct dc_link *link, bool mst_enable)
                link->type = dc_connection_single;
                link->local_sink = link->remote_sinks[0];
                link->local_sink->sink_signal = SIGNAL_TYPE_DISPLAY_PORT;
+               dc_sink_retain(link->local_sink);
+               dm_helpers_dp_mst_stop_top_mgr(link->ctx, link);
        } else if (mst_enable == true &&
                        link->type == dc_connection_single &&
                        link->remote_sinks[0] != NULL) {