From 3bf2bf8357cf6236d4222ade6bb1df4de773e0b2 Mon Sep 17 00:00:00 2001 From: yicheng shen Date: Thu, 12 Jul 2018 10:17:25 +0800 Subject: [PATCH] hdmirx: hdcp1.4 force OESS mode PD#169940: hdmirx: hdcp1.4 force OESS mode Force OESS mode to fix Google Chromecast box flashing black screen issue. Change-Id: I1768f7b69ac1379166d88f605a4dcfab7a7044ea Signed-off-by: yicheng shen --- .../media/vin/tvin/hdmirx/hdmi_rx_drv.h | 2 +- .../media/vin/tvin/hdmirx/hdmi_rx_hw.c | 3 +- .../media/vin/tvin/hdmirx/hdmi_rx_wrapper.c | 30 ++++++++++--------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h index 6b130423aa25..029a2ee0de15 100644 --- a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h +++ b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h @@ -46,7 +46,7 @@ * * */ -#define RX_VER2 "ver.2018/06/27" +#define RX_VER2 "ver.2018/07/12" /* 50ms timer for hdmirx main loop (HDMI_STATE_CHECK_FREQ is 20) */ diff --git a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_hw.c b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_hw.c index 3ee1ab0fa006..2f59442ff0e1 100644 --- a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_hw.c +++ b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_hw.c @@ -1069,7 +1069,8 @@ static int DWC_init(void) data32 |= (HYST_DVI_TO_HDMI << 8); data32 |= (0 << 6); data32 |= (0 << 4); - data32 |= (0 << 2); + /* Force OESS mode to fix Google Chromecast box black screen issue */ + data32 |= (1 << 2); data32 |= (0 << 0); hdmirx_wr_dwc(DWC_HDMI_MODE_RECOVER, data32); diff --git a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c index 892b543a6b96..f18915b96966 100644 --- a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c +++ b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c @@ -2634,20 +2634,22 @@ unsigned int hdmirx_show_info(unsigned char *buf, int size) "TMDS clock: %d\n", hdmirx_get_tmds_clock()); pos += snprintf(buf+pos, size-pos, "Pixel clock: %d\n", hdmirx_get_pixel_clock()); - /* - *if (drmpkt->des_u.tp1.eotf == EOTF_SDR) - * pos += snprintf(buf+pos, size-pos, - * "HDR EOTF: %s\n", "SDR"); - * else if (drmpkt->des_u.tp1.eotf == EOTF_HDR) - * pos += snprintf(buf+pos, size-pos, - * "HDR EOTF: %s\n", "HDR"); - * else if (drmpkt->des_u.tp1.eotf == EOTF_SMPTE_ST_2048) - * pos += snprintf(buf+pos, size-pos, - * "HDR EOTF: %s\n", "SMPTE_ST_2048"); - * pos += snprintf(buf+pos, size-pos, - * "Dolby Vision: %s\n", - * (rx.vs_info_details.dolby_vision?"on":"off")); - */ + if (drmpkt->des_u.tp1.eotf == EOTF_SDR) + pos += snprintf(buf+pos, size-pos, + "HDR EOTF: %s\n", "SDR"); + else if (drmpkt->des_u.tp1.eotf == EOTF_HDR) + pos += snprintf(buf+pos, size-pos, + "HDR EOTF: %s\n", "HDR"); + else if (drmpkt->des_u.tp1.eotf == EOTF_SMPTE_ST_2048) + pos += snprintf(buf+pos, size-pos, + "HDR EOTF: %s\n", "SMPTE_ST_2048"); + else if (drmpkt->des_u.tp1.eotf == EOTF_HLG) + pos += snprintf(buf+pos, size-pos, + "HDR EOTF: %s\n", "HLG"); + pos += snprintf(buf+pos, size-pos, + "Dolby Vision: %s\n", + (rx.vs_info_details.dolby_vision?"on":"off")); + pos += snprintf(buf+pos, size-pos, "\n\nAudio info\n\n"); pos += snprintf(buf+pos, size-pos,