video: rockchip: hdmi: fix CTS HF1-53 HDR test

1. HDR MetaData HB2 is 26.
2. Under HF1-53, HDR MetaData should be sent and
PB1 value should be exist in EDID.

Change-Id: I616b4cdcf321ea0080b845c868d1f4cd4881fd14
Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
This commit is contained in:
Zheng Yang
2016-11-16 19:26:24 +08:00
committed by Huang, Tao
parent 36bc5d104e
commit 39c34527e7
3 changed files with 12 additions and 6 deletions

View File

@@ -196,12 +196,16 @@ static void hdmi_wq_set_video(struct hdmi *hdmi)
video->vic = hdmi->vic & HDMI_VIC_MASK;
video->eotf = 0;
if (hdmi->eotf) {
if (hdmi->eotf & hdmi->edid.hdr.hdrinfo.eotf)
if (hdmi->eotf & hdmi->edid.hdr.hdrinfo.eotf) {
video->eotf = hdmi->eotf;
else
} else {
pr_err("sink eotf %x not support eotf %x\n",
hdmi->edid.hdr.hdrinfo.eotf,
hdmi->eotf);
if (hdmi->edid.hdr.hdrinfo.eotf &
EOTF_TRADITIONAL_GMMA_SDR)
video->eotf = EOTF_TRADITIONAL_GMMA_SDR;
}
}
/* ST_2084 must be 10bit and bt2020 */
if (video->eotf & EOTF_ST_2084) {

View File

@@ -258,12 +258,14 @@ static int hdmi_set_color(struct rk_display_device *device,
} else if (!strncmp(buf, "hdr", 3)) {
if (sscanf(buf, "hdr=%d", &value) == -1)
return -1;
pr_debug("current hdr eotf is %d input hdr eotf is %d\n",
hdmi->eotf, value);
pr_info("current hdr eotf is %d input hdr eotf is %d\n",
hdmi->eotf, value);
if (hdmi->eotf != value &&
(hdmi->eotf & hdmi->edid.hdr.hdrinfo.eotf ||
(value & hdmi->edid.hdr.hdrinfo.eotf ||
hdmi->eotf == 0))
hdmi->eotf = value;
else
return 0;
} else {
pr_err("%s unkown event\n", __func__);
return -1;

View File

@@ -1855,7 +1855,7 @@ static void hdmi_dev_config_hdr(struct hdmi_dev *hdmi_dev,
return;
hdmi_writel(hdmi_dev, FC_DRM_HB, 1);/*verion = 0x1*/
hdmi_writel(hdmi_dev, (FC_DRM_HB + 1), 27);/*length of following data*/
hdmi_writel(hdmi_dev, (FC_DRM_HB + 1), 26);/*length of following data*/
hdmi_writel(hdmi_dev, FC_DRM_PB, eotf / 2);
hdmi_writel(hdmi_dev, FC_DRM_PB + 1, 0);