diff options
author | Eliad Peller <eliad@wizery.com> | 2011-05-13 10:57:11 +0200 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-05-13 13:55:49 +0200 |
commit | f44e58681aec420b132a54823d8911293a644d4e (patch) | |
tree | 4c7c26b6fa3e7401036b4c897761b4ca0816f1e9 /drivers/net/wireless/wl12xx/wl12xx.h | |
parent | wl12xx_sdio: set MMC_PM_KEEP_POWER flag on suspend (diff) | |
download | linux-f44e58681aec420b132a54823d8911293a644d4e.tar.xz linux-f44e58681aec420b132a54823d8911293a644d4e.zip |
wl12xx: prevent scheduling while suspending (WoW enabled)
When WoW is enabled, the interface will stay up and the chip will
be powered on, so we have to flush/cancel any remaining work, and
prevent the irq handler from scheduling a new work until the system
is resumed.
Add 2 new flags:
* WL1271_FLAG_SUSPENDED - the system is (about to be) suspended.
* WL1271_FLAG_PENDING_WORK - there is a pending irq work which
should be scheduled when the system is being resumed.
In order to wake-up the system while getting an irq, we initialize
the device as wakeup device, and calling pm_wakeup_event() upon
getting the interrupt (while the system is about to be suspended)
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to '')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl12xx.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/wl12xx.h b/drivers/net/wireless/wl12xx/wl12xx.h index 9629e90d9b55..2218b9c63844 100644 --- a/drivers/net/wireless/wl12xx/wl12xx.h +++ b/drivers/net/wireless/wl12xx/wl12xx.h @@ -357,6 +357,8 @@ enum wl12xx_flags { WL1271_FLAG_AP_STARTED, WL1271_FLAG_IF_INITIALIZED, WL1271_FLAG_DUMMY_PACKET_PENDING, + WL1271_FLAG_SUSPENDED, + WL1271_FLAG_PENDING_WORK, }; struct wl1271_link { |