aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-05-04 09:37:29 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-05-05 14:59:20 -0400
commiteecc48000afe2ca6da22122d553b7cad294e42fc (patch)
treeade8a18351be5ca63b14d24f3f4db47909486fba /include
parentff1b6e69ad4f31fb3c9c6da2665655f2e798dd70 (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.h16
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,