mirror of
https://github.com/hardkernel/kernel_common_drivers.git
synced 2026-06-25 12:03:48 +09:00
hdmirx: fix fsm exit [1/1]
PD#SWPL-188200 Problem: fsm exit when open irq. Solution: add frl rate judge to avoid. Verify: t3x. Change-Id: I9370811f886be186b6de50f51e2bbea391726f94 Signed-off-by: yaoyu.xu <yaoyu.xu@amlogic.com>
This commit is contained in:
committed by
gerrit autosubmit
parent
e896333b7f
commit
fa72afe3ea
@@ -1555,10 +1555,14 @@ irqreturn_t irq2_handler(int irq, void *params)
|
||||
hdmirx_wr_cor(RX_INTR10_AON_AON_IVCRX, 0xff, E_PORT2);
|
||||
rx[E_PORT2].var.frl_rate =
|
||||
hdmirx_rd_cor(SCDCS_CONFIG1_SCDC_IVCRX, E_PORT2) & 0xf;
|
||||
frate_flg = rx[E_PORT2].var.frl_rate;
|
||||
if (log_level & FRL_LOG)
|
||||
rx_pr("frl rate change\n");
|
||||
rx[E_PORT2].state = FSM_FRL_FLT_READY;
|
||||
rx_pr("frl rate = %d\n", rx[E_PORT2].var.frl_rate);
|
||||
if (frate_flg != rx[E_PORT2].var.frl_rate) {
|
||||
frate_flg = rx[E_PORT2].var.frl_rate;
|
||||
if (log_level & FRL_LOG)
|
||||
rx_pr("frl rate change\n");
|
||||
rx[E_PORT2].state = FSM_FRL_FLT_READY;
|
||||
}
|
||||
}
|
||||
}
|
||||
return IRQ_HANDLED;
|
||||
@@ -1739,10 +1743,14 @@ irqreturn_t irq3_handler(int irq, void *params)
|
||||
hdmirx_wr_cor(RX_INTR10_AON_AON_IVCRX, 0xff, E_PORT3);
|
||||
rx[E_PORT3].var.frl_rate =
|
||||
hdmirx_rd_cor(SCDCS_CONFIG1_SCDC_IVCRX, E_PORT3) & 0xf;
|
||||
frate_flg1 = rx[E_PORT3].var.frl_rate;
|
||||
if (log_level & FRL_LOG)
|
||||
rx_pr("frl rate change\n");
|
||||
rx[E_PORT3].state = FSM_FRL_FLT_READY;
|
||||
rx_pr("frl rate = %d\n", rx[E_PORT3].var.frl_rate);
|
||||
if (frate_flg1 != rx[E_PORT3].var.frl_rate) {
|
||||
frate_flg1 = rx[E_PORT3].var.frl_rate;
|
||||
if (log_level & FRL_LOG)
|
||||
rx_pr("frl rate change\n");
|
||||
rx[E_PORT3].state = FSM_FRL_FLT_READY;
|
||||
}
|
||||
}
|
||||
}
|
||||
return IRQ_HANDLED;
|
||||
@@ -6066,7 +6074,7 @@ void rx_port2_main_state_machine(void)
|
||||
/* need to clr to none, for dishNXT box */
|
||||
rx[port].hdcp.hdcp_version = HDCP_VER_NONE;
|
||||
//rx_sw_reset(2);
|
||||
rx_irq_en(0, port);
|
||||
rx_irq_en(IRQ_EN_HDCP, port);
|
||||
hdmirx_output_en(false);
|
||||
rx[port].state = FSM_FRL_FLT_READY;
|
||||
rx[port].var.vic_check_en = false;
|
||||
@@ -6097,7 +6105,7 @@ void rx_port2_main_state_machine(void)
|
||||
/* need to clr to none, for dishNXT box */
|
||||
rx[port].hdcp.hdcp_version = HDCP_VER_NONE;
|
||||
//rx_sw_reset(2, port);
|
||||
rx_irq_en(0, port);
|
||||
rx_irq_en(IRQ_EN_HDCP, port);
|
||||
hdmirx_output_en(false);
|
||||
rx[port].state = FSM_FRL_FLT_READY;
|
||||
rx[port].var.vic_check_en = false;
|
||||
@@ -6549,7 +6557,7 @@ void rx_port3_main_state_machine(void)
|
||||
rx[port].hdcp.hdcp_pre_ver = rx[port].hdcp.hdcp_version;
|
||||
/* need to clr to none, for dishNXT box */
|
||||
rx[port].hdcp.hdcp_version = HDCP_VER_NONE;
|
||||
rx_irq_en(0, port);
|
||||
rx_irq_en(IRQ_EN_HDCP, port);
|
||||
hdmirx_output_en(false);
|
||||
rx[port].state = FSM_FRL_FLT_READY;
|
||||
rx[port].var.vic_check_en = false;
|
||||
@@ -6580,7 +6588,7 @@ void rx_port3_main_state_machine(void)
|
||||
/* need to clr to none, for dishNXT box */
|
||||
rx[port].hdcp.hdcp_version = HDCP_VER_NONE;
|
||||
//rx_sw_reset(2, port);
|
||||
rx_irq_en(0, port);
|
||||
rx_irq_en(IRQ_EN_HDCP, port);
|
||||
hdmirx_output_en(false);
|
||||
rx[port].state = FSM_FRL_FLT_READY;
|
||||
rx[port].var.vic_check_en = false;
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
/* 2024.09.04 optimize drm pkt handle flow in irq */
|
||||
/* 2024.09.26 fix rx can not unmute on t3x */
|
||||
/* 2024.10.08 use irq to set fpll cfg */
|
||||
/* 2024.10.10 fix fem exit when open irq */
|
||||
#define RX_WRAPPER_VER "ver.2024/10/08"
|
||||
|
||||
struct freq_ref_s {
|
||||
|
||||
Reference in New Issue
Block a user