50ms定时器,一直在循环轮训。当5V检测插入后,判断在当前信号源后(rx.open_fg会被设置为1)。继续往下走,检测不到不往下走
void hdmirx_timer_handler(unsigned long arg)
{
struct hdmirx_dev_s *devp = (struct hdmirx_dev_s *)arg;
rx_5v_det();
rx_check_repeat();
if (rx.open_fg)
hdmirx_hw_monitor();
devp->timer.expires = jiffies + TIMER_STATE_CHECK;
add_timer(&devp->timer);
}
rx.open_fg ==1 的情况下走hdmirx_hw_monitor
rx.open_fg = 1; 是被这个函数赋值为1的。这个函数是上层调用下来的。
int hdmirx_dec_open(struct tvin_frontend_s *fe, enum tvin_port_e port)
{
struct hdmirx_dev_s *devp;
devp = container_of(fe, struct hdmirx_dev_s, frontend);
devp->param.port = port;
/* should enable the adc ref signal for audio pll */
vdac_enable(1, 0x10);
hdmirx_hw_init(port);
/* timer */
#if