Add a supported_colorspaces field to struct drm_bridge so HDMI bridges
can declare the colorimetries they support, and pass it on to
drmm_connector_hdmi_init() so the colorspace property gets created.

Suggested-by: Javier Martinez Canillas <[email protected]>
Signed-off-by: Jan Claußen <[email protected]>
---
 drivers/gpu/drm/display/drm_bridge_connector.c | 4 ++++
 include/drm/drm_bridge.h                       | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/display/drm_bridge_connector.c 
b/drivers/gpu/drm/display/drm_bridge_connector.c
index 81f3e26f6fdf..40f50304c46f 100644
--- a/drivers/gpu/drm/display/drm_bridge_connector.c
+++ b/drivers/gpu/drm/display/drm_bridge_connector.c
@@ -1042,6 +1042,10 @@ struct drm_connector *drm_bridge_connector_init(struct 
drm_device *drm,
                        bridge_connector->hdmi_funcs.supported_formats =
                                
bridge_connector->bridge_hdmi->supported_formats;
 
+               if (bridge_connector->bridge_hdmi->supported_colorspaces)
+                       bridge_connector->hdmi_funcs.supported_colorspaces =
+                               
bridge_connector->bridge_hdmi->supported_colorspaces;
+
                if (!connector->ycbcr_420_allowed)
                        bridge_connector->hdmi_funcs.supported_formats &=
                                ~BIT(DRM_OUTPUT_COLOR_FORMAT_YCBCR420);
diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h
index 1981d24a700d..b46d34040024 100644
--- a/include/drm/drm_bridge.h
+++ b/include/drm/drm_bridge.h
@@ -1129,6 +1129,13 @@ struct drm_bridge {
         */
        unsigned int supported_formats;
 
+       /**
+        * @supported_colorspaces: Bitmask of &enum drm_colorspace listing
+        * supported color spaces. This is only relevant if @DRM_BRIDGE_OP_HDMI
+        * is set.
+        */
+       unsigned int supported_colorspaces;
+
        /**
         * @max_tmds_char_rate: Maximum TMDS character rate, in Hz, the HDMI
         * bridge supports. A value of 0 means the core should use the default
-- 
2.56.0

Reply via email to