[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20111002083151.7b3ca70c@notabene.brown>
Date: Sun, 2 Oct 2011 08:31:51 +1100
From: NeilBrown <neilb@...e.de>
To: John Stultz <john.stultz@...aro.org>
Cc: lkml <linux-kernel@...r.kernel.org>,
"Rafael J. Wysocki" <rjw@...k.pl>, arve@...roid.com,
markgross@...gnar.org, Alan Stern <stern@...land.harvard.edu>,
amit.kucheria@...aro.org, farrowg@...ibm.com,
"Dmitry Fink (Palm GBU)" <Dmitry.Fink@...m.com>,
linux-pm@...ts.linux-foundation.org, khilman@...com,
Magnus Damm <damm@...nsource.se>, mjg@...hat.com,
peterz@...radead.org
Subject: Re: [PATCH 3/6] [RFC] rtc: rtc-cmos: Add pm_stay_awake/pm_relax
calls around IRQ
On Mon, 26 Sep 2011 12:13:51 -0700 John Stultz <john.stultz@...aro.org> wrote:
> Flag the rtc-cmos IRQ event as a wakeup event using pm_stay_awake
> and pm_relax()
It seems that only the 0/6 patch in this sequence was given any attention.
However it appears to me that 3, 4, and 5 stand on their own and are clearly
bug-fixes - the bug being that the wake-up event generated by the CMOS rtc is
not being counted as a wakeup event by the power core.
I'm less clear on 5, but that is probably simply that I don't understand this
code very well yet.
So maybe resend 4,5,6 by themselves and get them accepted? Or maybe Rafael
could just pick them up and review/apply them as they are ???
Thanks,
NeilBrown
>
> CC: Rafael J. Wysocki <rjw@...k.pl>
> CC: arve@...roid.com
> CC: markgross@...gnar.org
> CC: Alan Stern <stern@...land.harvard.edu>
> CC: amit.kucheria@...aro.org
> CC: farrowg@...ibm.com
> CC: Dmitry Fink (Palm GBU) <Dmitry.Fink@...m.com>
> CC: linux-pm@...ts.linux-foundation.org
> CC: khilman@...com
> CC: Magnus Damm <damm@...nsource.se>
> CC: mjg@...hat.com
> CC: peterz@...radead.org
> Signed-off-by: John Stultz <john.stultz@...aro.org>
> ---
> drivers/rtc/rtc-cmos.c | 13 +++++++++++--
> 1 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
> index 05beb6c..1cc4688 100644
> --- a/drivers/rtc/rtc-cmos.c
> +++ b/drivers/rtc/rtc-cmos.c
> @@ -538,11 +538,15 @@ static struct bin_attribute nvram = {
>
> static struct cmos_rtc cmos_rtc;
>
> +static struct wakeup_source *rtc_cmos_wakelock;
> +
> static irqreturn_t cmos_interrupt(int irq, void *p)
> {
> u8 irqstat;
> u8 rtc_control;
>
> + __pm_stay_awake(rtc_cmos_wakelock);
> +
> spin_lock(&rtc_lock);
>
> /* When the HPET interrupt handler calls us, the interrupt
> @@ -573,9 +577,12 @@ static irqreturn_t cmos_interrupt(int irq, void *p)
>
> if (is_intr(irqstat)) {
> rtc_update_irq(p, 1, irqstat);
> + __pm_relax(rtc_cmos_wakelock);
> return IRQ_HANDLED;
> - } else
> - return IRQ_NONE;
> + }
> +
> + __pm_relax(rtc_cmos_wakelock);
> + return IRQ_NONE;
> }
>
> #ifdef CONFIG_PNP
> @@ -1153,6 +1160,8 @@ static int __init cmos_init(void)
> {
> int retval = 0;
>
> + rtc_cmos_wakelock = wakeup_source_register("rtc_cmos");
> +
> #ifdef CONFIG_PNP
> retval = pnp_register_driver(&cmos_pnp_driver);
> if (retval == 0)
Download attachment "signature.asc" of type "application/pgp-signature" (191 bytes)
Powered by blists - more mailing lists