eARCrx: add hdmitx hpd notify [1/1]
authorZongdong Jiao <zongdong.jiao@amlogic.com>
Wed, 10 Apr 2019 01:58:59 +0000 (09:58 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Wed, 31 Jul 2019 06:41:50 +0000 (23:41 -0700)
PD#SWPL-6861

Problem:
Lack hdmitx hpd event notify to eARC

Solution:
Add hdmitx hpd event notify to eARC in HPD interrupt handler w/o
any delay.

Verify:
TBD

Change-Id: Iaff59f3144e4a03db32110d438d14012ab2fed81
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>
drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c
include/linux/amlogic/media/sound/spdif_info.h

index 2dc6904..9df5704 100644 (file)
@@ -47,6 +47,7 @@
 #include "hw_clk.h"
 #include <linux/arm-smccc.h>
 #include "checksha.h"
+#include <linux/amlogic/media/sound/spdif_info.h>
 
 static void mode420_half_horizontal_para(void);
 static void hdmi_phy_suspend(void);
@@ -670,6 +671,7 @@ static irqreturn_t intr_handler(int irq, void *dev)
                hdev->hdmitx_event |= HDMI_TX_HPD_PLUGIN;
                hdev->hdmitx_event &= ~HDMI_TX_HPD_PLUGOUT;
                hdev->rhpd_state = 1;
+               earc_hdmitx_hpdst(1);
                queue_delayed_work(hdev->hdmi_wq,
                        &hdev->work_hpd_plugin, HZ / 2);
        }
@@ -678,6 +680,7 @@ static irqreturn_t intr_handler(int irq, void *dev)
                hdev->hdmitx_event |= HDMI_TX_HPD_PLUGOUT;
                hdev->hdmitx_event &= ~HDMI_TX_HPD_PLUGIN;
                hdev->rhpd_state = 0;
+               earc_hdmitx_hpdst(0);
                queue_delayed_work(hdev->hdmi_wq,
                        &hdev->work_hpd_plugout, HZ / 20);
        }
index 36df67a..a3d6c77 100644 (file)
@@ -51,4 +51,12 @@ int aml_get_hdmi_out_audio(struct snd_kcontrol *kcontrol,
 int aml_set_hdmi_out_audio(struct snd_kcontrol *kcontrol,
        struct snd_ctl_elem_value *ucontrol);
 #endif
+
+extern void earc_hdmitx_hpdst(bool st);
+/* prevent compile error in no HDMIRX case */
+void __attribute__((weak))earc_hdmitx_hpdst(bool st)
+{
+       pr_info("TODO, NEED TO REWRITE THIS FUNCTION\n");
+}
+
 #endif