From 254c5cce1c8f92a694e283337f301d598f115296 Mon Sep 17 00:00:00 2001 From: Kaifu Hu Date: Mon, 15 Oct 2018 11:22:55 +0800 Subject: [PATCH] hdmitx: repeater need to update edid [1/1] PD#174510 Problem: Soundbar has no sound when playing DTS audio on HDMI source. Solution: Only repeater need to update RX edid as TV edid. Verify: Atom Change-Id: I3d6def33477e6846a7365e888c207b1758060a38 Signed-off-by: Kaifu Hu --- .../amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c index 09f46f83654d..793bc453f923 100644 --- a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c +++ b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c @@ -1195,11 +1195,12 @@ MODULE_PARM_DESC(rptx_edid_aud, "\n receive_edid\n"); module_param(rptx_edid_aud, charp, 0444); /* ----------------------------------------------------------- */ -int Edid_ParsingCEADataBlockCollection(struct hdmitx_info *info, +int Edid_ParsingCEADataBlockCollection(struct hdmitx_dev *hdmitx_device, unsigned char *buff) { unsigned char AddrTag, D, Addr, Data; int temp_addr, i, len, pos; + struct hdmitx_info *info = &(hdmitx_device->hdmi_info); /* Byte number offset d where Detailed Timing data begins */ D = buff[2]; @@ -1217,7 +1218,8 @@ int Edid_ParsingCEADataBlockCollection(struct hdmitx_info *info, case AUDIO_TAG: len = (Data & 0x1f) + 1; - rx_set_receiver_edid(&buff[AddrTag], len); + if (hdmitx_device->repeater_tx) + rx_set_receiver_edid(&buff[AddrTag], len); for (pos = 0, i = 0; i < len; i++) pos += sprintf(rptx_edid_buf+pos, "%02x", buff[AddrTag + i]); @@ -2052,8 +2054,7 @@ int hdmitx_edid_parse(struct hdmitx_dev *hdmitx_device) &hdmitx_device->hdmi_info, EDID_buf[i * 128 + 3]); ret_val = Edid_ParsingCEADataBlockCollection( - &hdmitx_device->hdmi_info, - &EDID_buf[i * 128]); + hdmitx_device, &EDID_buf[i * 128]); Edid_ParseCEADetailedTimingDescriptors( &hdmitx_device->hdmi_info, 5, EDID_buf[i * 128 + 2],