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:
@@ -196,12 +196,16 @@ static void hdmi_wq_set_video(struct hdmi *hdmi)
|
|||||||
video->vic = hdmi->vic & HDMI_VIC_MASK;
|
video->vic = hdmi->vic & HDMI_VIC_MASK;
|
||||||
video->eotf = 0;
|
video->eotf = 0;
|
||||||
if (hdmi->eotf) {
|
if (hdmi->eotf) {
|
||||||
if (hdmi->eotf & hdmi->edid.hdr.hdrinfo.eotf)
|
if (hdmi->eotf & hdmi->edid.hdr.hdrinfo.eotf) {
|
||||||
video->eotf = hdmi->eotf;
|
video->eotf = hdmi->eotf;
|
||||||
else
|
} else {
|
||||||
pr_err("sink eotf %x not support eotf %x\n",
|
pr_err("sink eotf %x not support eotf %x\n",
|
||||||
hdmi->edid.hdr.hdrinfo.eotf,
|
hdmi->edid.hdr.hdrinfo.eotf,
|
||||||
hdmi->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 */
|
/* ST_2084 must be 10bit and bt2020 */
|
||||||
if (video->eotf & EOTF_ST_2084) {
|
if (video->eotf & EOTF_ST_2084) {
|
||||||
|
|||||||
@@ -258,12 +258,14 @@ static int hdmi_set_color(struct rk_display_device *device,
|
|||||||
} else if (!strncmp(buf, "hdr", 3)) {
|
} else if (!strncmp(buf, "hdr", 3)) {
|
||||||
if (sscanf(buf, "hdr=%d", &value) == -1)
|
if (sscanf(buf, "hdr=%d", &value) == -1)
|
||||||
return -1;
|
return -1;
|
||||||
pr_debug("current hdr eotf is %d input hdr eotf is %d\n",
|
pr_info("current hdr eotf is %d input hdr eotf is %d\n",
|
||||||
hdmi->eotf, value);
|
hdmi->eotf, value);
|
||||||
if (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 == 0))
|
||||||
hdmi->eotf = value;
|
hdmi->eotf = value;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
pr_err("%s unkown event\n", __func__);
|
pr_err("%s unkown event\n", __func__);
|
||||||
return -1;
|
return -1;
|
||||||
|
|||||||
@@ -1855,7 +1855,7 @@ static void hdmi_dev_config_hdr(struct hdmi_dev *hdmi_dev,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
hdmi_writel(hdmi_dev, FC_DRM_HB, 1);/*verion = 0x1*/
|
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, eotf / 2);
|
||||||
hdmi_writel(hdmi_dev, FC_DRM_PB + 1, 0);
|
hdmi_writel(hdmi_dev, FC_DRM_PB + 1, 0);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user