From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3 3/3] mfd: palmas: Add support for optional wakeup
Date: Fri, 19 Sep 2014 12:57:38 -0700 [thread overview]
Message-ID: <20140919195738.GR14505@atomide.com> (raw)
In-Reply-To: <alpine.DEB.2.10.1409191233590.4213@nanos>
* Thomas Gleixner <tglx@linutronix.de> [140919 12:47]:
> On Fri, 19 Sep 2014, Tony Lindgren wrote:
> > * Thomas Gleixner <tglx@linutronix.de> [140919 10:37]:
> > >From hardware point of view the wake-up events behave like interrupts
> > and could also be used as the only interrupt in some messed up cases.
> > That avoids all kinds of custom APIs from driver point.
> >
> > The re-entrancy problem we've most likely had ever since we enabled
> > the PRCM interrupts, and maybe that's why I did not even consider
> > that part. I think before that we were calling the driver interrupt
> > after waking up from the PM code..
> >
> > Anyways, how about the following to deal with the re-entrancy problem:
> >
> > 1. The wake-up interrupt handler must have a separate interrupt
> > handler that just calls tasklet_schedule()
> >
> > 2. The device interrupt handler also just calls tasklet_schedule()
> >
> > 3. The tasklet then does pm_runtime_get, handles the registers, and
> > so on.
> >
> > Or would we still have a re-entrancy problem somewhere else with
> > that?
>
> Why on earth are you wanting tasklets in there? That's just silly,
> really.
Lack of a framework on driver side to cope with this in a generic
way? :p
> The wakeup handler is supposed to bring the thing out of deep sleep
> and nothing else. All you want it to do is to mask itself and save the
> information that the real device irq is pending.
Yes that is enough.
> A stub handler for the wakeup irq is enough. We can have that in the
> irq/pm core and all it would do is simply:
>
> irqreturn_t handle_jinxed_wakeup_irq(unsigned irq, void *dev_id)
> {
> unsigned device_irq = get_dev_irq(dev_id);
>
> force_mask(irq);
> set_irq_pending(device_irq);
> return HANDLED;
> }
>
> So on resume_device_irqs() the real device interrupt gets reenabled
> and unmasked (if it was masked) and the interrupt gets resent either
> in hardware (level or retrigger) or by the software resend mechanism.
>
> That completely avoids tasklets, reentrant irq handlers and all other
> crap which might be required.
Okie dokie, that sounds good to me. Having this generic for the
drivers would be excellent, that's the missing piece.
Thanks,
Tony
next prev parent reply other threads:[~2014-09-19 19:57 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-18 19:04 [PATCH V3 0/3] mfd: palmas: add optional wakeup irq Nishanth Menon
2014-09-18 19:04 ` [PATCH V3 1/3] Documentation: dt-bindings: mfd: palmas: Fix example style of i2c peripheral Nishanth Menon
2014-09-18 19:04 ` [PATCH V3 2/3] Documentation: dt-bindings: mfd: palmas: document optional wakeup IRQ Nishanth Menon
2014-09-18 19:04 ` [PATCH V3 3/3] mfd: palmas: Add support for optional wakeup Nishanth Menon
2014-09-19 0:57 ` Thomas Gleixner
2014-09-19 3:03 ` Nishanth Menon
2014-09-19 15:37 ` Thomas Gleixner
2014-09-19 16:19 ` Nishanth Menon
2014-09-19 17:36 ` Thomas Gleixner
2014-09-19 19:16 ` Tony Lindgren
2014-09-19 19:46 ` Thomas Gleixner
2014-09-19 19:57 ` Tony Lindgren [this message]
2014-09-20 2:07 ` Thomas Gleixner
2014-09-20 14:07 ` Tony Lindgren
2014-10-02 3:43 ` Tony Lindgren
2014-11-06 20:46 ` Tony Lindgren
2014-11-13 10:03 ` Thomas Gleixner
2014-11-13 17:40 ` Tony Lindgren
2014-11-13 22:25 ` Thomas Gleixner
2014-11-13 23:45 ` Tony Lindgren
2014-11-14 16:19 ` Felipe Balbi
2014-11-14 17:08 ` Tony Lindgren
2014-11-14 17:21 ` Felipe Balbi
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=20140919195738.GR14505@atomide.com \
--to=tony@atomide.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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).