[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAEnQRZDk0qLb2kegEZrE24oBfoKjqcc86N5e9QLB800vsKbOoA@mail.gmail.com>
Date: Mon, 20 Oct 2025 19:53:30 +0300
From: Daniel Baluta <daniel.baluta@...il.com>
To: Mathieu Poirier <mathieu.poirier@...aro.org>
Cc: Peng Fan <peng.fan@....com>, Daniel Baluta <daniel.baluta@....com>,
Shengjiu Wang <shengjiu.wang@....com>, Frank Li <frank.li@....com>,
Bjorn Andersson <andersson@...nel.org>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>, Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>, linux-remoteproc@...r.kernel.org, imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 3/5] remoteproc: imx_rproc: Enable PM runtime support unconditionally
On Mon, Oct 20, 2025 at 6:40 PM Mathieu Poirier
<mathieu.poirier@...aro.org> wrote:
>
> On Wed, Oct 15, 2025 at 09:52:57PM +0800, Peng Fan wrote:
> > PM runtime support is safe and applicable across all i.MX platforms, not
> > just those using the SCU API. Remove the conditional check and enable PM
> > runtime unconditionally to simplify the code and ensure consistent power
> > management behavior.
> >
> > Signed-off-by: Peng Fan <peng.fan@....com>
> > ---
> > drivers/remoteproc/imx_rproc.c | 22 ++++++++--------------
> > 1 file changed, 8 insertions(+), 14 deletions(-)
> >
> > diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
> > index 820b0cd5adbb17ce5665e7ec2786bca23f1a67ea..25f5cb4d414eabed7a166eb2a8ae5e20b6b4f667 100644
> > --- a/drivers/remoteproc/imx_rproc.c
> > +++ b/drivers/remoteproc/imx_rproc.c
> > @@ -1119,12 +1119,10 @@ static int imx_rproc_probe(struct platform_device *pdev)
> > return dev_err_probe(dev, ret, "register restart handler failure\n");
> > }
> >
> > - if (dcfg->method == IMX_RPROC_SCU_API) {
> > - pm_runtime_enable(dev);
> > - ret = pm_runtime_resume_and_get(dev);
> > - if (ret)
> > - return dev_err_probe(dev, ret, "pm_runtime get failed\n");
> > - }
> > + pm_runtime_enable(dev);
> > + ret = pm_runtime_resume_and_get(dev);
> > + if (ret)
> > + return dev_err_probe(dev, ret, "pm_runtime get failed\n");
> >
> > ret = devm_rproc_add(dev, rproc);
> > if (ret) {
> > @@ -1135,10 +1133,8 @@ static int imx_rproc_probe(struct platform_device *pdev)
> > return 0;
> >
> > err_put_pm:
> > - if (dcfg->method == IMX_RPROC_SCU_API) {
> > - pm_runtime_disable(dev);
> > - pm_runtime_put_noidle(dev);
> > - }
> > + pm_runtime_disable(dev);
> > + pm_runtime_put_noidle(dev);
> >
> > return ret;
> > }
> > @@ -1148,10 +1144,8 @@ static void imx_rproc_remove(struct platform_device *pdev)
> > struct rproc *rproc = platform_get_drvdata(pdev);
> > struct imx_rproc *priv = rproc->priv;
> >
> > - if (priv->dcfg->method == IMX_RPROC_SCU_API) {
> > - pm_runtime_disable(priv->dev);
> > - pm_runtime_put_noidle(priv->dev);
> > - }
> > + pm_runtime_disable(priv->dev);
> > + pm_runtime_put_noidle(priv->dev);
> > }
>
> Daniel - what is your take on this one?
This is on my todo list for review. Will send it asap.
Powered by blists - more mailing lists