From 67f70cd542ecca2dc14337a0771c3e5ec1ef7c06 Mon Sep 17 00:00:00 2001 From: Yong Qin Date: Mon, 20 Aug 2018 16:58:04 +0800 Subject: [PATCH] hdmi: pkt: pktfifo not work after switch src PD#172097: hdmi: pktfifo not work after switch src 1.pktinfo not work when exit hdmi source and re-enter hdmi source. Change-Id: I51f08529f38e93158e5c52a686472c5c3577e66b Signed-off-by: Yong Qin --- drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h | 2 +- .../amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c | 10 ++++++++-- .../amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.h | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h index 13988f379e98..382754786391 100644 --- a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h +++ b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h @@ -34,7 +34,7 @@ #include "hdmi_rx_edid.h" -#define RX_VER0 "ver.2018-07-30" +#define RX_VER0 "ver.2018-08-20" /* * * diff --git a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c index 71b56ed0872e..9f3108fbbcff 100644 --- a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c +++ b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c @@ -246,6 +246,10 @@ void rx_tasklet_handler(unsigned long arg) if (irq_flag & IRQ_PACKET_FLAG) rx_pkt_handler(PKT_BUFF_SET_FIFO); + /*pkt overflow or underflow*/ + if (irq_flag & IRQ_PACKET_ERR) + hdmirx_packet_fifo_rst(); + if (irq_flag & IRQ_AUD_FLAG) hdmirx_audio_fifo_rst(); @@ -415,12 +419,14 @@ static int hdmi_rx_ctrl_irq_handler(void) if (rx_get_bits(intr_pedc, PD_FIFO_OVERFL) != 0) { if (log_level & 0x200) rx_pr("[irq] PD_FIFO_OVERFL\n"); - rx.irq_flag |= IRQ_PACKET_FLAG; + rx.irq_flag |= IRQ_PACKET_ERR; + /*hdmirx_packet_fifo_rst();*/ } if (rx_get_bits(intr_pedc, PD_FIFO_UNDERFL) != 0) { if (log_level & 0x200) rx_pr("[irq] PD_FIFO_UNDFLOW\n"); - rx.irq_flag |= IRQ_PACKET_FLAG; + rx.irq_flag |= IRQ_PACKET_ERR; + /*hdmirx_packet_fifo_rst();*/ } } diff --git a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.h b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.h index e7f318f9c578..acb3a0d0f1a4 100644 --- a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.h +++ b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.h @@ -75,6 +75,7 @@ enum err_code_e { enum irq_flag_e { IRQ_AUD_FLAG = 0x01, IRQ_PACKET_FLAG = 0x02, + IRQ_PACKET_ERR = 0x04, }; enum hdcp22_auth_state_e {