This patch series adds support for YCBCR HDMI output handling in DRM layer. The main aim of this patch series was to handle YCBCR 4:2:0 output for HDMI 2.0 displays. But while providing a framework to handle non-RGB outputs, support for YCBCR 4:4:4 and 4:2:2 was also added. First 2 patches, complete the CEA mode-db in drm driver, by adding new 4k modes. Current CEA mode-db contains 64 modes only (VIC 1-64), whereas CEA-861-F defined VICs up to 107, including 4k modes, from VIC range 93-107. First patch makes sure that inclusion of these modes doesn't break existing HDMI 1.4 monitors, across various drivers. Next 3 patches focus on parsing new YCBCR 4:2:0 EDID blocks, and adding YCBCR 4:2:0 modes in connector (only for connectors who declare themselves as HDMI 2.0 compliant during init) Next 6 patch create a property (hdmi_output_format) and add the framework to handle the HDMI output type defined in the property. There are also some helper functions provided, to help with the YCBCR HDMI output, like adding deep color information, set color space and get the appropriate YCBCR output based on source + sink capabilities. A User can set the HDMI output property, and select the desired output from YCBCR 4:4:4, 4:2:2 or 4:2:0. A driver can use framework's helper functions to check if this source + sink + mode combination can drive the desired output, or what would be the best suitable output. By default the value of the property is default RGB, so if you don't set the property, there is no change in the regular functionality of an existing source. More details are available with respective patches. Last 6 patches add the I915 core implementation of the HDMI output handling. This patch series was tested with a GLK device, ACER S277HK monitor and ASTRO VA-1844A HDMI analyzer. V3: Added a new patch to introduce YCBCR_420_allowed identifier. V4: Added a new patch to re-sequence sink info parsing befor CEA modes. V5: Added two new patches and some documentation as per review comments. Shashank Sharma (17): drm: add HDMI 2.0 VIC support for AVI info-frames drm: add YCBCR 420 capability identifier drm/edid: Complete CEA modedb(VIC 1-107) drm: add helper to validate ycbcr420 modes drm/edid: parse sink information before CEA blocks drm/edid: rename macro for CEA extended-tag drm/edid: parse YCBCR 420 videomodes from EDID drm/edid: parse ycbcr 420 deep color information drm: create hdmi output property drm: set output colorspace in AVI infoframe drm: add helper functions for YCBCR output handling drm/i915: add compute-config for YCBCR outputs drm/i915: prepare scaler for YCBCR420 modeset drm/i915: prepare pipe for YCBCR output drm/i915: prepare csc unit for YCBCR HDMI output drm/i915: set colorspace for ycbcr outputs drm/i915/glk: set HDMI 2.0 identifier Documentation/gpu/drm-kms.rst | 12 + drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 2 +- drivers/gpu/drm/bridge/analogix-anx78xx.c | 3 +- drivers/gpu/drm/bridge/sii902x.c | 2 +- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 2 +- drivers/gpu/drm/drm_atomic.c | 4 + drivers/gpu/drm/drm_atomic_helper.c | 4 + drivers/gpu/drm/drm_connector.c | 69 ++++- drivers/gpu/drm/drm_crtc_internal.h | 1 + drivers/gpu/drm/drm_edid.c | 480 +++++++++++++++++++++++++++++- drivers/gpu/drm/drm_mode_config.c | 4 + drivers/gpu/drm/drm_modes.c | 335 +++++++++++++++++++++ drivers/gpu/drm/drm_probe_helper.c | 4 + drivers/gpu/drm/exynos/exynos_hdmi.c | 2 +- drivers/gpu/drm/i2c/tda998x_drv.c | 2 +- drivers/gpu/drm/i915/i915_reg.h | 3 + drivers/gpu/drm/i915/intel_atomic.c | 6 + drivers/gpu/drm/i915/intel_color.c | 47 ++- drivers/gpu/drm/i915/intel_display.c | 65 ++++ drivers/gpu/drm/i915/intel_drv.h | 13 +- drivers/gpu/drm/i915/intel_hdmi.c | 119 +++++++- drivers/gpu/drm/i915/intel_modes.c | 13 + drivers/gpu/drm/i915/intel_panel.c | 3 +- drivers/gpu/drm/i915/intel_sdvo.c | 3 +- drivers/gpu/drm/mediatek/mtk_hdmi.c | 2 +- drivers/gpu/drm/omapdrm/omap_encoder.c | 3 +- drivers/gpu/drm/radeon/radeon_audio.c | 2 +- drivers/gpu/drm/rockchip/inno_hdmi.c | 2 +- drivers/gpu/drm/sti/sti_hdmi.c | 2 +- drivers/gpu/drm/tegra/hdmi.c | 2 +- drivers/gpu/drm/tegra/sor.c | 2 +- drivers/gpu/drm/vc4/vc4_hdmi.c | 2 +- drivers/gpu/drm/zte/zx_hdmi.c | 2 +- include/drm/drm_connector.h | 50 ++++ include/drm/drm_edid.h | 17 +- include/drm/drm_mode_config.h | 5 + include/drm/drm_modes.h | 10 + 39 files changed, 1266 insertions(+), 37 deletions(-) -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel