linux/drivers/gpu/drm
Shashank Sharma 0c1f528cb1 drm: handle HDMI 2.0 VICs in AVI info-frames
HDMI 1.4b support the CEA video modes as per range of CEA-861-D (VIC 1-64).
For any other mode, the VIC filed in AVI infoframes should be 0.
HDMI 2.0 sinks, support video modes range as per CEA-861-F spec, which is
extended to (VIC 1-107).

This patch adds a bool input variable, which indicates if the connected
sink is a HDMI 2.0 sink or not. This will make sure that we don't pass a
HDMI 2.0 VIC to a HDMI 1.4 sink.

This patch touches all drm drivers, who are callers of this function
drm_hdmi_avi_infoframe_from_display_mode but to make sure there is
no change in current behavior, is_hdmi2 is kept as false.

In case of I915 driver, this patch:
- checks if the connected display is HDMI 2.0.
- HDMI infoframes carry one of this two type of information:
	- VIC for 4K modes for HDMI 1.4 sinks
	- S3D information for S3D modes
  As CEA-861-F has already defined VICs for 4K videomodes, this
  patch doesn't allow sending HDMI infoframes for HDMI 2.0 sinks,
  until the mode is 3D.

Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Jose Abreu <jose.abreu@synopsys.com>
Cc: Andrzej Hajda <a.hajda@samsung.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>

PS: This patch touches a few lines in few files, which were
already above 80 char, so checkpatch gives 80 char warning again.
- gpu/drm/omapdrm/omap_encoder.c
- gpu/drm/i915/intel_sdvo.c

V2: Rebase, Added r-b from Andrzej
V3: Addressed review comment from Ville:
	- Do not send VICs in both AVI-IF and HDMI-IF
	  send only one of it.
V4: Rebase
V5: Added r-b from Neil.
    Addressed review comments from Ville
    - Do not block HDMI vendor IF, instead check for VIC while
      handling AVI infoframes
V6: Rebase
V7: Rebase

Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1499960000-9232-2-git-send-email-shashank.sharma@intel.com
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2017-07-14 21:23:54 +03:00
..
amd drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
arc drm: Convert atomic drivers from CRTC .disable() to .atomic_disable() 2017-06-30 14:53:15 +02:00
arm drm/mali: Use new atomic iterator macros 2017-07-13 09:54:12 +02:00
armada drm: armada: Constify drm_prop_enum_list structures. 2017-07-03 10:07:43 +02:00
ast drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
atmel-hlcdc drm/atmel-hlcdec: Use for_each_new_connector_in_state 2017-07-13 09:52:09 +02:00
bochs drm/bochs: switch fb_ops over to use drm_fb_helper_cfb helpers 2017-07-03 10:31:14 +02:00
bridge drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
cirrus drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
etnaviv
exynos drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
fsl-dcu drm: Add old state pointer to CRTC .enable() helper function 2017-06-30 14:53:14 +02:00
gma500 drm/gma500: remove an unneeded NULL check 2017-06-28 19:17:38 +02:00
hisilicon drm: Convert atomic drivers from CRTC .disable() to .atomic_disable() 2017-06-30 14:53:15 +02:00
i2c drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
i810 drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
i915 drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
imx drm/imx: Use atomic iterator macros 2017-07-13 09:54:48 +02:00
lib
mediatek drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
meson drm: Convert atomic drivers from CRTC .disable() to .atomic_disable() 2017-06-30 14:53:15 +02:00
mga drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
mgag200 Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2017-06-27 09:18:17 -04:00
msm drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
mxsfb drm/mxsfb: Drop drm_vblank_cleanup 2017-06-23 11:08:44 +02:00
nouveau drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
omapdrm drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
panel drm/panel: s6e3ha2: Add support for s6e3hf2 panel on TM2e board 2017-06-14 20:18:22 +02:00
pl111 drm/pl111: Fix offset calculation for the primary plane. 2017-06-07 11:50:00 -07:00
qxl drm: qxl: constify ttm_place structures. 2017-07-03 10:31:14 +02:00
r128 drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
radeon drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
rcar-du drm: Convert atomic drivers from CRTC .disable() to .atomic_disable() 2017-06-30 14:53:15 +02:00
rockchip drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
savage drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
selftests
shmobile drm/shmob: Drop drm_vblank_cleanup 2017-06-22 08:41:15 +02:00
sis drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
sti drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
stm drm: Convert atomic drivers from CRTC .disable() to .atomic_disable() 2017-06-30 14:53:15 +02:00
sun4i drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
tdfx drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
tegra drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
tilcdc drm: Convert atomic drivers from CRTC .disable() to .atomic_disable() 2017-06-30 14:53:15 +02:00
tinydrm drm/tinydrm: Add RePaper e-ink driver 2017-07-14 19:30:08 +02:00
ttm
udl drm/udl: dma-buf: Constify dma_buf_ops structures. 2017-07-03 10:07:47 +02:00
vc4 drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
vgem drm/vgem: Pin our pages for dmabuf exports 2017-06-23 13:04:22 +02:00
via drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
virtio drm: ttm: virtio-gpu: dma-buf: Constify ttm_place structures. 2017-07-03 10:31:14 +02:00
vmwgfx drm/vmwgfx: Make check_modeset() use the new atomic iterator macros. 2017-07-13 09:50:39 +02:00
zte drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
ati_pcigart.c
drm_agpsupport.c
drm_atomic_helper.c drm/atomic-helper: update lut props directly in ..._legacy_gamma_set 2017-07-14 15:53:06 +02:00
drm_atomic.c drm: rename, adjust and export drm_atomic_replace_property_blob 2017-07-14 15:53:06 +02:00
drm_auth.c
drm_blend.c
drm_bridge.c
drm_bufs.c
drm_cache.c
drm_color_mgmt.c drm: More links for gamma support helpers 2017-06-20 12:13:11 +02:00
drm_connector.c Linux 4.12-rc7 2017-06-27 08:28:30 +10:00
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h
drm_crtc.c
drm_debugfs_crc.c
drm_debugfs.c
drm_dma.c
drm_dp_aux_dev.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c
drm_dp_mst_topology.c drm/dp/mst: Use memchr_inv() instead of memcmp() against a zeroed array 2017-07-13 19:28:43 +03:00
drm_drv.c drm: inhibit drm drivers register to uninitialized drm core 2017-07-11 12:03:11 +02:00
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c drm: handle HDMI 2.0 VICs in AVI info-frames 2017-07-14 21:23:54 +03:00
drm_encoder_slave.c
drm_encoder.c
drm_fb_cma_helper.c drm: Convert CMA fbdev console suspend helpers to use bool 2017-06-20 16:23:40 +02:00
drm_fb_helper.c drm/fb-helper: separate the fb_setcmap helper into atomic and legacy paths 2017-07-14 15:53:06 +02:00
drm_file.c Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2017-06-27 09:18:17 -04:00
drm_flip_work.c
drm_fourcc.c
drm_framebuffer.c drm/atomic: Use the correct iterator macro in atomic_remove_fb 2017-07-13 09:44:58 +02:00
drm_gem_cma_helper.c
drm_gem.c
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h drm/vblank: Unexport drm_vblank_cleanup 2017-06-28 12:51:13 +02:00
drm_ioc32.c
drm_ioctl.c Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next 2017-06-27 09:18:17 -04:00
drm_irq.c drm/doc: Polish irq helper documentation 2017-06-01 08:02:14 +02:00
drm_kms_helper_common.c
drm_legacy.h
drm_lock.c
drm_memory.c
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c
drm_mode_object.c
drm_modes.c
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_pci.c drm/pci: Deprecate drm_pci_init/exit completely 2017-06-20 10:41:03 +02:00
drm_plane_helper.c
drm_plane.c
drm_prime.c
drm_print.c
drm_probe_helper.c
drm_property.c drm: rename, adjust and export drm_atomic_replace_property_blob 2017-07-14 15:53:06 +02:00
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_simple_kms_helper.c drm/simple-kms-helper: Fix the check for the mismatch between plane and CRTC enabled. 2017-07-13 09:44:51 +02:00
drm_syncobj.c drm/syncobj: add sync_file interaction. (v1.2) 2017-06-14 12:11:04 +10:00
drm_sysfs.c
drm_trace_points.c
drm_trace.h
drm_vblank.c drm/fb-helper: Stop using mode_config.mutex for internals 2017-07-06 10:02:01 +02:00
drm_vm.c
drm_vma_manager.c
Kconfig
Makefile Merge tag 'drm-misc-next-2017-06-15' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2017-06-16 09:33:43 +10:00