This would please the compiler to have a enum transformation from one to
another even though the values are the same. It should also make things
obvious that we use different enums.

Signed-off-by: Marius Vlad <marius.v...@collabora.com>
---
 .../gpu/drm/display/drm_hdmi_state_helper.c    |  4 +++-
 drivers/gpu/drm/drm_connector.c                | 18 ++++++++++++++++++
 include/drm/drm_connector.h                    |  3 +++
 3 files changed, 24 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 f9aa922d25d3..dc2f32651cb9 100644
--- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c
+++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
@@ -653,9 +653,11 @@ hdmi_compute_config(const struct drm_connector *connector,
                                       conn_state->max_bpc,
                                       8, connector->max_bpc);
        int ret;
+       enum hdmi_colorspace hdmi_colorspace =
+               color_format_to_hdmi_colorspace(conn_state->color_format);
 
        ret = hdmi_compute_format_bpc(connector, conn_state, mode, max_bpc,
-                                     HDMI_COLORSPACE_RGB);
+                                     hdmi_colorspace);
        if (ret) {
                if (connector->ycbcr_420_allowed) {
                        ret = hdmi_compute_format_bpc(connector, conn_state,
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 96e95047248e..c77d770c18c7 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1384,6 +1384,24 @@ drm_color_format_enum_to_color_format(enum 
drm_color_format_enum fmt_enum)
        }
 }
 
+enum hdmi_colorspace
+color_format_to_hdmi_colorspace(enum drm_color_format fmt)
+{
+       switch (fmt) {
+       default:
+       case DRM_COLOR_FORMAT_AUTO:
+               return HDMI_COLORSPACE_AUTO;
+       case DRM_COLOR_FORMAT_RGB444:
+               return HDMI_COLORSPACE_RGB;
+       case DRM_COLOR_FORMAT_YCBCR444:
+               return HDMI_COLORSPACE_YUV444;
+       case DRM_COLOR_FORMAT_YCBCR422:
+               return HDMI_COLORSPACE_YUV422;
+       case DRM_COLOR_FORMAT_YCBCR420:
+               return HDMI_COLORSPACE_YUV420;
+       }
+}
+
 /**
  * drm_get_color_format_name - return a string for color format
  * @colorspace: color format to compute name of
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 24d760e2fa8f..844d7a495bed 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -2586,6 +2586,9 @@ drm_color_format_to_color_format_enum(enum 
drm_color_format fmt);
 u32
 drm_color_format_enum_to_color_format(enum drm_color_format_enum fmt_enum);
 
+enum hdmi_colorspace
+color_format_to_hdmi_colorspace(enum drm_color_format fmt);
+
 /**
  * drm_for_each_connector_iter - connector_list iterator macro
  * @connector: &struct drm_connector pointer used as cursor
-- 
2.47.2

Reply via email to