]> git.baikalelectronics.ru Git - kernel.git/commit
ath9k_hw: improve reset reliability after errors
authorFelix Fietkau <nbd@openwrt.org>
Mon, 25 Feb 2013 19:51:07 +0000 (20:51 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 27 Feb 2013 19:12:52 +0000 (14:12 -0500)
commitd6c37d48e91c7b45e480c14e208e2fc360237e28
tree7d0ef5f4d8b7ec58a2c9f0cc9a8c82577deafffb
parent72de5cc09c09a9ecde718410b51a79390cf11c81
ath9k_hw: improve reset reliability after errors

On many different chips, important aspects of the MAC state are not
fully cleared by a warm reset. This can show up as tx/rx hangs, those
annoying "DMA failed to stop in 10 ms..." messages or other quirks.

On AR933x, the chip can occasionally get stuck in a way that only a
driver unload/reload or a reboot would bring it back to life.

With this patch, a full reset is issued when bringing the chip out of
FULL-SLEEP state (after idle), or if either Rx or Tx was not shut down
properly. This makes the DMA related error messages disappear completely
in my tests on AR933x, and the chip does not get stuck anymore.

Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/hw.c