linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Aisheng Dong <aisheng.dong@nxp.com>
To: Clark Wang <xiaoning.wang@nxp.com>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>
Cc: "kernel@pengutronix.de" <kernel@pengutronix.de>,
	"festevam@gmail.com" <festevam@gmail.com>,
	dl-linux-imx <linux-imx@nxp.com>,
	"sumit.semwal@linaro.org" <sumit.semwal@linaro.org>,
	"christian.koenig@amd.com" <christian.koenig@amd.com>,
	"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH 02/11] i2c: imx-lpi2c: add runtime pm support
Date: Fri, 19 Mar 2021 10:26:36 +0000	[thread overview]
Message-ID: <AM6PR04MB4966A89FA43404FCB8C9E4A080689@AM6PR04MB4966.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <AM6PR04MB5623EF66E8ED430F84F8A57DF3689@AM6PR04MB5623.eurprd04.prod.outlook.com>

[...]

> > > >  	pm_runtime_set_autosuspend_delay(&pdev->dev,
> > > I2C_PM_TIMEOUT);
> > > >  	pm_runtime_use_autosuspend(&pdev->dev);
> > > > -	pm_runtime_get_noresume(&pdev->dev);
> > > > -	pm_runtime_set_active(&pdev->dev);
> > > >  	pm_runtime_enable(&pdev->dev);
> > > >
> > > > +	ret = pm_runtime_get_sync(&pdev->dev);
> > > > +	if (ret < 0) {
> > > > +		pm_runtime_put_noidle(&pdev->dev);
> > > > +		dev_err(&pdev->dev, "failed to enable clock\n");
> > > > +		return ret;
> > > > +	}
> > >
> > > Can't current clk control via rpm work well?
> > > Please describe why need change.
> >
> > I think the previous patch maker might want to use the return value of
> > pm_runtime_get_sync to check whether the clock has been turned on
> > correctly to
> > avoid the kernel panic.
> > Maybe I can change to the method like this.
> > 	pm_runtime_get_noresume(&pdev->dev);
> > 	ret = pm_runtime_set_active(&pdev->dev);
> > 	if (ret < 0)
> > 		goto out;
> > 	pm_runtime_enable(&pdev->dev);
> >
> > Best Regards,
> > Clark Wang
> 
> Sorry, I missed the point before.
> If we use pm_runtime_get_noresume(&pdev->dev); and
> pm_runtime_set_active(&pdev->dev); here, the clk should be enabled by using
> clk_prepare_enable() in the probe function. However, the call of
> clk_prepare_enable() is already in lpi2c_runtime_resume().
> Using get_sync() here can help to reduce the repetitive code, especially ipg
> clk will be added later.

Let's not do for this negligible improvement unless there're any other good benefits.
If really care, move clk operation into an inline function instead.
Another benefit if not doing that is the driver still can work even RPM not enabled.

Regards
Aisheng

> Shall we change to use pm_runtime_get_sync() here?
> 
> Regards,
> Clark Wang
> 


  reply	other threads:[~2021-03-19 10:27 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-17  6:53 [PATCH 00/11] i2c: imx-lpi2c: New features and bug fixes Clark Wang
2021-03-17  6:53 ` [PATCH 01/11] i2c: imx-lpi2c: directly retrun ISR when detect a NACK Clark Wang
2021-03-19  4:25   ` Aisheng Dong
2021-03-17  6:53 ` [PATCH 02/11] i2c: imx-lpi2c: add runtime pm support Clark Wang
2021-03-19  4:40   ` Aisheng Dong
2021-03-19  5:33     ` Clark Wang
2021-03-19  6:16     ` Clark Wang
2021-03-19  8:00       ` Clark Wang
2021-03-19 10:26         ` Aisheng Dong [this message]
2021-03-17  6:53 ` [PATCH 03/11] i2c: imx-lpi2c: add ipg clk for lpi2c driver Clark Wang
2021-03-19  4:46   ` Aisheng Dong
2021-03-19  6:23     ` Clark Wang
2021-03-19  9:18       ` Aisheng Dong
2021-03-17  6:53 ` [PATCH 04/11] i2c: imx-lpi2c: manage irq resource request/release in runtime pm Clark Wang
2021-03-19  4:53   ` Aisheng Dong
2021-03-19  7:03     ` Clark Wang
2021-03-19 10:12       ` Aisheng Dong
2021-03-17  6:53 ` [PATCH 05/11] i2c: imx-lpi2c: add debug message when i2c peripheral clk doesn't work Clark Wang
2021-03-19  4:56   ` Aisheng Dong
2021-03-19  7:07     ` Clark Wang
2021-03-17  6:53 ` [PATCH 06/11] i2c: imx-lpi2c: improve i2c driver probe priority Clark Wang
2021-03-19  5:05   ` Aisheng Dong
2021-03-19  5:38   ` Wolfram Sang
2021-03-19  7:39     ` [EXT] " Clark Wang
2021-03-17  6:53 ` [PATCH 07/11] i2c: imx-lpi2c: increase PM timeout to avoid operate clk frequently Clark Wang
2021-03-19  5:10   ` Aisheng Dong
2021-03-17  6:53 ` [PATCH 08/11] i2c: imx-lpi2c: add bus recovery feature Clark Wang
2021-03-19  5:11   ` Aisheng Dong
2021-03-17  6:53 ` [PATCH 09/11] i2c: imx-lpi2c: fix i2c timing issue Clark Wang
2021-03-19  5:15   ` Aisheng Dong
2021-03-19  7:21     ` Clark Wang
2021-03-17  6:53 ` [PATCH 10/11] i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle Clark Wang
2021-03-19  5:16   ` Aisheng Dong
2021-03-17  6:53 ` [PATCH 11/11] i2c: imx-lpi2c: add edma mode support Clark Wang
2021-03-19  5:28   ` Aisheng Dong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AM6PR04MB4966A89FA43404FCB8C9E4A080689@AM6PR04MB4966.eurprd04.prod.outlook.com \
    --to=aisheng.dong@nxp.com \
    --cc=christian.koenig@amd.com \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=sumit.semwal@linaro.org \
    --cc=xiaoning.wang@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).