[Intel-gfx] [PATCH v4 00/15] HDMI YCBCR output handling in DRM layer
Shashank Sharma
shashank.sharma at intel.com
Mon Jun 19 16:08:07 UTC 2017
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.
Shashank Sharma (15):
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/edid: parse YCBCR 420 videomodes from EDID
drm/edid: parse ycbcr 420 deep color information
drm/edid: parse sink information before CEA blocks
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
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 | 2 +
drivers/gpu/drm/drm_atomic_helper.c | 4 +
drivers/gpu/drm/drm_connector.c | 32 +++
drivers/gpu/drm/drm_edid.c | 462 +++++++++++++++++++++++++++++-
drivers/gpu/drm/drm_modes.c | 307 ++++++++++++++++++++
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 | 68 +++++
drivers/gpu/drm/i915/intel_drv.h | 13 +-
drivers/gpu/drm/i915/intel_hdmi.c | 131 ++++++++-
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 | 14 +-
include/drm/drm_mode_config.h | 5 +
include/drm/drm_modes.h | 5 +
34 files changed, 1157 insertions(+), 34 deletions(-)
--
2.7.4
More information about the Intel-gfx
mailing list