drm/amd/display: update link type to mst before topology discovery
authorWenjing Liu <Wenjing.Liu@amd.com>
Thu, 21 Sep 2017 22:53:40 +0000 (18:53 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Sat, 21 Oct 2017 20:42:55 +0000 (16:42 -0400)
[Description]
link type is not updated before mst topology discovery.
This causes issue when branch device response to link address after before
the start topology discovery event finishes.

[Solution]
update link type to mst before topology discovery

Signed-off-by: Wenjing Liu <Wenjing.Liu@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c

index 976f0f136f29d86574396b1e360d1fc3d66f5b91..a58e61b6e9f9a6e6fdcda2e5dfd92768c970dea9 100644 (file)
@@ -496,6 +496,7 @@ static void detect_dp(
                }
                if (is_mst_supported(link)) {
                        sink_caps->signal = SIGNAL_TYPE_DISPLAY_PORT_MST;
+                       link->type = dc_connection_mst_branch;
 
                        /*
                         * This call will initiate MST topology discovery. Which
@@ -524,12 +525,11 @@ static void detect_dp(
                        if (reason == DETECT_REASON_BOOT)
                                boot = true;
 
-                       if (dm_helpers_dp_mst_start_top_mgr(
+                       if (!dm_helpers_dp_mst_start_top_mgr(
                                link->ctx,
                                link, boot)) {
-                               link->type = dc_connection_mst_branch;
-                       } else {
                                /* MST not supported */
+                               link->type = dc_connection_single;
                                sink_caps->signal = SIGNAL_TYPE_DISPLAY_PORT;
                        }
                }