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 /net/mac80211/ieee80211_i.h | |
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 'net/mac80211/ieee80211_i.h')
-rw-r--r-- | net/mac80211/ieee80211_i.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 9e3b4f0f31bd..e89bc27f8dc3 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h | |||
@@ -764,6 +764,9 @@ struct ieee80211_local { | |||
764 | /* device is started */ | 764 | /* device is started */ |
765 | bool started; | 765 | bool started; |
766 | 766 | ||
767 | /* wowlan is enabled -- don't reconfig on resume */ | ||
768 | bool wowlan; | ||
769 | |||
767 | int tx_headroom; /* required headroom for hardware/radiotap */ | 770 | int tx_headroom; /* required headroom for hardware/radiotap */ |
768 | 771 | ||
769 | /* count for keys needing tailroom space allocation */ | 772 | /* count for keys needing tailroom space allocation */ |
@@ -1250,7 +1253,8 @@ int ieee80211_reconfig(struct ieee80211_local *local); | |||
1250 | void ieee80211_stop_device(struct ieee80211_local *local); | 1253 | void ieee80211_stop_device(struct ieee80211_local *local); |
1251 | 1254 | ||
1252 | #ifdef CONFIG_PM | 1255 | #ifdef CONFIG_PM |
1253 | int __ieee80211_suspend(struct ieee80211_hw *hw); | 1256 | int __ieee80211_suspend(struct ieee80211_hw *hw, |
1257 | struct cfg80211_wowlan *wowlan); | ||
1254 | 1258 | ||
1255 | static inline int __ieee80211_resume(struct ieee80211_hw *hw) | 1259 | static inline int __ieee80211_resume(struct ieee80211_hw *hw) |
1256 | { | 1260 | { |
@@ -1263,7 +1267,8 @@ static inline int __ieee80211_resume(struct ieee80211_hw *hw) | |||
1263 | return ieee80211_reconfig(hw_to_local(hw)); | 1267 | return ieee80211_reconfig(hw_to_local(hw)); |
1264 | } | 1268 | } |
1265 | #else | 1269 | #else |
1266 | static inline int __ieee80211_suspend(struct ieee80211_hw *hw) | 1270 | static inline int __ieee80211_suspend(struct ieee80211_hw *hw, |
1271 | struct cfg80211_wowlan *wowlan) | ||
1267 | { | 1272 | { |
1268 | return 0; | 1273 | return 0; |
1269 | } | 1274 | } |