From 900dde95ad888257de5b10cdd8abe7ec2f4d1d4d Mon Sep 17 00:00:00 2001 From: Yandong Lin Date: Tue, 22 Aug 2023 21:28:58 +0800 Subject: [PATCH] video: rockchip: mpp: fix task re-add running_list issue In rkvdec2_link hard ccu worker, the tasks may resend to hw when decoder reset.There is a bug: the task that resend to hw may be re-add to running_list. Signed-off-by: Yandong Lin Change-Id: I6aa77213d3f5cc805c24d39b5c5d13269297d749 --- drivers/video/rockchip/mpp/mpp_rkvdec2_link.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c b/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c index 209d351cf8af..0d87eb476f40 100644 --- a/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c +++ b/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c @@ -2328,9 +2328,7 @@ static int rkvdec2_hard_ccu_enqueue(struct rkvdec2_ccu *ccu, writel(RKVDEC_CCU_BIT_CFG_DONE, ccu->reg_base + RKVDEC_CCU_CFG_DONE_BASE); mpp_task_run_end(mpp_task, timing_en); - /* pending to running */ set_bit(TASK_STATE_RUNNING, &mpp_task->state); - mpp_taskqueue_pending_to_run(queue, mpp_task); mpp_dbg_ccu("session %d task %d iova=%08x task->state=%lx link_mode=%08x\n", mpp_task->session->index, mpp_task->task_index, (u32)task->table->iova, mpp_task->state, @@ -2503,6 +2501,7 @@ void rkvdec2_hard_ccu_worker(struct kthread_work *work_s) rkvdec2_ccu_power_on(queue, dec->ccu); rkvdec2_hard_ccu_enqueue(dec->ccu, mpp_task, queue, mpp); + mpp_taskqueue_pending_to_run(queue, mpp_task); } /* 4. poweroff when running and pending list are empty */