diff --git a/drivers/media/vin/tvin/hdmirx/hdmi_rx_drv.h b/drivers/media/vin/tvin/hdmirx/hdmi_rx_drv.h index 8ec7e65e8..d9b1f2f2a 100644 --- a/drivers/media/vin/tvin/hdmirx/hdmi_rx_drv.h +++ b/drivers/media/vin/tvin/hdmirx/hdmi_rx_drv.h @@ -116,7 +116,8 @@ /* 2023.10.8 t3x some compatibility problem */ /* 2023.10.10 fix t3x frl audio problem */ /* 2023.10.30 fix t3x clk msr fail */ -#define RX_VER1 "ver.2023/10/30" +/* 2023.11.13 fix t3x irq issue */ +#define RX_VER1 "ver.2023/11/13" /* 50ms timer for hdmirx main loop (HDMI_STATE_CHECK_FREQ is 20) */ diff --git a/drivers/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c b/drivers/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c index 130004087..2f221e6b6 100644 --- a/drivers/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c +++ b/drivers/media/vin/tvin/hdmirx/hdmi_rx_wrapper.c @@ -4568,6 +4568,8 @@ void hdmirx_open_main_port_t3x(u8 port) { rx_info.main_port_open = true; aml_phy_switch_port(port); + if (rx[port].state >= FSM_SIG_READY) + hdmirx_top_irq_en(1, 2, port); } /*********************** @@ -4622,13 +4624,11 @@ static void hdmirx_open_main_port(u8 port) hdmi_rx_top_edid_update(); //hdmirx_hw_config(); } else { - aml_phy_switch_port(port); - if (rx_info.chip_id != CHIP_ID_T3X) { - if (rx[port].state >= FSM_SIG_STABLE) - rx[port].state = FSM_SIG_STABLE; - else - rx[port].state = FSM_HPD_LOW; - } + //aml_phy_switch_port(port); + if (rx[port].state >= FSM_SIG_STABLE) + rx[port].state = FSM_SIG_STABLE; + else + rx[port].state = FSM_HPD_LOW; } rx[port].var.edid_update_flag = 0; rx_pkt_initial(port); @@ -4646,6 +4646,8 @@ static void hdmirx_open_sub_port(u8 port) { rx_info.sub_port_open = true; aml_phy_switch_port(port); + if (rx[port].state >= FSM_SIG_READY) + hdmirx_top_irq_en(1, 2, port); rx_pr("%s:%d\n", __func__, port); }