Re: [PATCH] OMAP3: GPIO: Added dynamic control logic for pad wakeups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tony Lindgren <tony@xxxxxxxxxxx> writes:

> * Tero.Kristo@xxxxxxxxx <Tero.Kristo@xxxxxxxxx> [100309 00:20]:
>> >
>> >Changes in wakeup state should not be directly correlated to interrupt
>> >enabled GPIOs.  Rather, this should only be done for GPIOs that are
>> >explicitly wakeup enabled (via enable_irq_wake(), which in turn
>> >calls gpio_wake_enable()).
>> 
>> This logic somehow escapes me... I would guess drivers should not care during dynamic idle whether the device is in off/ret/ina and interrupts should just work. This is done to make this happen. Also, I understood that gpio wakeup logic is needed for the suspend wakeup, which is quite different from dynamic idle wakeup.
>> 
>> However, if this is intended behavior for the kernel, then I will accept it. You are saying the code below should be moved into the gpio_wake_enable() / disable() calls?
>
> I agree. I'd assume during the idle modes we want everything to
> automatically wake the system up. Otherwise we again have non-standard
> Linux behaviour that's mysterious to track down. The enable_irq_wake
> should only be needed for suspend states.

OK, then essentially all GPIO IRQs need to be configured in the
equivalent of an enable_irq_wake'd state by default.  That means
IO pad wakeups *and* module-level wakeups.

Upon suspend, the ability to wakeup should be removed for all except
for those that have been explicitly enabled via enable_irq_wake().

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux