[PATCH v7 05/22] drm/display: hdmi-state-helper: Act on color format DRM property
Nicolas Frattaroli
nicolas.frattaroli at collabora.com
Wed Jan 21 06:45:12 PST 2026
With the introduction of the "color format" DRM property, which allows
userspace to request a specific color format, the HDMI state helper
should implement this.
Implement it by checking whether the property is set and set to
something other than auto. If so, pass the requested color format, and
otherwise set RGB.
Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli at collabora.com>
---
drivers/gpu/drm/display/drm_hdmi_state_helper.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
index a1d16762ac7a..1ea3b9c93aa5 100644
--- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c
+++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
@@ -649,11 +649,21 @@ hdmi_compute_config(const struct drm_connector *connector,
unsigned int max_bpc = clamp_t(unsigned int,
conn_state->max_bpc,
8, connector->max_bpc);
+ enum hdmi_colorspace hdmi_colorspace =
+ drm_color_format_to_hdmi_colorspace(conn_state->color_format);
int ret;
ret = hdmi_compute_format_bpc(connector, conn_state, mode, max_bpc,
- HDMI_COLORSPACE_RGB);
+ hdmi_colorspace);
if (ret) {
+ /* If a color format was explicitly requested, don't fall back */
+ if (conn_state->color_format) {
+ drm_dbg_kms(connector->dev,
+ "Explicitly set color format '%s' doesn't work.\n",
+ drm_get_color_format_name(conn_state->color_format));
+ return ret;
+ }
+
if (connector->ycbcr_420_allowed) {
ret = hdmi_compute_format_bpc(connector, conn_state,
mode, max_bpc,
--
2.52.0
More information about the linux-arm-kernel
mailing list