FAILED: patch "[PATCH] drm/edid: fix CEA extension byte #3 parsing" failed to apply to 5.17-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.17-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 7344bad7fb6daa4877a1c064b52c7d5f9182c41b Mon Sep 17 00:00:00 2001
From: Jani Nikula <[email protected]>
Date: Wed, 23 Mar 2022 12:04:38 +0200
Subject: [PATCH] drm/edid: fix CEA extension byte #3 parsing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Only an EDID CEA extension has byte #3, while the CTA DisplayID Data Block does not. Don't interpret bogus data for color formats.
For most displays it's probably an unlikely scenario you'd have a CTA DisplayID Data Block without a CEA extension, but they do exist.
drivers/gpu/drm/drm_edid.c +8 -4
@@ -5188,10 +5188,14 @@ static void drm_parse_cea_ext(struct drm_connector *connector,/* The existence of a CEA block should imply RGB support */ info->color_formats =DRM_COLOR_FORMAT_RGB444 ; -if (edid_ext[3 ] &EDID_CEA_YCRCB444 ) - info->color_formats |=DRM_COLOR_FORMAT_YCBCR444 ; -if (edid_ext[3 ] &EDID_CEA_YCRCB422 ) - info->color_formats |=DRM_COLOR_FORMAT_YCBCR422 ; + +/* CTA DisplayID Data Block does not have byte #3 */ +if (edid_ext[0 ] ==CEA_EXT ) { +if (edid_ext[3 ] &EDID_CEA_YCRCB444 ) + info->color_formats |=DRM_COLOR_FORMAT_YCBCR444 ; +if (edid_ext[3 ] &EDID_CEA_YCRCB422 ) + info->color_formats |=DRM_COLOR_FORMAT_YCBCR422 ; + }if (cea_db_offsets (edid_ext, &start, &end))return ;