aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/libertas
diff options
context:
space:
mode:
authorDaniel Drake2011-07-27 17:19:00 +0100
committerJohn W. Linville2011-08-08 16:04:18 -0400
commitdfb72c4fda54b11efe0afbb4e4081af1dfa4c14f (patch)
tree176b3286832d989d954a21170e59111dffa2db8a /drivers/net/wireless/libertas
parent9c204b46c7af93e334114bea1f5eeaa6fea9ba07 (diff)
libertas_usb: program OLPC EC wakeup mask for wake-on-WLAN
OLPC power management code has recently gone upstream. This piece completes the puzzle for libertas_usb, which now programs the OLPC EC for wlan wakeups when they have been requested. Signed-off-by: Daniel Drake <dsd@laptop.org> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas')
-rw-r--r--drivers/net/wireless/libertas/if_usb.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
index e368b2922ff1..ca6e0a411e9c 100644
--- a/drivers/net/wireless/libertas/if_usb.c
+++ b/drivers/net/wireless/libertas/if_usb.c
@@ -1112,6 +1112,15 @@ static int if_usb_suspend(struct usb_interface *intf, pm_message_t message)
if (priv->psstate != PS_STATE_FULL_POWER)
return -1;
+#ifdef CONFIG_OLPC
+ if (machine_is_olpc()) {
+ if (priv->wol_criteria == EHS_REMOVE_WAKEUP)
+ olpc_ec_wakeup_clear(EC_SCI_SRC_WLAN);
+ else
+ olpc_ec_wakeup_set(EC_SCI_SRC_WLAN);
+ }
+#endif
+
ret = lbs_suspend(priv);
if (ret)
goto out;