diff options
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.patch | 47 |
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 + |