From: Wenjing Liu <wenjing....@amd.com>

[Description]
DP link layer test 400.1.1 fails intermittently.
The test device will pull hpd low immediately
after verify link cap.
Driver reads edid when hpd low that causes the test to fail.

[Solution]
Move read edid before verify link cap, so driver will
read edid before starting link training

Change-Id: I3d35fb06d433970660c18aa0697f570158c13001
Signed-off-by: Wenjing Liu <wenjing....@amd.com>
Reviewed-by: Tony Cheng <tony.ch...@amd.com>
Acked-by: Harry Wentland <harry.wentl...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c    | 16 ++++++++++++++++
 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c |  7 -------
 2 files changed, 16 insertions(+), 7 deletions(-)

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 1279eb1dfc2e..72eb6af62f45 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -666,6 +666,22 @@ bool dc_link_detect(struct dc_link *link, bool boot)
                        break;
                }
 
+               if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
+                       sink_caps.transaction_type ==
+                       DDC_TRANSACTION_TYPE_I2C_OVER_AUX) {
+                       /*
+                        * TODO debug why Dell 2413 doesn't like
+                        *  two link trainings
+                        */
+                       if (is_mst_supported(link)) {
+                               link->verified_link_cap =
+                                               link->reported_link_cap;
+                       } else {
+                               dp_hbr_verify_link_cap(link,
+                                   &link->reported_link_cap);
+                       }
+               }
+
                /* HDMI-DVI Dongle */
                if (sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A &&
                                !sink->edid_caps.edid_hdmi)
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c 
b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
index 3d296b1d118f..9d5fe658d14c 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
@@ -2283,13 +2283,6 @@ void detect_dp_sink_caps(struct dc_link *link)
         * DP, hw_init may need check signal or power up
         * encoder here.
         */
-
-       if (is_mst_supported(link)) {
-               link->verified_link_cap = link->reported_link_cap;
-       } else {
-               dp_hbr_verify_link_cap(link,
-                       &link->reported_link_cap);
-       }
        /* TODO save sink caps in link->sink */
 }
 
-- 
2.11.0

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

Reply via email to