diff options
author | Johannes Berg <johannes.berg@intel.com> | 2011-05-04 09:37:29 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-05-05 14:59:20 -0400 |
commit | eecc48000afe2ca6da22122d553b7cad294e42fc (patch) | |
tree | ade8a18351be5ca63b14d24f3f4db47909486fba /include | |
parent | ff1b6e69ad4f31fb3c9c6da2665655f2e798dd70 (diff) |
mac80211: add basic support for WoWLAN
This adds basic support for the new WoWLAN
configuration in mac80211. The behaviour is
completely offloaded to the driver though,
with two new callbacks (suspend/resume).
Options for the driver include a complete
reconfiguration after wakeup, and exposing
all the triggers it wants to support.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/mac80211.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 63f75a06043b..9e5542794b95 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -1606,6 +1606,18 @@ enum ieee80211_ampdu_mlme_action { | |||
1606 | * you should ensure to cancel it on this callback. | 1606 | * you should ensure to cancel it on this callback. |
1607 | * Must be implemented and can sleep. | 1607 | * Must be implemented and can sleep. |
1608 | * | 1608 | * |
1609 | * @suspend: Suspend the device; mac80211 itself will quiesce before and | ||
1610 | * stop transmitting and doing any other configuration, and then | ||
1611 | * ask the device to suspend. This is only invoked when WoWLAN is | ||
1612 | * configured, otherwise the device is deconfigured completely and | ||
1613 | * reconfigured at resume time. | ||
1614 | * | ||
1615 | * @resume: If WoWLAN was configured, this indicates that mac80211 is | ||
1616 | * now resuming its operation, after this the device must be fully | ||
1617 | * functional again. If this returns an error, the only way out is | ||
1618 | * to also unregister the device. If it returns 1, then mac80211 | ||
1619 | * will also go through the regular complete restart on resume. | ||
1620 | * | ||
1609 | * @add_interface: Called when a netdevice attached to the hardware is | 1621 | * @add_interface: Called when a netdevice attached to the hardware is |
1610 | * enabled. Because it is not called for monitor mode devices, @start | 1622 | * enabled. Because it is not called for monitor mode devices, @start |
1611 | * and @stop must be implemented. | 1623 | * and @stop must be implemented. |
@@ -1831,6 +1843,10 @@ struct ieee80211_ops { | |||
1831 | void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); | 1843 | void (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); |
1832 | int (*start)(struct ieee80211_hw *hw); | 1844 | int (*start)(struct ieee80211_hw *hw); |
1833 | void (*stop)(struct ieee80211_hw *hw); | 1845 | void (*stop)(struct ieee80211_hw *hw); |
1846 | #ifdef CONFIG_PM | ||
1847 | int (*suspend)(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan); | ||
1848 | int (*resume)(struct ieee80211_hw *hw); | ||
1849 | #endif | ||
1834 | int (*add_interface)(struct ieee80211_hw *hw, | 1850 | int (*add_interface)(struct ieee80211_hw *hw, |
1835 | struct ieee80211_vif *vif); | 1851 | struct ieee80211_vif *vif); |
1836 | int (*change_interface)(struct ieee80211_hw *hw, | 1852 | int (*change_interface)(struct ieee80211_hw *hw, |