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

From: Kevin Hilman
Date: Thu May 07 2009 - 10:14:26 EST


Kim Kyuwon <chammoru@xxxxxxxxx> writes:

> 2009/5/7 Arve Hjønnevåg <arve@xxxxxxxxxxx>:
>> 2009/5/6 Kim Kyuwon <chammoru@xxxxxxxxx>:
>>> 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.
>>
>> This does not sound like a hardware problem.
>
> We may need advices of TI engineers.
> However, as far as I know, It is impossible to disable 'interrupt
> wake-up' with interrupt enabled. Because an interrupt itself generate
> a system wake-up event in OMAP3430 (Hardware level).

Interrupt wakeups can be disabled at the PRCM level. Or more simply
we can keep a mask of wakeup-enable interrupts and use that.

I will experiment with getting disable_irq_wake() working.

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/