drm/amd/display: Bypass sink detect when there are no eDPs connected
authorJake Wang <haonan.wang2@amd.com>
Tue, 2 Mar 2021 22:55:36 +0000 (17:55 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 Mar 2021 03:32:25 +0000 (23:32 -0400)
[How & Why]
Check DC config to determine if there are any eDPs connected. If there
are no eDPs connected, bypass sink detect when querying eDP presence.

Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Jake Wang <haonan.wang2@amd.com>
Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: Solomon Chiu <solomon.chiu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc.c

index 3dc49964ea7fc140f68dba0d9f18bd4958519a25..dffd150180ec73dbf051b7ad48d48773da69e8e8 100644 (file)
@@ -1096,20 +1096,19 @@ static void detect_edp_presence(struct dc *dc)
 {
        struct dc_link *edp_links[MAX_NUM_EDP];
        struct dc_link *edp_link = NULL;
+       enum dc_connection_type type;
        int i;
        int edp_num;
-       bool edp_sink_present = true;
 
        get_edp_links(dc, edp_links, &edp_num);
        if (!edp_num)
                return;
 
-       if (dc->config.edp_not_connected) {
-                       edp_sink_present = false;
-       } else {
-               enum dc_connection_type type;
-               for (i = 0; i < edp_num; i++) {
-                       edp_link = edp_links[i];
+       for (i = 0; i < edp_num; i++) {
+               edp_link = edp_links[i];
+               if (dc->config.edp_not_connected) {
+                       edp_link->edp_sink_present = false;
+               } else {
                        dc_link_detect_sink(edp_link, &type);
                        edp_link->edp_sink_present = (type != dc_connection_none);
                }