[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210623073549.24170-6-moudy.ho@mediatek.com>
Date: Wed, 23 Jun 2021 15:35:45 +0800
From: Moudy Ho <moudy.ho@...iatek.com>
To: Mauro Carvalho Chehab <mchehab@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Matthias Brugger <matthias.bgg@...il.com>,
Hans Verkuil <hverkuil-cisco@...all.nl>,
Jernej Skrabec <jernej.skrabec@...l.net>
CC: Maoguang Meng <maoguang.meng@...iatek.com>,
Krzysztof Kozlowski <krzk@...nel.org>,
daoyuan huang <daoyuan.huang@...iatek.com>,
Ping-Hsun Wu <ping-hsun.wu@...iatek.com>,
Geert Uytterhoeven <geert+renesas@...der.be>,
Rob Landley <rob@...dley.net>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
<linux-media@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>,
<linux-mediatek@...ts.infradead.org>,
<linux-kernel@...r.kernel.org>, <tfiga@...omium.org>,
<drinkcat@...omium.org>, <acourbot@...omium.org>,
<pihsun@...omium.org>, <menghui.lin@...iatek.com>,
<sj.huang@...iatek.com>, <ben.lok@...iatek.com>,
<randy.wu@...iatek.com>, <moudy.ho@...iatek.com>,
<srv_heupstream@...iatek.com>, <frederic.chen@...iatek.com>
Subject: [RFC PATCH V0 06/10] media: mtk-mdp3: move clock on to precise place
From: daoyuan huang <daoyuan.huang@...iatek.com>
Move clock on to the previous line of cmdq_pkt_flush.
Due to there're two ways(sync/async) to submit CMDQ task,
and for async case we need to prepare callback param struct along
with error checks and error handlings before submit,
if we move clock on after these error check steps,
we can save some clock off code in error handling.
Signed-off-by: daoyuan huang <daoyuan.huang@...iatek.com>
---
drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c b/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c
index df956ca3685c..a1bdf92d45f7 100644
--- a/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c
+++ b/drivers/media/platform/mtk-mdp3/mtk-mdp3-cmdq.c
@@ -445,11 +445,9 @@ int mdp_cmdq_send(struct mdp_dev *mdp, struct mdp_cmdq_param *param)
return ret;
}
- // TODO: engine conflict dispatch
- for (i = 0; i < param->config->num_components; i++)
- mdp_comp_clock_on(&mdp->pdev->dev, path.comps[i].comp);
-
if (param->wait) {
+ for (i = 0; i < param->config->num_components; i++)
+ mdp_comp_clock_on(&mdp->pdev->dev, path.comps[i].comp);
ret = cmdq_pkt_flush(cmd.pkt);
#ifdef MDP_DEBUG
if (ret) {
@@ -495,6 +493,9 @@ int mdp_cmdq_send(struct mdp_dev *mdp, struct mdp_cmdq_param *param)
cb_param->num_comps = param->config->num_components;
cb_param->mdp_ctx = param->mdp_ctx;
+ mdp_comp_clocks_on(&mdp->pdev->dev, cb_param->comps,
+ cb_param->num_comps);
+
ret = cmdq_pkt_flush_async(cmd.pkt,
mdp_handle_cmdq_callback,
(void *)cb_param);
--
2.18.0
Powered by blists - more mailing lists