summaryrefslogtreecommitdiff
authorZongdong Jiao <zongdong.jiao@amlogic.com>2019-04-10 01:58:59 (GMT)
committer Tao Zeng <tao.zeng@amlogic.com>2019-07-31 06:41:50 (GMT)
commit93343170955d94aa45518edca907ba85a917e6ce (patch)
tree59a812e75259f2438968c6f94e77b12edabad5ba
parent2fae3e2118044e82c34f83590f80f53a6f3f53ef (diff)
downloadcommon-93343170955d94aa45518edca907ba85a917e6ce.zip
common-93343170955d94aa45518edca907ba85a917e6ce.tar.gz
common-93343170955d94aa45518edca907ba85a917e6ce.tar.bz2
eARCrx: add hdmitx hpd notify [1/1]
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>
Diffstat
-rw-r--r--drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c3
-rw-r--r--include/linux/amlogic/media/sound/spdif_info.h8
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c
index 2dc6904..9df5704 100644
--- a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c
+++ b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c
@@ -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);
}
diff --git a/include/linux/amlogic/media/sound/spdif_info.h b/include/linux/amlogic/media/sound/spdif_info.h
index 36df67a..a3d6c77 100644
--- a/include/linux/amlogic/media/sound/spdif_info.h
+++ b/include/linux/amlogic/media/sound/spdif_info.h
@@ -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