diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2010-01-26 08:19:52 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-01-26 11:53:21 -0500 |
commit | 56007a028c51cbf800a6c969d6f6431d23443b99 (patch) | |
tree | 8bc0280467824ed3b5f95810444b1f8e1ebc2750 /include/net | |
parent | c21dbf9214bce129f92e1af05552553ff0e318ed (diff) |
mac80211: wait for beacon before enabling powersave
Because DTIM information is required for powersave
but is only conveyed in beacons, wait for a beacon
before enabling powersave, and change the way the
information is conveyed to the driver accordingly.
mwl8k doesn't currently seem to implement PS but
requires the DTIM period in a different way; after
talking to Lennert we agreed to just have mwl8k do
the parsing itself in the finalize_join work.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/mac80211.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index f64402f6312b..1e9c93024cf2 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -186,7 +186,8 @@ enum ieee80211_bss_change { | |||
186 | * @use_short_slot: use short slot time (only relevant for ERP); | 186 | * @use_short_slot: use short slot time (only relevant for ERP); |
187 | * if the hardware cannot handle this it must set the | 187 | * if the hardware cannot handle this it must set the |
188 | * IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hardware flag | 188 | * IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE hardware flag |
189 | * @dtim_period: num of beacons before the next DTIM, for PSM | 189 | * @dtim_period: num of beacons before the next DTIM, for beaconing, |
190 | * not valid in station mode (cf. hw conf ps_dtim_period) | ||
190 | * @timestamp: beacon timestamp | 191 | * @timestamp: beacon timestamp |
191 | * @beacon_int: beacon interval | 192 | * @beacon_int: beacon interval |
192 | * @assoc_capability: capabilities taken from assoc resp | 193 | * @assoc_capability: capabilities taken from assoc resp |
@@ -648,6 +649,9 @@ enum ieee80211_smps_mode { | |||
648 | * value will be only achievable between DTIM frames, the hardware | 649 | * value will be only achievable between DTIM frames, the hardware |
649 | * needs to check for the multicast traffic bit in DTIM beacons. | 650 | * needs to check for the multicast traffic bit in DTIM beacons. |
650 | * This variable is valid only when the CONF_PS flag is set. | 651 | * This variable is valid only when the CONF_PS flag is set. |
652 | * @ps_dtim_period: The DTIM period of the AP we're connected to, for use | ||
653 | * in power saving. Power saving will not be enabled until a beacon | ||
654 | * has been received and the DTIM period is known. | ||
651 | * @dynamic_ps_timeout: The dynamic powersave timeout (in ms), see the | 655 | * @dynamic_ps_timeout: The dynamic powersave timeout (in ms), see the |
652 | * powersave documentation below. This variable is valid only when | 656 | * powersave documentation below. This variable is valid only when |
653 | * the CONF_PS flag is set. | 657 | * the CONF_PS flag is set. |
@@ -674,6 +678,7 @@ struct ieee80211_conf { | |||
674 | int max_sleep_period; | 678 | int max_sleep_period; |
675 | 679 | ||
676 | u16 listen_interval; | 680 | u16 listen_interval; |
681 | u8 ps_dtim_period; | ||
677 | 682 | ||
678 | u8 long_frame_max_tx_count, short_frame_max_tx_count; | 683 | u8 long_frame_max_tx_count, short_frame_max_tx_count; |
679 | 684 | ||