OSDN Git Service

drm/amd/display: fix bug with check for HPD Low in verify link cap
authorSivapiriyan Kumarasamy <sivapiriyan.kumarasamy@amd.com>
Thu, 12 Sep 2019 19:55:44 +0000 (15:55 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 11 Oct 2019 00:32:39 +0000 (19:32 -0500)
[Why]
There is a bug when determining if link training should be retried when
HPD is low in dp_verify_link_cap_with_retries.

[How]
Correctly, fail dp_verify_link_cap_with_retries without retry when
HPD is low.

Signed-off-by: Sivapiriyan Kumarasamy <sivapiriyan.kumarasamy@amd.com>
Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com>
Acked-by: Abdoulaye Berthe <Abdoulaye.Berthe@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c

index 701b739..5a0c338 100644 (file)
@@ -1656,11 +1656,14 @@ bool dp_verify_link_cap_with_retries(
 
        for (i = 0; i < attempts; i++) {
                int fail_count = 0;
-               enum dc_connection_type type;
+               enum dc_connection_type type = dc_connection_none;
 
                memset(&link->verified_link_cap, 0,
                                sizeof(struct dc_link_settings));
-               if (!dc_link_detect_sink(link, &type)) {
+               if (!dc_link_detect_sink(link, &type) || type == dc_connection_none) {
+                       link->verified_link_cap.lane_count = LANE_COUNT_ONE;
+                       link->verified_link_cap.link_rate = LINK_RATE_LOW;
+                       link->verified_link_cap.link_spread = LINK_SPREAD_DISABLED;
                        break;
                } else if (dp_verify_link_cap(link,
                                &link->reported_link_cap,