video: rockchip: mpp: disable irq during timeout reset

Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: Idb91a22e55f3eaedfebf23fd7780ed4014e0da98
This commit is contained in:
Chandler Chen
2023-03-02 16:15:28 +08:00
committed by Tao Huang
parent feaa0f093e
commit 5afe9dd58f

View File

@@ -578,6 +578,12 @@ static void mpp_task_timeout_work(struct work_struct *work_s)
mpp = mpp_get_task_used_device(task, session);
/* disable core irq */
disable_irq(mpp->irq);
/* disable mmu irq */
if (mpp->iommu_info && mpp->iommu_info->got_irq)
disable_irq(mpp->iommu_info->irq);
/* hardware maybe dead, reset it */
mpp_reset_up_read(mpp->reset_group);
mpp_dev_reset(mpp);
@@ -590,6 +596,13 @@ static void mpp_task_timeout_work(struct work_struct *work_s)
/* remove task from taskqueue running list */
mpp_taskqueue_pop_running(mpp->queue, task);
/* enable core irq */
enable_irq(mpp->irq);
/* enable mmu irq */
if (mpp->iommu_info && mpp->iommu_info->got_irq)
enable_irq(mpp->iommu_info->irq);
mpp_taskqueue_trigger_work(mpp);
}