mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
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 <zhengyang@rock-chips.com>
This commit is contained in:
@@ -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));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user