From a1af913eb2a4776e0a1875e81a8bbd0fafddf6ea Mon Sep 17 00:00:00 2001 From: Zheng Yang Date: Thu, 29 Jun 2017 09:12:18 +0800 Subject: [PATCH] drm/edid: fix color format when parsing hdmi deep color info According to HDMI spec 1.4, YCbCr422 is also 36-bit mode, so we remove the override of color format when parsing hdmi deep color info. And record hdmi YCbCr444 deep color info in edid_hdmi_dc_modes. The edid_hdmi_dc_modes should be clean up when parsing EDID. Change-Id: Ic5bd3ff5e50b37f04ed4a0688be68bd8259e5af0 Signed-off-by: Zheng Yang --- drivers/gpu/drm/drm_edid.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 24955d8323e8..79016f85bf74 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -4183,15 +4183,9 @@ static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector, connector->name, dc_bpc); info->bpc = dc_bpc; - /* - * Deep color support mandates RGB444 support for all video - * modes and forbids YCRCB422 support for all video modes per - * HDMI 1.3 spec. - */ - info->color_formats = DRM_COLOR_FORMAT_RGB444; /* YCRCB444 is optional according to spec. */ if (hdmi[6] & DRM_EDID_HDMI_DC_Y444) { - info->color_formats |= DRM_COLOR_FORMAT_YCRCB444; + info->edid_hdmi_dc_modes |= DRM_EDID_HDMI_DC_Y444; DRM_DEBUG("%s: HDMI sink does YCRCB444 in deep color.\n", connector->name); } @@ -4274,6 +4268,7 @@ static void drm_add_display_info(struct drm_connector *connector, info->cea_rev = 0; info->max_tmds_clock = 0; info->dvi_dual = false; + info->edid_hdmi_dc_modes = 0; memset(&info->hdmi, 0, sizeof(info->hdmi));