Browse Source

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>
Daniel Drake 14 years ago
parent
commit
dfb72c4fda
1 changed files with 9 additions and 0 deletions
  1. 9 0
      drivers/net/wireless/libertas/if_usb.c

+ 9 - 0
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)
 	if (priv->psstate != PS_STATE_FULL_POWER)
 		return -1;
 		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);
 	ret = lbs_suspend(priv);
 	if (ret)
 	if (ret)
 		goto out;
 		goto out;