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 <[email protected]>
>> ---
>> 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
>