aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1541-drm-amd-display-Fix-soft-hang-issue-when-some-DPCD-d.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1541-drm-amd-display-Fix-soft-hang-issue-when-some-DPCD-d.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1541-drm-amd-display-Fix-soft-hang-issue-when-some-DPCD-d.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1541-drm-amd-display-Fix-soft-hang-issue-when-some-DPCD-d.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1541-drm-amd-display-Fix-soft-hang-issue-when-some-DPCD-d.patch
new file mode 100644
index 00000000..a1526bb1
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1541-drm-amd-display-Fix-soft-hang-issue-when-some-DPCD-d.patch
@@ -0,0 +1,44 @@
+From 73c5b6846781fde69c0b2799b9f1a4655e3025cb Mon Sep 17 00:00:00 2001
+From: Anthony Koo <Anthony.Koo@amd.com>
+Date: Fri, 15 Feb 2019 14:19:30 -0500
+Subject: [PATCH 1541/2940] drm/amd/display: Fix soft hang issue when some DPCD
+ data invalid
+
+[Why]
+AUX transaction returns success, but data has invalid lane count and rate
+which when passed to VBIOS command table causes it to soft hang
+
+[How]
+Do some sanity checking and fail if the DPCD caps are invalid.
+
+Change-Id: I846615c12223f75d100067ce76792f19b64beab3
+Signed-off-by: Anthony Koo <Anthony.Koo@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+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 8ad79df56bf8..e1081e2dffdc 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
+@@ -2474,6 +2474,15 @@ static bool retrieve_link_cap(struct dc_link *link)
+ }
+ }
+
++ /* Error condition checking...
++ * It is impossible for Sink to report Max Lane Count = 0.
++ * It is possible for Sink to report Max Link Rate = 0, if it is
++ * an eDP device that is reporting specialized link rates in the
++ * SUPPORTED_LINK_RATE table.
++ */
++ if (dpcd_data[DP_MAX_LANE_COUNT - DP_DPCD_REV] == 0)
++ return false;
++
+ link->dpcd_caps.dpcd_rev.raw =
+ dpcd_data[DP_DPCD_REV - DP_DPCD_REV];
+
+--
+2.17.1
+