From ed6e7edce944bdccd75e3c24110767ac2ce67a44 Mon Sep 17 00:00:00 2001 From: Yandong Lin Date: Fri, 12 Aug 2022 15:35:04 +0800 Subject: [PATCH] video: rockchip: mpp: fix enc err using rcb buf on dule core Signed-off-by: Yandong Lin Change-Id: I74a34b4b9a12c051b833a7c3f8fe86dbfa9fead2 --- drivers/video/rockchip/mpp/mpp_rkvenc2.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/video/rockchip/mpp/mpp_rkvenc2.c b/drivers/video/rockchip/mpp/mpp_rkvenc2.c index c4c383a59270..22a84ca57172 100644 --- a/drivers/video/rockchip/mpp/mpp_rkvenc2.c +++ b/drivers/video/rockchip/mpp/mpp_rkvenc2.c @@ -779,7 +779,6 @@ static void *rkvenc_alloc_task(struct mpp_session *session, } } } - rkvenc2_set_rcbbuf(mpp, session, task); rkvenc2_setup_task_id(session->index, task); task->clk_mode = CLK_MODE_NORMAL; task->task_split = rkvenc2_is_split_task(task); @@ -829,10 +828,12 @@ static void *rkvenc2_prepare(struct mpp_dev *mpp, struct mpp_task *mpp_task) mpp_task = NULL; mpp_dbg_core("core %d all busy %lx\n", core_id, core_idle); } else { + struct rkvenc_task *task = to_rkvenc_task(mpp_task); + clear_bit(core_id, &queue->core_idle); mpp_task->mpp = queue->cores[core_id]; mpp_task->core_id = core_id; - + rkvenc2_set_rcbbuf(mpp_task->mpp, mpp_task->session, task); mpp_dbg_core("core %d set idle %lx -> %lx\n", core_id, core_idle, queue->core_idle); } @@ -2054,14 +2055,13 @@ static int rkvenc_core_probe(struct platform_device *pdev) if (ret) return ret; - rkvenc2_alloc_rcbbuf(pdev, enc); - /* attach core to ccu */ ret = rkvenc_attach_ccu(dev, enc); if (ret) { dev_err(dev, "attach ccu failed\n"); return ret; } + rkvenc2_alloc_rcbbuf(pdev, enc); ret = devm_request_threaded_irq(dev, mpp->irq, mpp_dev_irq,