video: driver: Fix unbalanced irq warning in interrupt handling

In case of watchdog interrupt, power off sequence will
get called which will make intr_status to 0 due to which
enable_irq gets called from isr_handler irrespective of
watchdog interrupt. Now during power up sequence again
when the enable_irq gets called, it will through
"Unbalanced enable for irq" error.
Added a fix for the same.

Call trace ->
enable_irq+0x9c/0xf8
__power_on_ar50lt+0x2d4/0x320 [msm_video]
__load_fw+0x92c/0x1368 [msm_video]
venus_hfi_core_init+0x64/0x468 [msm_video]
msm_vidc_core_init+0x158/0x4bc [msm_video]
msm_vidc_open+0x90/0x804 [msm_video]

Change-Id: Ic675d7540ef029e530a8cd5b87fb97f72e72057f
Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
这个提交包含在:
Vedang Nagar
2023-02-02 20:35:11 +05:30
父节点 f0b5f5dd65
当前提交 8765409333
修改 3 个文件,包含 3 行新增6 行删除

查看文件

@@ -593,9 +593,8 @@ static int __power_off_iris33(struct msm_vidc_core *core)
if (rc)
d_vpr_e("%s: failed to unvote buses\n", __func__);
if (!(core->intr_status & WRAPPER_INTR_STATUS_A2HWD_BMSK_IRIS33))
if (!call_venus_op(core, watchdog, core, core->intr_status))
disable_irq_nosync(core->resource->irq);
core->intr_status = 0;
msm_vidc_change_core_sub_state(core, CORE_SUBSTATE_POWER_ENABLE, 0, __func__);