From bdedd622cb8750847edecf9c76a0ccb0c2c19b34 Mon Sep 17 00:00:00 2001 From: Lei Yang Date: Wed, 13 Mar 2019 15:26:05 +0800 Subject: [PATCH] hdmirx: change irq toggle mode [1/1] PD#SWPL-5224 Problem: missing DRM irq. Solution: 1. modify irq toggle mode. 2. add double check for IP irq bit. Verify: T962x2 Change-Id: I6c77e5da92d5f21bc3710d9a6a744c10b1895e71 Signed-off-by: Lei Yang --- arch/arm/boot/dts/amlogic/tl1_pxp.dts | 2 +- arch/arm/boot/dts/amlogic/tl1_t962x2_skt.dts | 2 +- arch/arm/boot/dts/amlogic/tl1_t962x2_t309.dts | 2 +- drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_drv.h | 2 +- drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c | 8 ++++++++ 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/arch/arm/boot/dts/amlogic/tl1_pxp.dts b/arch/arm/boot/dts/amlogic/tl1_pxp.dts index 97972b03f3e2..0be725c52199 100644 --- a/arch/arm/boot/dts/amlogic/tl1_pxp.dts +++ b/arch/arm/boot/dts/amlogic/tl1_pxp.dts @@ -401,7 +401,7 @@ pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux &hdmirx_c_mux>; repeat = <0>; - interrupts = <0 41 1>; + interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clkc CLKID_HDMIRX_MODET_COMP>, <&clkc CLKID_HDMIRX_CFG_COMP>, <&clkc CLKID_HDMIRX_ACR_COMP>, diff --git a/arch/arm/boot/dts/amlogic/tl1_t962x2_skt.dts b/arch/arm/boot/dts/amlogic/tl1_t962x2_skt.dts index f3cc76ec6756..85e6f5243c5e 100644 --- a/arch/arm/boot/dts/amlogic/tl1_t962x2_skt.dts +++ b/arch/arm/boot/dts/amlogic/tl1_t962x2_skt.dts @@ -627,7 +627,7 @@ pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux &hdmirx_c_mux>; repeat = <0>; - interrupts = <0 41 1>; + interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clkc CLKID_HDMIRX_MODET_COMP>, <&clkc CLKID_HDMIRX_CFG_COMP>, <&clkc CLKID_HDMIRX_ACR_COMP>, diff --git a/arch/arm/boot/dts/amlogic/tl1_t962x2_t309.dts b/arch/arm/boot/dts/amlogic/tl1_t962x2_t309.dts index dbc34b5be5d4..1a262687d2b1 100644 --- a/arch/arm/boot/dts/amlogic/tl1_t962x2_t309.dts +++ b/arch/arm/boot/dts/amlogic/tl1_t962x2_t309.dts @@ -809,7 +809,7 @@ pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux &hdmirx_c_mux>; repeat = <0>; - interrupts = <0 41 1>; + interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clkc CLKID_HDMIRX_MODET_COMP>, <&clkc CLKID_HDMIRX_CFG_COMP>, <&clkc CLKID_HDMIRX_ACR_COMP>, 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 6b9c84c1a8d8..55f57c0ff9d3 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.2019-01-22" +#define RX_VER0 "ver.2019-03-13" /* * * 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 f7fba04d5f72..0d3b6ad98c42 100644 --- a/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c +++ b/drivers/amlogic/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c @@ -576,6 +576,14 @@ reisr:hdmirx_top_intr_stat = hdmirx_rd_top(TOP_INTR_STAT); if (rx.chip_id != CHIP_ID_TL1) { if (error == 1) goto reisr; + } else { + hdmirx_top_intr_stat = hdmirx_rd_top(TOP_INTR_STAT); + hdmirx_top_intr_stat &= 0x1; + if (hdmirx_top_intr_stat) { + if (log_level & ERR_LOG) + rx_pr("\n irq_miss"); + goto reisr; + } } /* check the ip interrupt again */ /*hdmirx_top_intr_stat = hdmirx_rd_top(TOP_INTR_STAT);