ath9k: improve reliability of beacon transmission and stuck beacon handling
authorFelix Fietkau <nbd@openwrt.org>
Fri, 11 Mar 2011 20:38:20 +0000 (21:38 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 14 Mar 2011 18:46:58 +0000 (14:46 -0400)
commitefff395e97fffd55c60c77c09a18deba8d84e2c0
tree0e2383a56e0137c8013d44bfbe945c76f3fb95b0
parent86271e460a66003dc1f4cbfd845adafb790b7587
ath9k: improve reliability of beacon transmission and stuck beacon handling

ath9k calls ath9k_hw_stoptxdma every time it sends a beacon, however there
is not much point in doing that if the previous beacon and mcast traffic
went out properly. On AR9380, calling that function too often can result
in an increase of stuck beacons due to differences in the handling of the
queue enable/disable functionality.

With this patch, the queue will only be explicitly stopped if the previous
data frames were not sent successfully. With the beacon code being the
only remaining user of ath9k_hw_stoptxdma, this function can be simplified
in order to remove the now pointless attempts at waiting for transmission
completion, which would never happen at this point due to the different
method of tx scheduling of the beacon queue.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/beacon.c
drivers/net/wireless/ath/ath9k/mac.c
drivers/net/wireless/ath/ath9k/mac.h