From c192967a9b3855cd5045e188e63ac2c7b1ee3111 Mon Sep 17 00:00:00 2001 From: Alpha Lin Date: Wed, 29 Jul 2020 13:51:26 +0800 Subject: [PATCH] rockchip/iep2: update according to mpp service revision Remove prepare callback for mpp service callback function only used in video codec link table mode. Update task private data acquired method for mpp service revision. Signed-off-by: Alpha Lin Change-Id: I01e908699b5e2eeb29e0a8706a3e526bf8568167 --- drivers/video/rockchip/mpp/mpp_iep2.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/drivers/video/rockchip/mpp/mpp_iep2.c b/drivers/video/rockchip/mpp/mpp_iep2.c index 02affcb2ed3a..864ebd504f1b 100644 --- a/drivers/video/rockchip/mpp/mpp_iep2.c +++ b/drivers/video/rockchip/mpp/mpp_iep2.c @@ -223,7 +223,6 @@ struct iep2_dev { struct reset_control *rst_a; struct reset_control *rst_h; struct reset_control *rst_s; - struct iep_task *current_task; struct mpp_dma_buffer roi; }; @@ -359,12 +358,6 @@ fail: return NULL; } -static void *iep2_prepare(struct mpp_dev *mpp, - struct mpp_task *task) -{ - return NULL; -} - static void iep2_config(struct mpp_dev *mpp, struct iep_task *task) { struct iep2_dev *iep = to_iep2_dev(mpp); @@ -590,15 +583,13 @@ static int iep2_run(struct mpp_dev *mpp, struct mpp_task *mpp_task) { struct iep_task *task = NULL; - struct iep2_dev *iep = NULL; mpp_debug_enter(); task = to_iep_task(mpp_task); - iep = to_iep2_dev(mpp); /* init current task */ - iep->current_task = task; + mpp->cur_task = mpp_task; iep2_config(mpp, task); iep2_osd_cfg(mpp, task); @@ -635,20 +626,19 @@ static int iep2_irq(struct mpp_dev *mpp) static int iep2_isr(struct mpp_dev *mpp) { - struct iep_task *task = NULL; struct mpp_task *mpp_task = NULL; + struct iep_task *task = NULL; struct iep2_dev *iep = to_iep2_dev(mpp); - /* FIXME use a spin lock here */ - task = iep->current_task; + mpp_task = mpp->cur_task; + task = to_iep_task(mpp_task); if (!task) { dev_err(iep->mpp.dev, "no current task\n"); return IRQ_HANDLED; } - mpp_task = &task->mpp_task; mpp_time_diff(mpp_task); - iep->current_task = NULL; + mpp->cur_task = NULL; task->irq_status = mpp->irq_status; mpp_debug(DEBUG_IRQ_STATUS, "irq_status: %08x\n", task->irq_status); @@ -917,7 +907,6 @@ static struct mpp_hw_ops iep_v2_hw_ops = { static struct mpp_dev_ops iep_v2_dev_ops = { .alloc_task = iep2_alloc_task, - .prepare = iep2_prepare, .run = iep2_run, .irq = iep2_irq, .isr = iep2_isr,