diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index e4f65900132d..709301f88dcd 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -208,6 +208,7 @@ static bool ath_complete_reset(struct ath_softc *sc, bool start) | |||
208 | struct ath_hw *ah = sc->sc_ah; | 208 | struct ath_hw *ah = sc->sc_ah; |
209 | struct ath_common *common = ath9k_hw_common(ah); | 209 | struct ath_common *common = ath9k_hw_common(ah); |
210 | unsigned long flags; | 210 | unsigned long flags; |
211 | int i; | ||
211 | 212 | ||
212 | if (ath_startrecv(sc) != 0) { | 213 | if (ath_startrecv(sc) != 0) { |
213 | ath_err(common, "Unable to restart recv logic\n"); | 214 | ath_err(common, "Unable to restart recv logic\n"); |
@@ -235,6 +236,15 @@ static bool ath_complete_reset(struct ath_softc *sc, bool start) | |||
235 | } | 236 | } |
236 | work: | 237 | work: |
237 | ath_restart_work(sc); | 238 | ath_restart_work(sc); |
239 | |||
240 | for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { | ||
241 | if (!ATH_TXQ_SETUP(sc, i)) | ||
242 | continue; | ||
243 | |||
244 | spin_lock_bh(&sc->tx.txq[i].axq_lock); | ||
245 | ath_txq_schedule(sc, &sc->tx.txq[i]); | ||
246 | spin_unlock_bh(&sc->tx.txq[i].axq_lock); | ||
247 | } | ||
238 | } | 248 | } |
239 | 249 | ||
240 | ieee80211_wake_queues(sc->hw); | 250 | ieee80211_wake_queues(sc->hw); |
@@ -539,21 +549,10 @@ chip_reset: | |||
539 | 549 | ||
540 | static int ath_reset(struct ath_softc *sc) | 550 | static int ath_reset(struct ath_softc *sc) |
541 | { | 551 | { |
542 | int i, r; | 552 | int r; |
543 | 553 | ||
544 | ath9k_ps_wakeup(sc); | 554 | ath9k_ps_wakeup(sc); |
545 | |||
546 | r = ath_reset_internal(sc, NULL); | 555 | r = ath_reset_internal(sc, NULL); |
547 | |||
548 | for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { | ||
549 | if (!ATH_TXQ_SETUP(sc, i)) | ||
550 | continue; | ||
551 | |||
552 | spin_lock_bh(&sc->tx.txq[i].axq_lock); | ||
553 | ath_txq_schedule(sc, &sc->tx.txq[i]); | ||
554 | spin_unlock_bh(&sc->tx.txq[i].axq_lock); | ||
555 | } | ||
556 | |||
557 | ath9k_ps_restore(sc); | 556 | ath9k_ps_restore(sc); |
558 | 557 | ||
559 | return r; | 558 | return r; |