7d567ed66f
The hardware can generate its own frames (eg RTS/CTS exchanges, other kinds of 802.11 management stuff, especially when it comes to 802.11n) and these also have PWRMGT flags. So if the VAP is asleep but the NIC is in force-awake for some reason, ensure that the self-generated frames have PWRMGT set to 1. Now, this (like basically everything to do with powersave) is still racy - the only way to guarantee that it's all actually consistent is to pause transmit and let it finish before transitioning the VAP to sleep, but this at least gets the basic method of tracking and updating the state debugged. Tested: * AR5416, STA mode * AR9380, STA mode |
||
---|---|---|
.. | ||
ath_dfs/null | ||
ath_hal | ||
ath_rate | ||
ah_osdep.c | ||
ah_osdep.h | ||
if_ath_ahb.c | ||
if_ath_alq.c | ||
if_ath_alq.h | ||
if_ath_beacon.c | ||
if_ath_beacon.h | ||
if_ath_btcoex.c | ||
if_ath_btcoex.h | ||
if_ath_debug.c | ||
if_ath_debug.h | ||
if_ath_keycache.c | ||
if_ath_keycache.h | ||
if_ath_led.c | ||
if_ath_led.h | ||
if_ath_lna_div.c | ||
if_ath_lna_div.h | ||
if_ath_misc.h | ||
if_ath_pci.c | ||
if_ath_rx_edma.c | ||
if_ath_rx_edma.h | ||
if_ath_rx.c | ||
if_ath_rx.h | ||
if_ath_spectral.c | ||
if_ath_spectral.h | ||
if_ath_sysctl.c | ||
if_ath_sysctl.h | ||
if_ath_tdma.c | ||
if_ath_tdma.h | ||
if_ath_tsf.h | ||
if_ath_tx_edma.c | ||
if_ath_tx_edma.h | ||
if_ath_tx_ht.c | ||
if_ath_tx_ht.h | ||
if_ath_tx.c | ||
if_ath_tx.h | ||
if_ath.c | ||
if_athdfs.h | ||
if_athioctl.h | ||
if_athrate.h | ||
if_athvar.h |