hdmitx: forward partial EDID data to upstream [2/2]
authorZongdong Jiao <zongdong.jiao@amlogic.com>
Mon, 30 Jul 2018 06:58:50 +0000 (02:58 -0400)
committerYixun Lan <yixun.lan@amlogic.com>
Tue, 31 Jul 2018 07:27:09 +0000 (00:27 -0700)
PD#170713: hdmitx: forward partial EDID data to upstream

TXLX have both HDMITX and HDMIRX. We need forward nessary downstream
information to upstream.

Change-Id: Ie129415b49ceeba2f326d1e500323d39c3a8ba12
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>
drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c
drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c

index 1a9b18cd33a80e56143d4c1745f86b46185bfcd1..79a5ab6567409be92f49c74fe5e15dbf9d8666fc 100644 (file)
@@ -296,16 +296,14 @@ int Edid_Parse_check_HDMI_VSDB(struct hdmitx_dev *hdev,
        }
 
        set_vsdb_phy_addr(hdev, &info->vsdb_phy_addr, &buff[BlockAddr]);
-       if (hdev->repeater_tx) {
-               if ((check_fbc_special(&hdev->EDID_buf[0])) ||
-                   (check_fbc_special(&hdev->EDID_buf1[0])))
-                       rx_edid_physical_addr(0, 0, 0, 0);
-               else
-                       rx_edid_physical_addr(info->vsdb_phy_addr.a,
-                               info->vsdb_phy_addr.b,
-                               info->vsdb_phy_addr.c,
-                               info->vsdb_phy_addr.d);
-       }
+       if ((check_fbc_special(&hdev->EDID_buf[0])) ||
+           (check_fbc_special(&hdev->EDID_buf1[0])))
+               rx_edid_physical_addr(0, 0, 0, 0);
+       else
+               rx_edid_physical_addr(info->vsdb_phy_addr.a,
+                       info->vsdb_phy_addr.b,
+                       info->vsdb_phy_addr.c,
+                       info->vsdb_phy_addr.d);
 
        if (temp_addr >= VSpecificBoundary)
                ret = -1;
index 8389ee0be76b72345ecdcfb47ef000eeea90aa38..da458b2d23f376f4fb4345a8e7b7787d2f91e93d 100644 (file)
@@ -3092,8 +3092,7 @@ static void hdmitx_hpd_plugin_handler(struct work_struct *work)
        pr_info(SYS "plugin\n");
        hdev->hdmitx_event &= ~HDMI_TX_HPD_PLUGIN;
        /* start reading E-EDID */
-       if (hdev->repeater_tx)
-               rx_repeat_hpd_state(1);
+       rx_repeat_hpd_state(1);
        hdmitx_get_edid(hdev);
        hdmi_physcial_size_update(hdev);
        if (hdev->RXCap.IEEEOUI != 0x000c03)
@@ -3182,6 +3181,7 @@ static void hdmitx_hpd_plugout_handler(struct work_struct *work)
        hdev->hdmitx_event &= ~HDMI_TX_HPD_PLUGOUT;
        hdev->HWOp.CntlMisc(hdev, MISC_ESM_RESET, 0);
        clear_hdr_info(hdev);
+       rx_edid_physical_addr(0, 0, 0, 0);
        hdmitx_edid_clear(hdev);
        hdmi_physcial_size_update(hdev);
        hdmitx_edid_ram_buffer_clear(hdev);