diff --git a/drivers/media/vin/tvin/vdin/vdin_debug.c b/drivers/media/vin/tvin/vdin/vdin_debug.c index a819fe42d..343dd2d55 100644 --- a/drivers/media/vin/tvin/vdin/vdin_debug.c +++ b/drivers/media/vin/tvin/vdin/vdin_debug.c @@ -3560,6 +3560,15 @@ start_chk: } pr_info("bypass_pc_mode:%d pc_mode:%d\n", devp->debug.bypass_pc_mode, vdin_pc_mode); + } else if (!strcmp(parm[0], "invalid_input_en")) { + if (parm[1] && (kstrtouint(parm[1], 16, &temp) == 0)) { + if (temp) + devp->debug.invalid_input_en = true; + else + devp->debug.invalid_input_en = false; + } + pr_info("invalid_input_en:%d\n", + devp->debug.invalid_input_en); } else if (!strcmp(parm[0], "v4l2_buff_area")) { /* * 0: codec_mm_cma area diff --git a/drivers/media/vin/tvin/vdin/vdin_drv.c b/drivers/media/vin/tvin/vdin/vdin_drv.c index a22b7db99..bb2e26ac3 100644 --- a/drivers/media/vin/tvin/vdin/vdin_drv.c +++ b/drivers/media/vin/tvin/vdin/vdin_drv.c @@ -4075,7 +4075,7 @@ irqreturn_t vdin_v4l2_isr(int irq, void *dev_id) } if (!vdin_is_input_valid(devp) && - (devp->vdin_function_sel & VDIN_NOT_DATA_INPUT_DROP)) { + !(devp->debug.invalid_input_en)) { devp->vdin_irq_flag = VDIN_IRQ_FLG_FAKE_IRQ; vdin_drop_frame_info(devp, "no data input"); if (vdin_dbg_en & 0x10) diff --git a/drivers/media/vin/tvin/vdin/vdin_drv.h b/drivers/media/vin/tvin/vdin/vdin_drv.h index bec729102..983de2dbc 100644 --- a/drivers/media/vin/tvin/vdin/vdin_drv.h +++ b/drivers/media/vin/tvin/vdin/vdin_drv.h @@ -304,13 +304,12 @@ struct match_data_s { #define VDIN_FLAG_V4L2_DEBUG 0x00020000 /*flag for isr req&free*/ #define VDIN_FLAG_ISR_REQ 0x00040000 +/* flag for rdma done in isr*/ +#define VDIN_FLAG_RDMA_DONE 0x00080000 #define VDIN_FLAG_ISR_EN 0x00100000 /*flag for get vdin1 hist start interface*/ #define VDIN_FLAG_HIST_STARTED 0x00200000 -/* flag for rdma done in isr*/ -#define VDIN_FLAG_RDMA_DONE 0x00080000 - /*values of vdin isr bypass check flag */ #define VDIN_BYPASS_STOP_CHECK 0x00000001 #define VDIN_BYPASS_CYC_CHECK 0x00000002 @@ -669,6 +668,7 @@ struct vdin_debug_s { unsigned char rgb_8f[3]; unsigned char rgb_8l[3]; unsigned int v4l2_buff_area; + bool invalid_input_en; }; struct vdin_dv_s {