[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251104042526.GB11714@nxa18884-linux.ap.freescale.net>
Date: Tue, 4 Nov 2025 12:25:26 +0800
From: Peng Fan <peng.fan@....nxp.com>
To: Frank Li <Frank.li@....com>
Cc: Peng Fan <peng.fan@....com>, Bjorn Andersson <andersson@...nel.org>,
Mathieu Poirier <mathieu.poirier@...aro.org>,
Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>,
Philipp Zabel <p.zabel@...gutronix.de>,
Shengjiu Wang <shengjiu.wang@....com>,
Daniel Baluta <daniel.baluta@....com>,
Iuliana Prodan <iuliana.prodan@....com>,
linux-remoteproc@...r.kernel.org, imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 08/11] remoteproc: imx_dsp_rproc: Simplify IMX_RPROC_MMIO
switch case
On Fri, Oct 31, 2025 at 03:09:17PM -0400, Frank Li wrote:
>On Fri, Oct 31, 2025 at 05:08:37PM +0800, Peng Fan wrote:
>> Introduce imx_dsp_rproc_mmio_{start, stop, detect_mode}() helper functions
>> for i.MX variants using IMX_RPROC_MMIO to manage remote processors.
>>
>> Allows the removal of the IMX_RPROC_MMIO switch-case blocks from
>> imx_dsp_rproc_[start,stop,detect_mode](), resulting in cleaner and more
>> maintainable code.
>>
>> No functional changes.
>>
>> Signed-off-by: Peng Fan <peng.fan@....com>
>> ---
>> drivers/remoteproc/imx_dsp_rproc.c | 63 +++++++++++++++++++++++++-------------
>> drivers/remoteproc/imx_rproc.h | 2 --
>> 2 files changed, 42 insertions(+), 23 deletions(-)
>>
>> diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_dsp_rproc.c
>> index f28d25cab3f1d89e5cde37a04b528870a59abeed..456a46f163d3d823a25d16d11fb79fa9fceb2ddb 100644
>> --- a/drivers/remoteproc/imx_dsp_rproc.c
>> +++ b/drivers/remoteproc/imx_dsp_rproc.c
>> @@ -338,6 +338,15 @@ static int imx_dsp_rproc_handle_rsc(struct rproc *rproc, u32 rsc_type,
>> return RSC_HANDLED;
>> }
>>
>> +static int imx_dsp_rproc_mmio_start(struct rproc *rproc)
>> +{
>> + struct imx_dsp_rproc *priv = rproc->priv;
>> + const struct imx_dsp_rproc_dcfg *dsp_dcfg = priv->dsp_dcfg;
>> + const struct imx_rproc_dcfg *dcfg = dsp_dcfg->dcfg;
>> +
>> + return regmap_update_bits(priv->regmap, dcfg->src_reg, dcfg->src_mask, dcfg->src_start);
>> +}
>> +
>> /*
>> * Start function for rproc_ops
>> *
>> @@ -360,12 +369,6 @@ static int imx_dsp_rproc_start(struct rproc *rproc)
>> }
>>
>> switch (dcfg->method) {
>> - case IMX_RPROC_MMIO:
>> - ret = regmap_update_bits(priv->regmap,
>> - dcfg->src_reg,
>> - dcfg->src_mask,
>> - dcfg->src_start);
>> - break;
>> case IMX_RPROC_SCU_API:
>> ret = imx_sc_pm_cpu_start(priv->ipc_handle,
>> IMX_SC_R_DSP,
>> @@ -388,6 +391,15 @@ static int imx_dsp_rproc_start(struct rproc *rproc)
>> return ret;
>> }
>>
>> +static int imx_dsp_rproc_mmio_stop(struct rproc *rproc)
>> +{
>> + struct imx_dsp_rproc *priv = rproc->priv;
>> + const struct imx_dsp_rproc_dcfg *dsp_dcfg = priv->dsp_dcfg;
>> + const struct imx_rproc_dcfg *dcfg = dsp_dcfg->dcfg;
>
>can you add helper macro convert rproc to dcfg to avoid duplicate above
>3 line codes.
Update in next version.
Thanks,
Peng
>
Powered by blists - more mailing lists