aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3570-drm-amd-display-Treat-bad-EDID-as-no-EDID.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3570-drm-amd-display-Treat-bad-EDID-as-no-EDID.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3570-drm-amd-display-Treat-bad-EDID-as-no-EDID.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3570-drm-amd-display-Treat-bad-EDID-as-no-EDID.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3570-drm-amd-display-Treat-bad-EDID-as-no-EDID.patch
new file mode 100644
index 00000000..27ca1d37
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3570-drm-amd-display-Treat-bad-EDID-as-no-EDID.patch
@@ -0,0 +1,47 @@
+From 5975254612ce1681260e9fda1997f9e0890a343f Mon Sep 17 00:00:00 2001
+From: Eric Yang <Eric.Yang2@amd.com>
+Date: Thu, 8 Feb 2018 14:05:14 -0500
+Subject: [PATCH 3570/4131] drm/amd/display: Treat bad EDID as no EDID
+
+We have an mst dock firmware that will emulate an EDID with bad
+checksum.
+
+v2: Tread -> Treat
+
+Signed-off-by: Eric Yang <Eric.Yang2@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/core/dc.c | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
+index e28904e..6fb5eb6 100644
+--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
+@@ -1662,12 +1662,17 @@ struct dc_sink *dc_link_add_remote_sink(
+ &dc_sink->dc_edid,
+ &dc_sink->edid_caps);
+
+- if (edid_status != EDID_OK)
+- goto fail;
++ /*
++ * Treat device as no EDID device if EDID
++ * parsing fails
++ */
++ if (edid_status != EDID_OK) {
++ dc_sink->dc_edid.length = 0;
++ dm_error("Bad EDID, status%d!\n", edid_status);
++ }
+
+ return dc_sink;
+-fail:
+- dc_link_remove_remote_sink(link, dc_sink);
++
+ fail_add_sink:
+ dc_sink_release(dc_sink);
+ return NULL;
+--
+2.7.4
+