diff mbox

libertas_usb: program OLPC EC wakeup mask for wake-on-WLAN

Message ID 20110727161900.DE2109D401C@zog.reactivated.net (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Daniel Drake July 27, 2011, 4:19 p.m. UTC
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>
---
 drivers/net/wireless/libertas/if_usb.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

Depends on some patches that were into Linus's tree yesterday.

Comments

Dan Williams July 27, 2011, 7:16 p.m. UTC | #1
On Wed, 2011-07-27 at 17:19 +0100, Daniel Drake wrote:
> 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>

> ---
>  drivers/net/wireless/libertas/if_usb.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> Depends on some patches that were into Linus's tree yesterday.
> 
> diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
> index b5acc39..8f73e80 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;


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

Patch

diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
index b5acc39..8f73e80 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;