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

From: Kevin Hilman
Date: Tue May 05 2009 - 11:57:19 EST


Vitaly Wool <vitalywool@xxxxxxxxx> writes:

> On Tue, May 5, 2009 at 10:54 AM, Andrew Morton
> <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>> On Mon,  4 May 2009 17:27:04 -0700 Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> wrote:
>>
>>> Interrupts that are flagged as wakeup sources via set_irq_wake()
>>> should not be disabled for suspend.
>>>
>>
>> Why not?
>
> Sounds like an interesting problem. If a wakeup depends on the
> interrupt line, then no they definitely should not be disabled, as no
> wakeup would happen otherwise.

Agreed.

> OTOH, this is not necessarily the case; some SoCs configure wakeup
> sources as GPIOs (i.MXs do AFAIR) so it's not clear if we should
> change generic source code in this case.

In the case of GPIO IRQs, then the call to __disable_irq() in
suspend_device_irqs() will trickle down to the irq_chip disable hook
in the GPIO code. If that code stops the GPIO from triggering
interrupts, which it should, then my guess is your GPIO will no longer
wake the system either.

Kevin
--
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/