On Tue, Nov 11, 2025 at 09:41:12AM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <[email protected]> > > Refactor imx_dsp_attach_pm_domains() to use devm_pm_domain_attach_list() > directly, removing manual detach logic and simplifying resource management. > > Also replace verbose error handling in imx_dsp_rproc_probe() with > dev_err_probe() for cleaner and more consistent error reporting. > > No functional changes. > > Reviewed-by: Frank Li <[email protected]> > Reviewed-by: Daniel Baluta <[email protected]> > Reviewed-by: Shengjiu Wang <[email protected]> > Signed-off-by: Peng Fan <[email protected]> > --- > drivers/remoteproc/imx_dsp_rproc.c | 29 ++++++++--------------------- > 1 file changed, 8 insertions(+), 21 deletions(-) > > diff --git a/drivers/remoteproc/imx_dsp_rproc.c > b/drivers/remoteproc/imx_dsp_rproc.c > index > 6e78a01755c7bdc28cd93f00fe6f74affc3d96b0..c466363debbebe8f91b908b3bffaa32e9bf8b9a6 > 100644 > --- a/drivers/remoteproc/imx_dsp_rproc.c > +++ b/drivers/remoteproc/imx_dsp_rproc.c > @@ -1062,14 +1062,12 @@ static const struct rproc_ops imx_dsp_rproc_ops = { > static int imx_dsp_attach_pm_domains(struct imx_dsp_rproc *priv) > { > struct device *dev = priv->rproc->dev.parent; > - int ret; > > /* A single PM domain is already attached. */ > if (dev->pm_domain) > return 0; > > - ret = dev_pm_domain_attach_list(dev, NULL, &priv->pd_list); > - return ret < 0 ? ret : 0; > + return devm_pm_domain_attach_list(dev, NULL, &priv->pd_list); > } > > /** > @@ -1186,35 +1184,25 @@ static int imx_dsp_rproc_probe(struct platform_device > *pdev) > > /* There are multiple power domains required by DSP on some platform */ > ret = imx_dsp_attach_pm_domains(priv); > - if (ret) { > - dev_err(dev, "failed on imx_dsp_attach_pm_domains\n"); > - return ret; > - } > + if (ret < 0) > + return dev_err_probe(dev, ret, "failed on > imx_dsp_attach_pm_domains\n"); > + > /* Get clocks */ > ret = imx_dsp_rproc_clk_get(priv); > - if (ret) { > - dev_err(dev, "failed on imx_dsp_rproc_clk_get\n"); > - goto err_detach_domains; > - } > + if (ret) > + return dev_err_probe(dev, ret, "failed on > imx_dsp_rproc_clk_get\n"); > > init_completion(&priv->pm_comp); > rproc->auto_boot = false; > ret = rproc_add(rproc); > - if (ret) { > - dev_err(dev, "rproc_add failed\n"); > - goto err_detach_domains; > - } > + if (ret) > + return dev_err_probe(dev, ret, "rproc_add failed\n"); > > rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_XTENSA); > > pm_runtime_enable(dev); > > return 0; > - > -err_detach_domains: > - dev_pm_domain_detach_list(priv->pd_list); > - > - return ret; > } > > static void imx_dsp_rproc_remove(struct platform_device *pdev) > @@ -1224,7 +1212,6 @@ static void imx_dsp_rproc_remove(struct platform_device > *pdev) > > pm_runtime_disable(&pdev->dev); > rproc_del(rproc); > - dev_pm_domain_detach_list(priv->pd_list);
This patch is giving me a compilation warning. > } > > /* pm runtime functions */ > > -- > 2.37.1 >

