drivers: video: tegra: Add full range HDMI support
authorAly Hirani <ahirani@nvidia.com>
Thu, 23 Apr 2015 23:41:15 +0000 (16:41 -0700)
committerRoopa Ranganathan <rranganathan@nvidia.com>
Wed, 3 Feb 2016 21:36:43 +0000 (13:36 -0800)
commit235ae9a14be0e710232689c88be680ac856e1edf
tree5dda5bce52d7e67193a5440b14121ac01c69a765
parent4870486c932aba8b8541129ca12666c4e7f6aead
drivers: video: tegra: Add full range HDMI support

HDMI sinks by default are only expected to support limited range
which restricts each channel to 16-235, rather than 0-255. The spec also
optionally allows sinks to support full range by declaring a
"quantization selectable" bit in the VCDB block in the EDID.

If the quantiazation selectable is marked as true (independent bools for
RGB/YUV), then the source is allowed to select full range by setting the
RGB/YUV limited/full range bits in the avi infoframe.

This patch adds:
1. A new VMODE flag to indicate that the specific mode is limited range
2. A new FB_CAP_* to indicate that the display supports overriding
RGB/YUV and the associated EDID parsing.
3. Applies the new VMODE LIMITED RANGE to the RGB/YUV modes based
on whether the TV supports overriding the quantization in that color
space as the default.
4. Adds the logic in the hdmi modeset to enable CMU iff we are in RGB
and limited range.
5. Adds the logic in the hdmi driver to set the avi infoframe based on
whether the current mode has the limited range flag set or not.

Bug 1611691

Change-Id: I9c42fea51211c6ed71945a17fe8f1353811951d9
Signed-off-by: Aly Hirani <ahirani@nvidia.com>
Reviewed-on: http://git-master/r/937115
GVS: Gerrit_Virtual_Submit
Reviewed-by: Jon Mayo <jmayo@nvidia.com>
drivers/video/tegra/dc/dc.c
drivers/video/tegra/dc/dc_priv.h
drivers/video/tegra/dc/edid.c
drivers/video/tegra/dc/edid.h
drivers/video/tegra/dc/hdmi2.0.c
drivers/video/tegra/fb.c
include/uapi/linux/fb.h