linux (RPi): add patch to fix color format check in vc4_hdmi

This fixes "no video" issue when working around EDID problems with
eg video=... kernel command line parameter.

Signed-off-by: Matthias Reichl <hias@horus.com>
This commit is contained in:
Matthias Reichl 2023-03-11 22:53:29 +01:00
parent dfc23bf03e
commit cbc7d3e75c

View File

@ -0,0 +1,41 @@
From affc6fdac5376701ea468270af1b6fd9ca7616be Mon Sep 17 00:00:00 2001
From: Matthias Reichl <hias@horus.com>
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 <hias@horus.com>
---
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