From f80958fbd905962735edfc6c8dfd9b6a6453283d Mon Sep 17 00:00:00 2001 From: Yandong Lin Date: Mon, 18 Jul 2022 10:58:43 +0800 Subject: [PATCH] video: rockchip: mpp: fix task count err on mpp_dev Signed-off-by: Yandong Lin Change-Id: Id0ebcd3c2e945ebd47f68f1c79fd4a0d41943bd5 --- drivers/video/rockchip/mpp/mpp_common.c | 3 +-- drivers/video/rockchip/mpp/mpp_rkvdec2_link.c | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/video/rockchip/mpp/mpp_common.c b/drivers/video/rockchip/mpp/mpp_common.c index c9773e1388f4..72ff0f69b301 100644 --- a/drivers/video/rockchip/mpp/mpp_common.c +++ b/drivers/video/rockchip/mpp/mpp_common.c @@ -818,6 +818,7 @@ again: if (task) { struct mpp_dev *task_mpp = mpp_get_task_used_device(task, task->session); + atomic_inc(&task_mpp->task_count); mpp_taskqueue_pending_to_run(queue, task); set_bit(TASK_STATE_RUNNING, &task->state); if (mpp_task_run(task_mpp, task)) @@ -1522,8 +1523,6 @@ static void mpp_msgs_trigger(struct list_head *msgs_list) if (test_bit(TASK_STATE_ABORT, &task->state)) pr_info("try to trigger abort task %d\n", task->task_id); - atomic_inc(&mpp->task_count); - set_bit(TASK_STATE_PENDING, &task->state); list_add_tail(&task->queue_link, &queue->pending_list); } diff --git a/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c b/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c index b4f1c16e695a..7741816a26e2 100644 --- a/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c +++ b/drivers/video/rockchip/mpp/mpp_rkvdec2_link.c @@ -1859,6 +1859,7 @@ static struct mpp_dev *rkvdec2_get_idle_core(struct mpp_taskqueue *queue, mpp_task->core_id = dec->mpp.core_id; clear_bit(mpp_task->core_id, &queue->core_idle); dec->task_index++; + atomic_inc(&dec->mpp.task_count); mpp_dbg_core("clear core %d idle\n", mpp_task->core_id); return mpp_task->mpp; }