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 {