drm/amd/display: Add debug entry to destroy disconnected edp link
authorLewis Huang <Lewis.Huang@amd.com>
Wed, 3 Jul 2019 03:33:34 +0000 (22:33 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 18 Jul 2019 19:27:26 +0000 (14:27 -0500)
Add a flag to dc_debug_options to determine if a disconnected edp link
should be destroyed.

Signed-off-by: Lewis Huang <Lewis.Huang@amd.com>
Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c
drivers/gpu/drm/amd/display/dc/dc.h

index d6a0a08..94f126d 100644 (file)
@@ -180,13 +180,25 @@ static bool create_links(
                link = link_create(&link_init_params);
 
                if (link) {
-                       if (dc->config.edp_not_connected &&
-                                       link->connector_signal == SIGNAL_TYPE_EDP) {
-                               link_destroy(&link);
-                       } else {
+                       bool should_destory_link = false;
+
+                       if (link->connector_signal == SIGNAL_TYPE_EDP) {
+                               if (dc->config.edp_not_connected)
+                                       should_destory_link = true;
+                               else if (dc->debug.remove_disconnect_edp) {
+                                       enum dc_connection_type type;
+                                       dc_link_detect_sink(link, &type);
+                                       if (type == dc_connection_none)
+                                               should_destory_link = true;
+                               }
+                       }
+
+                       if (!should_destory_link) {
                                dc->links[dc->link_count] = link;
                                link->dc = dc;
                                ++dc->link_count;
+                       } else {
+                               link_destroy(&link);
                        }
                }
        }
index 6da0a6f..c585e16 100644 (file)
@@ -378,6 +378,7 @@ struct dc_debug_options {
        bool scl_reset_length10;
        bool hdmi20_disable;
        bool skip_detection_link_training;
+       bool remove_disconnect_edp;
        unsigned int force_odm_combine; //bit vector based on otg inst
        unsigned int force_fclk_khz;
        bool disable_tri_buf;