From 93343170955d94aa45518edca907ba85a917e6ce Mon Sep 17 00:00:00 2001 From: Zongdong Jiao Date: Wed, 10 Apr 2019 09:58:59 +0800 Subject: [PATCH] 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 --- drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c | 3 +++ include/linux/amlogic/media/sound/spdif_info.h | 8 ++++++++ 2 files changed, 11 insertions(+) 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 #include "checksha.h" +#include 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 -- 2.7.4