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