author | Zongdong 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) |
commit | 93343170955d94aa45518edca907ba85a917e6ce (patch) | |
tree | 59a812e75259f2438968c6f94e77b12edabad5ba | |
parent | 2fae3e2118044e82c34f83590f80f53a6f3f53ef (diff) | |
download | common-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>
-rw-r--r-- | drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c | 3 | ||||
-rw-r--r-- | include/linux/amlogic/media/sound/spdif_info.h | 8 |
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 |