ath9k_hw: Fix RX handling for USB devices
authorSujith Manoharan <Sujith.Manoharan@atheros.com>
Tue, 4 Jan 2011 08:13:39 +0000 (13:43 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 10 Jan 2011 20:40:51 +0000 (15:40 -0500)
Commit "ath9k_hw: Abort rx if hw is not coming out of full sleep in reset"
uncondionally added aborting RX DMA in a HW reset, though it is a bit
unclear as to why this is needed.

Anyway, RX DMA is handled in the target for USB devices, and this would
interfere with normal operations (scanning etc.), so fix this.

Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/hw.c

index 4a44f711045e3b74e5f5dad2aaa5a36a9fcc1890..1afb8bb85756ee55e5a2a82d5f1f825279c803ea 100644 (file)
@@ -1214,7 +1214,7 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
        ah->txchainmask = common->tx_chainmask;
        ah->rxchainmask = common->rx_chainmask;
 
-       if (!ah->chip_fullsleep) {
+       if ((common->bus_ops->ath_bus_type != ATH_USB) && !ah->chip_fullsleep) {
                ath9k_hw_abortpcurecv(ah);
                if (!ath9k_hw_stopdmarecv(ah)) {
                        ath_dbg(common, ATH_DBG_XMIT,