ath9k: fix stopping tx dma on reset
authorFelix Fietkau <nbd@openwrt.org>
Fri, 11 Mar 2011 20:38:18 +0000 (21:38 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 14 Mar 2011 18:46:58 +0000 (14:46 -0400)
commit0d51cccc2436fa4d978efc3764552779e163d840
tree28470ba80a7b29e2ccedd2fa56e0a99f55663027
parent997941d7efe4d165a558ed5b6029a8b3c2c85cf7
ath9k: fix stopping tx dma on reset

In some situations, stopping Tx DMA frequently fails, leading to messages
like this:

ath: Failed to stop TX DMA in 100 msec after killing last frame
ath: Failed to stop TX DMA!

This patch uses a few MAC features to abort DMA globally instead of iterating
over all hardware queues and attempting to stop them individually.
Not only is that faster and works with a shorter timeout, it also makes the
process much more reliable.

With this change, I can no longer trigger these messages on AR9380,
and on AR9280 they become much more rare.

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