From: Wenjing Liu <Wenjing.Liu@xxxxxxx> [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.Liu at amd.com> Reviewed-by: Tony Cheng <Tony.Cheng at amd.com> Acked-by: Harry Wentland <Harry.Wentland at 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