diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-08-07 16:28:09 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-08-14 09:13:43 -0400 |
commit | ab5b5342fd0ba5b9a2f58a94c5d41dd074b7c48e (patch) | |
tree | 1a1797f02a5994981bfa91048ba97878ed410291 /include/net | |
parent | c555b9b3713e05586fabe85f4e46f28859e72930 (diff) | |
download | kernel_samsung_tuna-ab5b5342fd0ba5b9a2f58a94c5d41dd074b7c48e.zip kernel_samsung_tuna-ab5b5342fd0ba5b9a2f58a94c5d41dd074b7c48e.tar.gz kernel_samsung_tuna-ab5b5342fd0ba5b9a2f58a94c5d41dd074b7c48e.tar.bz2 |
mac80211: document TX powersave filter requirements
This documents what's required to implement that TX powersave
filter properly wrt. handling hardware queues.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/mac80211.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 467eed7..cd4eb20 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -239,7 +239,14 @@ struct ieee80211_bss_conf { * @IEEE80211_TX_CTL_AMPDU: this frame should be sent as part of an A-MPDU * @IEEE80211_TX_CTL_INJECTED: Frame was injected, internal to mac80211. * @IEEE80211_TX_STAT_TX_FILTERED: The frame was not transmitted - * because the destination STA was in powersave mode. + * because the destination STA was in powersave mode. Note that to + * avoid race conditions, the filter must be set by the hardware or + * firmware upon receiving a frame that indicates that the station + * went to sleep (must be done on device to filter frames already on + * the queue) and may only be unset after mac80211 gives the OK for + * that by setting the IEEE80211_TX_CTL_CLEAR_PS_FILT (see above), + * since only then is it guaranteed that no more frames are in the + * hardware queue. * @IEEE80211_TX_STAT_ACK: Frame was acknowledged * @IEEE80211_TX_STAT_AMPDU: The frame was aggregated, so status * is for the whole aggregation. |