From: Lewis Huang <lewis.hu...@amd.com>

[Why]
Driver keeps the invalid information cause report the
incorrect monitor which save in remote sink to OS

[How]
When connector type change from MST to non-MST,
stop the topology manager.

Signed-off-by: Lewis Huang <lewis.hu...@amd.com>
Reviewed-by: Tony Cheng <tony.ch...@amd.com>
Acked-by: Qingqing Zhuo <qingqing.z...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c 
b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index 5652a072d9be..4dfa70c0301b 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -854,6 +854,7 @@ static bool dc_link_detect_helper(struct dc_link *link,
        struct dpcd_caps prev_dpcd_caps;
        bool same_dpcd = true;
        enum dc_connection_type new_connection_type = dc_connection_none;
+       enum dc_connection_type pre_connection_type = dc_connection_none;
        bool perform_dp_seamless_boot = false;
        const uint32_t post_oui_delay = 30; // 30ms
 
@@ -889,6 +890,7 @@ static bool dc_link_detect_helper(struct dc_link *link,
 
        link_disconnect_sink(link);
        if (new_connection_type != dc_connection_none) {
+               pre_connection_type = link->type;
                link->type = new_connection_type;
                link->link_state_valid = false;
 
@@ -962,6 +964,12 @@ static bool dc_link_detect_helper(struct dc_link *link,
                                return true;
                        }
 
+                       // link switch from MST to non-MST stop topology manager
+                       if (pre_connection_type == dc_connection_mst_branch &&
+                               link->type != dc_connection_mst_branch) {
+                               dm_helpers_dp_mst_stop_top_mgr(link->ctx, link);
+                       }
+
                        if (link->type == dc_connection_mst_branch) {
                                LINK_INFO("link=%d, mst branch is now 
Connected\n",
                                          link->link_index);
-- 
2.17.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to