--- a/drivers/net/wireless/ath/ath9k/mac.c
+++ b/drivers/net/wireless/ath/ath9k/mac.c
-@@ -170,84 +170,30 @@ void ath9k_hw_abort_tx_dma(struct ath_hw
+@@ -171,84 +171,31 @@ void ath9k_hw_abort_tx_dma(struct ath_hw
}
EXPORT_SYMBOL(ath9k_hw_abort_tx_dma);
REG_WRITE(ah, AR_Q_TXD, 1 << q);
for (wait = wait_time; wait != 0; wait--) {
- if (ath9k_hw_numtxpending(ah, q) == 0)
- break;
+- if (ath9k_hw_numtxpending(ah, q) == 0)
+- break;
- udelay(ATH9K_TIME_QUANTUM);
- }
-
+-
- if (ath9k_hw_numtxpending(ah, q)) {
- ath_dbg(common, ATH_DBG_QUEUE,
- "%s: Num of pending TX Frames %d on Q %d\n",
- "Failed to stop TX DMA in 100 msec after killing last frame\n");
- break;
- }
-- udelay(ATH9K_TIME_QUANTUM);
++ if (wait != wait_time)
+ udelay(ATH9K_TIME_QUANTUM);
- }
--
+
- REG_CLR_BIT(ah, AR_DIAG_SW, AR_DIAG_FORCE_CH_IDLE_HIGH);
-+ udelay(ATH9K_TIME_QUANTUM);
++ if (ath9k_hw_numtxpending(ah, q) == 0)
++ break;
}
REG_WRITE(ah, AR_Q_TXD, 0);