mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
video: rockchip: mpp: rkvdec2: Disable irq when soft ccu reset
1. it is not need save qos when resetting. 2. In the ccu mode, force core idle is an asynchronous operation. while the core may still be working and will report irq. However, since it is currently a reset operation, IRQ can directly disabled without processing. Change-Id: I2b32f1fdaf77ecf244ae15fdf22341f55b7f3ffc Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
This commit is contained in:
@@ -1707,11 +1707,11 @@ static int rkvdec2_soft_ccu_reset(struct mpp_taskqueue *queue)
|
||||
if (!atomic_read(&mpp->reset_request))
|
||||
continue;
|
||||
dev_info(mpp->dev, "resetting...\n");
|
||||
disable_hardirq(mpp->irq);
|
||||
|
||||
/* foce idle, disconnect core and ccu */
|
||||
writel(dec->core_mask, dec->ccu->reg_base + RKVDEC_CCU_CORE_IDLE_BASE);
|
||||
rockchip_save_qos(mpp->dev);
|
||||
rkvdec2_reset(mpp);
|
||||
rockchip_restore_qos(mpp->dev);
|
||||
|
||||
/* clear error mask */
|
||||
writel_relaxed(dec->core_mask & RKVDEC_CCU_CORE_RW_MASK,
|
||||
@@ -1723,6 +1723,7 @@ static int rkvdec2_soft_ccu_reset(struct mpp_taskqueue *queue)
|
||||
writel(dec->core_mask & RKVDEC_CCU_CORE_RW_MASK,
|
||||
dec->ccu->reg_base + RKVDEC_CCU_CORE_IDLE_BASE);
|
||||
|
||||
enable_irq(mpp->irq);
|
||||
dev_info(mpp->dev, "reset done\n");
|
||||
}
|
||||
atomic_set(&queue->reset_request, 0);
|
||||
|
||||
Reference in New Issue
Block a user