diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-01-24 19:23:14 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-28 15:39:40 -0500 |
commit | 92460412367c00e97f99babdb898d0930ce604fc (patch) | |
tree | 590b628b5c55ab6aae1f812854e903b51215d27a /drivers/net/wireless/ath/ath9k/main.c | |
parent | cbdbc5eb542da242bfa3cfe18e7828d21c670969 (diff) | |
download | lwn-92460412367c00e97f99babdb898d0930ce604fc.tar.gz lwn-92460412367c00e97f99babdb898d0930ce604fc.zip |
ath9k: clean up the code that wakes the mac80211 queues
Instead of spreading ath_wake_mac80211_queue() calls over multiple places
in the tx path that process the tx queue for completion, call it only
where the pending frames counter gets decremented, eliminating some
redundant checks.
To prevent queue draining from waking the queues prematurely (e.g. during
a hardware reset), reset the queue stop state when draining all queues,
as the caller in main.c will run ieee80211_wake_queues(hw) anyway.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index bed6eb97fac9..2b27c81b06c8 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c @@ -295,6 +295,8 @@ int ath_set_channel(struct ath_softc *sc, struct ieee80211_hw *hw, } ps_restore: + ieee80211_wake_queues(hw); + spin_unlock_bh(&sc->sc_pcu_lock); ath9k_ps_restore(sc); |