hdmitx: fix sda hold low issue [1/1]
authorZongdong Jiao <zongdong.jiao@amlogic.com>
Fri, 25 Oct 2019 08:29:51 +0000 (16:29 +0800)
committerZongdong Jiao <zongdong.jiao@amlogic.com>
Tue, 3 Dec 2019 07:14:02 +0000 (00:14 -0700)
PD#SWPL-8231

Problem:
When HDMI cable plugin, the SDA may hold low forever or for short time.

Solution:
Add sw_reset_flt reset to resolve hold low forever issue

Verify:
G12/Dongle

Change-Id: I53bbf704bb48a2cd3cc2ebef1444c69ad1623e87
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>
(cherry picked from commit b5c467ea8c3f6cd180b0cd00fa6a5413252119d4)

drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c

index 6f746c356bc33d384fe1dd437ab5e983aa5246e0..e50d71f1f104678d042674db7902579a1b423a25 100644 (file)
@@ -4893,8 +4893,12 @@ static int hdmitx_cntl_ddc(struct hdmitx_dev *hdev, unsigned int cmd,
                        hdmitx_hdcp_opr(1);
                        hdcp_start_timer(hdev);
                }
-               if (argv == HDCP14_OFF)
+               if (argv == HDCP14_OFF) {
+                       hdmitx_set_reg_bits(HDMITX_TOP_SW_RESET, 1, 6, 1);
+                       usleep_range(1000, 2000);
+                       hdmitx_set_reg_bits(HDMITX_TOP_SW_RESET, 0, 6, 1);
                        hdmitx_hdcp_opr(4);
+               }
                if (argv == HDCP22_ON) {
                        if (hdev->topo_info)
                                hdev->topo_info->hdcp_ver = 2;