diff --git a/packages/linux/patches/raspberrypi/linux-010-fix-vc4-rgb-check.patch b/packages/linux/patches/raspberrypi/linux-010-fix-vc4-rgb-check.patch new file mode 100644 index 0000000000..b610cb8b02 --- /dev/null +++ b/packages/linux/patches/raspberrypi/linux-010-fix-vc4-rgb-check.patch @@ -0,0 +1,41 @@ +From affc6fdac5376701ea468270af1b6fd9ca7616be Mon Sep 17 00:00:00 2001 +From: Matthias Reichl +Date: Sat, 11 Mar 2023 22:41:17 +0100 +Subject: [PATCH] drm/vc4: drop unnecessary and harmful HDMI RGB format check + +RGB is a mandatory format for all DVI and HDMI monitors so there's +no need to check for presence of the DRM_COLOR_FORMAT_RGB444 bit in +color_formats. + +More importantly this checks breaks working around EDID issues with +eg video=HDMI-A-1:1024x768D or drm.edid_firmware=edid/1024x768.bin +as the RGB444 bit is only set when a valid EDID with digital bit set in +the input byte is present - which isn't the case when no EDID can be +read from the display device at all or with the in-built kernel EDIDs, +which mimic analog (VGA) displays without the digital bit set. + +So drop the check, if we output video on the HDMI connector we can +assume that the display can accept 8bit RGB. + +Signed-off-by: Matthias Reichl +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c +index bd762b4e3e8f2..3c60c93c0f888 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -1962,9 +1962,6 @@ vc4_hdmi_sink_supports_format_bpc(const struct vc4_hdmi *vc4_hdmi, + case VC4_HDMI_OUTPUT_RGB: + drm_dbg(dev, "RGB Format, checking the constraints.\n"); + +- if (!(info->color_formats & DRM_COLOR_FORMAT_RGB444)) +- return false; +- + if (bpc == 10 && !(info->edid_hdmi_rgb444_dc_modes & DRM_EDID_HDMI_DC_30)) { + drm_dbg(dev, "10 BPC but sink doesn't support Deep Color 30.\n"); + return false; +-- +2.39.2 +