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

From: Kim Kyuwon
Date: Wed May 06 2009 - 21:28:32 EST


2009/5/7 Arve HjÃnnevÃg <arve@xxxxxxxxxxx>:
> On Wed, May 6, 2009 at 5:16 PM, Kevin Hilman
> <khilman@xxxxxxxxxxxxxxxxxxx> wrote:
>> "Rafael J. Wysocki" <rjw@xxxxxxx> writes:
>>
>>> On Wednesday 06 May 2009, Kevin Hilman wrote:
>>>> Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> writes:
>
>> There is at least one problem with that which is why Kyuwon Kim added
>> the ->disable hook to OMAP's irq_chip. ÂThe problem is with drivers
>> that call disable_irq() in their suspend hook, usually done to prevent
>> the device from waking the system since on OMAP, any IRQ can be
>> configured to wake the system.
>>
>
> This does not sound correct. disable_irq_wake should be used for this.
> A driver may need to mask its interrupt before suspending but this
> should not also disable it as a wakeup source.

I wish I could use disable_irq_wake(), but it doesn't work in OMAP.

>> If a driver's suspend hook calls disable_irq() and the system is
>> suspended before the lazy disable happens in the next handler, then
>> the system will be suspended with that device's IRQ still enabled.
>> Without an irq_chip->disable hook, that will result in that device IRQ
>> waking up the system if it fires.
>
> The platform suspend code needs to write the wakeup mask into
> interrupt controller the before entering suspend.
>

ditto

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



--
Kyuwon (êì)
--
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/