Re: [PATCH] PM: suspend_device_irqs(): don't disable wakeup IRQs

From: Arve Hjønnevåg
Date: Tue May 05 2009 - 19:57:57 EST


2009/5/5 Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx>:
> Arve Hjønnevåg <arve@xxxxxxxxxxx> writes:
>
>> On Tue, May 5, 2009 at 8:52 AM, Kevin Hilman
> [...]
>
>> By leaving the interrupt enabled you prevent check_wakeup_irqs from
>> aborting suspend.
>
> Yes, but it doesn't prevent platform-specific code from aborting
> suspend.  On OMAP, the platform-specific suspend enter hook does a
> last check for pending enabled interrupts very late in the sequence.
> It seems to me that the platform specific code is the best place to do
> this.

It will not be pending anymore if the interrupt triggered before all
interrupts were masked at the cpu.

> On a related note, what happens if your device triggers an interrupt
> between check_wakeup_irqs() and the actual suspend?  Since it is a
> wakeup IRQ, wouldn't you want it to abort the suspend too?
>

check_wakeup_irqs is called after masking interrupts, so your existing
platform specific check should catch it.

--
Arve Hjønnevåg
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/