diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4063-drm-amd-display-fix-bug-with-check-for-HPD-Low-in-ve.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4063-drm-amd-display-fix-bug-with-check-for-HPD-Low-in-ve.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4063-drm-amd-display-fix-bug-with-check-for-HPD-Low-in-ve.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4063-drm-amd-display-fix-bug-with-check-for-HPD-Low-in-ve.patch new file mode 100644 index 00000000..fff28cb7 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4063-drm-amd-display-fix-bug-with-check-for-HPD-Low-in-ve.patch @@ -0,0 +1,46 @@ +From fc1656e0f154dced4cb23749c4b2cb0e17a061b9 Mon Sep 17 00:00:00 2001 +From: Sivapiriyan Kumarasamy <sivapiriyan.kumarasamy@amd.com> +Date: Thu, 12 Sep 2019 15:55:44 -0400 +Subject: [PATCH 4063/4256] drm/amd/display: fix bug with check for HPD Low in + verify link cap + +[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> +--- + drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +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 701b73926616..5a0c3384c16b 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 +@@ -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, +-- +2.17.1 + |