Subject: [PATCH v3 13/21] ARM: omap: convert wakeupgen to stacked domains

From: [email-masked] (Tony Lindgren)
Date: Thu, 15 Jan 2015 10:12:19 -0800

* Tony Lindgren <[email-masked]> [150115 10:04]:
> * Marc Zyngier <[email-masked]> [150115 09:31]:
> > On 15/01/15 17:04, Tony Lindgren wrote:
> > > * Marc Zyngier <[email-masked]> [150115 06:53]:
> > >> On Thu, Jan 15 2015 at  2:40:16 pm GMT, Nishanth Menon <[email-masked]> wrote:
> > >>> On 14:28-20150115, Marc Zyngier wrote:
> > >>>> Assuming the workaround I posted earlier works, the OMAP/DRA7 part of
> > >>>> this series is going to require some rework too (I need to know where
> > >>>> these legacy interrupts are attached: crossbar, WUGEN, or GIC?).
> > >>>>
> > >>> crossbar will never work with legacy static interrupts anyways - since
> > >>> there was never a static interrupt possible - I believe we had removed
> > >>> all the legacy hardcoded interrupt definitions for DRA7. ideally, they
> > >>> should all be dt only now.
> > >>
> > >> Yes, I guessed as much after looking at the DRA7XX hwmod.
> > >>
> > >> So only OMAP4/5 is b0rken at the moment. I can probably work around it
> > >> as I did in this example patch, just by changing the compatible strings
> > >> for the xlate callback. Very ugly.
> > > 
> > > For the -rc, it seems the wakeupen still needs a fix as based on grepping
> > > for OMAP44XX_IRQ_GIC_START. Got any great ideas for that?
> > 
> > I think this one is fine. It computes the SPI number based on the hwirq
> > coming from the GIC. That direction is completely unaffected by the
> > linear domain stuff. It is only when you try to use a hardware IRQ as a
> > Linux IRQ that you run into trouble.
> 
> Yes OK that makes sense.

And suspend and resume seem to work with your fix.

FYI, to test suspend and resume with wakeups from the serial console,
the uart wakeup events need to be enabled under sys:

#!/bin/bash

uarts=$(find /sys/class/tty/tty[SO]*/power/ -type d 2>/dev/null)
for uart in $uarts; do
        echo enabled > $uart/wakeup 2>&1
done

And after that suspending with echo mem > /sys/power/state should wake
to a serial interrupt.

Regards,

Tony