diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/hw.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/mac.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/mac.h | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c index e07dd1c11db..35f5cf40a99 100644 --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c | |||
@@ -1137,6 +1137,13 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan, | |||
1137 | ah->txchainmask = common->tx_chainmask; | 1137 | ah->txchainmask = common->tx_chainmask; |
1138 | ah->rxchainmask = common->rx_chainmask; | 1138 | ah->rxchainmask = common->rx_chainmask; |
1139 | 1139 | ||
1140 | if (!ah->chip_fullsleep) { | ||
1141 | ath9k_hw_abortpcurecv(ah); | ||
1142 | if (!ath9k_hw_stopdmarecv(ah)) | ||
1143 | ath_print(common, ATH_DBG_XMIT, | ||
1144 | "Failed to stop receive dma\n"); | ||
1145 | } | ||
1146 | |||
1140 | if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) | 1147 | if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) |
1141 | return -EIO; | 1148 | return -EIO; |
1142 | 1149 | ||
diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c index c003baf2e93..b54e857c031 100644 --- a/drivers/net/wireless/ath/ath9k/mac.c +++ b/drivers/net/wireless/ath/ath9k/mac.c | |||
@@ -747,6 +747,14 @@ void ath9k_hw_stoppcurecv(struct ath_hw *ah) | |||
747 | } | 747 | } |
748 | EXPORT_SYMBOL(ath9k_hw_stoppcurecv); | 748 | EXPORT_SYMBOL(ath9k_hw_stoppcurecv); |
749 | 749 | ||
750 | void ath9k_hw_abortpcurecv(struct ath_hw *ah) | ||
751 | { | ||
752 | REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_ABORT | AR_DIAG_RX_DIS); | ||
753 | |||
754 | ath9k_hw_disable_mib_counters(ah); | ||
755 | } | ||
756 | EXPORT_SYMBOL(ath9k_hw_abortpcurecv); | ||
757 | |||
750 | bool ath9k_hw_stopdmarecv(struct ath_hw *ah) | 758 | bool ath9k_hw_stopdmarecv(struct ath_hw *ah) |
751 | { | 759 | { |
752 | #define AH_RX_STOP_DMA_TIMEOUT 10000 /* usec */ | 760 | #define AH_RX_STOP_DMA_TIMEOUT 10000 /* usec */ |
diff --git a/drivers/net/wireless/ath/ath9k/mac.h b/drivers/net/wireless/ath/ath9k/mac.h index 346d84a7b93..68eb8d0b92e 100644 --- a/drivers/net/wireless/ath/ath9k/mac.h +++ b/drivers/net/wireless/ath/ath9k/mac.h | |||
@@ -711,6 +711,7 @@ bool ath9k_hw_setrxabort(struct ath_hw *ah, bool set); | |||
711 | void ath9k_hw_putrxbuf(struct ath_hw *ah, u32 rxdp); | 711 | void ath9k_hw_putrxbuf(struct ath_hw *ah, u32 rxdp); |
712 | void ath9k_hw_startpcureceive(struct ath_hw *ah); | 712 | void ath9k_hw_startpcureceive(struct ath_hw *ah); |
713 | void ath9k_hw_stoppcurecv(struct ath_hw *ah); | 713 | void ath9k_hw_stoppcurecv(struct ath_hw *ah); |
714 | void ath9k_hw_abortpcurecv(struct ath_hw *ah); | ||
714 | bool ath9k_hw_stopdmarecv(struct ath_hw *ah); | 715 | bool ath9k_hw_stopdmarecv(struct ath_hw *ah); |
715 | int ath9k_hw_beaconq_setup(struct ath_hw *ah); | 716 | int ath9k_hw_beaconq_setup(struct ath_hw *ah); |
716 | 717 | ||