[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aQUEDjSIw2ZN0MII@lizhi-Precision-Tower-5810>
Date: Fri, 31 Oct 2025 14:46:38 -0400
From: Frank Li <Frank.li@....com>
To: Peng Fan <peng.fan@....com>
Cc: 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 01/11] remoteproc: imx_dsp_rproc: simplify power domain
attach and error handling
On Fri, Oct 31, 2025 at 05:08:30PM +0800, Peng Fan wrote:
> 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.
>
> Signed-off-by: Peng Fan <peng.fan@....com>
> ---
Reviewed-by: Frank Li <Frank.Li@....com>
> 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);
> }
>
> /* pm runtime functions */
>
> --
> 2.37.1
>
Powered by blists - more mailing lists