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
>

Reply via email to