summaryrefslogtreecommitdiff
authorivan.nie <ivan.nie@amlogic.com>2018-10-15 12:00:50 (GMT)
committer ivan.nie <ivan.nie@amlogic.com>2018-10-29 02:20:46 (GMT)
commit01336da93f2a0341b0a781274e22f83b90d2f149 (patch)
tree7322235bf5db10859dfd82e57fd664237493abfd
parente6409ed23a71555615a14db5845590163ebc5dff (diff)
downloadcommon-01336da93f2a0341b0a781274e22f83b90d2f149.zip
common-01336da93f2a0341b0a781274e22f83b90d2f149.tar.gz
common-01336da93f2a0341b0a781274e22f83b90d2f149.tar.bz2
hdmitx: repeater need to update edid [1/1]
BUG=117913482 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: I22af048f0aa708d4cf5b50476ff6909b95622301
Diffstat
-rw-r--r--drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c9
1 files 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 79a5ab6..706d62c 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
@@ -1128,11 +1128,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];
@@ -1150,7 +1151,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->basic_audio)
+ 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]);
@@ -1946,8 +1948,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],