Message ID | 1414133417-11530-3-git-send-email-wenyou.yang@atmel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hello. On 10/24/2014 10:50 AM, Wenyou Yang wrote: > Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> > --- > drivers/i2c/busses/i2c-at91.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c > index a25fb5e..6a84a2a 100644 > --- a/drivers/i2c/busses/i2c-at91.c > +++ b/drivers/i2c/busses/i2c-at91.c > @@ -861,7 +861,33 @@ static int at91_twi_runtime_resume(struct device *dev) [...] > +static int at91_twi_resume_noirq(struct device *dev) > +{ > + int ret; > + > + if (!pm_runtime_status_suspended(dev)) { > + ret = at91_twi_runtime_resume(dev); Resume if *not* suspended? > + if (ret) > + return ret; > + } > + > + pm_runtime_mark_last_busy(dev); > + pm_request_autosuspend(dev); > + > + return 0; > +} > + [...] WBR, Sergei
Hi, > -----Original Message----- > From: Sergei Shtylyov [mailto:sergei.shtylyov@cogentembedded.com] > Sent: Friday, October 24, 2014 9:03 PM > To: Yang, Wenyou; wsa@the-dreams.de; Desroches, Ludovic > Cc: khilman@kernel.org; Ferre, Nicolas; linux-kernel@vger.kernel.org; linux- > i2c@vger.kernel.org; linux-arm-kernel@lists.infradead.org > Subject: Re: [PATCH v3 2/3] i2c/at91: add support for system PM > > Hello. > > On 10/24/2014 10:50 AM, Wenyou Yang wrote: > > > Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> > > --- > > drivers/i2c/busses/i2c-at91.c | 26 ++++++++++++++++++++++++++ > > 1 file changed, 26 insertions(+) > > > diff --git a/drivers/i2c/busses/i2c-at91.c > > b/drivers/i2c/busses/i2c-at91.c index a25fb5e..6a84a2a 100644 > > --- a/drivers/i2c/busses/i2c-at91.c > > +++ b/drivers/i2c/busses/i2c-at91.c > > @@ -861,7 +861,33 @@ static int at91_twi_runtime_resume(struct device > > *dev) > [...] > > +static int at91_twi_resume_noirq(struct device *dev) { > > + int ret; > > + > > + if (!pm_runtime_status_suspended(dev)) { > > + ret = at91_twi_runtime_resume(dev); > > Resume if *not* suspended? Yes, if it is not runtime_suspended, it must be the system suspended, then resume it. I think so. > > > + if (ret) > > + return ret; > > + } > > + > > + pm_runtime_mark_last_busy(dev); > > + pm_request_autosuspend(dev); > > + > > + return 0; > > +} > > + > [...] > > WBR, Sergei Best Regards, Wenyou Yang
On Fri, Oct 24, 2014 at 02:50:16PM +0800, Wenyou Yang wrote:
> Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Applied to for-next, thanks!
diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c index a25fb5e..6a84a2a 100644 --- a/drivers/i2c/busses/i2c-at91.c +++ b/drivers/i2c/busses/i2c-at91.c @@ -861,7 +861,33 @@ static int at91_twi_runtime_resume(struct device *dev) return clk_prepare_enable(twi_dev->clk); } +static int at91_twi_suspend_noirq(struct device *dev) +{ + if (!pm_runtime_status_suspended(dev)) + at91_twi_runtime_suspend(dev); + + return 0; +} + +static int at91_twi_resume_noirq(struct device *dev) +{ + int ret; + + if (!pm_runtime_status_suspended(dev)) { + ret = at91_twi_runtime_resume(dev); + if (ret) + return ret; + } + + pm_runtime_mark_last_busy(dev); + pm_request_autosuspend(dev); + + return 0; +} + static const struct dev_pm_ops at91_twi_pm = { + .suspend_noirq = at91_twi_suspend_noirq, + .resume_noirq = at91_twi_resume_noirq, .runtime_suspend = at91_twi_runtime_suspend, .runtime_resume = at91_twi_runtime_resume, };
Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com> --- drivers/i2c/busses/i2c-at91.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)