video: rockchip: mpp: fix slice mode iommu issue

When encoder slice mode is enabled the slice irq will deactivate iommu
device and get stuck. So only the last slice irq with IRQ_WAKE_THREAD
return can deactivate iommu device.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9edb8616be56fbc3eace0528407e90f01cd33a5d
This commit is contained in:
Herman Chen
2023-01-16 15:25:54 +08:00
parent 87a6c1de72
commit df2697c026

View File

@@ -2291,7 +2291,9 @@ irqreturn_t mpp_dev_irq(int irq, void *param)
/* normal condition, set state and wake up isr thread */
set_bit(TASK_STATE_IRQ, &task->state);
}
mpp_iommu_dev_deactivate(mpp->iommu_info, mpp);
if (irq_ret == IRQ_WAKE_THREAD)
mpp_iommu_dev_deactivate(mpp->iommu_info, mpp);
} else {
mpp_debug(DEBUG_IRQ_CHECK, "error, task is null\n");
}