diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/beacon.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/beacon.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/net/wireless/ath/ath9k/beacon.c b/drivers/net/wireless/ath/ath9k/beacon.c index a4bdfdb043ef..6d2a545fc35e 100644 --- a/drivers/net/wireless/ath/ath9k/beacon.c +++ b/drivers/net/wireless/ath/ath9k/beacon.c | |||
@@ -373,6 +373,7 @@ void ath_beacon_tasklet(unsigned long data) | |||
373 | ath_dbg(common, ATH_DBG_BSTUCK, | 373 | ath_dbg(common, ATH_DBG_BSTUCK, |
374 | "missed %u consecutive beacons\n", | 374 | "missed %u consecutive beacons\n", |
375 | sc->beacon.bmisscnt); | 375 | sc->beacon.bmisscnt); |
376 | ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq); | ||
376 | ath9k_hw_bstuck_nfcal(ah); | 377 | ath9k_hw_bstuck_nfcal(ah); |
377 | } else if (sc->beacon.bmisscnt >= BSTUCK_THRESH) { | 378 | } else if (sc->beacon.bmisscnt >= BSTUCK_THRESH) { |
378 | ath_dbg(common, ATH_DBG_BSTUCK, | 379 | ath_dbg(common, ATH_DBG_BSTUCK, |
@@ -450,16 +451,6 @@ void ath_beacon_tasklet(unsigned long data) | |||
450 | sc->beacon.updateslot = OK; | 451 | sc->beacon.updateslot = OK; |
451 | } | 452 | } |
452 | if (bfaddr != 0) { | 453 | if (bfaddr != 0) { |
453 | /* | ||
454 | * Stop any current dma and put the new frame(s) on the queue. | ||
455 | * This should never fail since we check above that no frames | ||
456 | * are still pending on the queue. | ||
457 | */ | ||
458 | if (!ath9k_hw_stoptxdma(ah, sc->beacon.beaconq)) { | ||
459 | ath_err(common, "beacon queue %u did not stop?\n", | ||
460 | sc->beacon.beaconq); | ||
461 | } | ||
462 | |||
463 | /* NB: cabq traffic should already be queued and primed */ | 454 | /* NB: cabq traffic should already be queued and primed */ |
464 | ath9k_hw_puttxbuf(ah, sc->beacon.beaconq, bfaddr); | 455 | ath9k_hw_puttxbuf(ah, sc->beacon.beaconq, bfaddr); |
465 | ath9k_hw_txstart(ah, sc->beacon.beaconq); | 456 | ath9k_hw_txstart(ah, sc->beacon.beaconq); |
@@ -780,7 +771,7 @@ void ath9k_set_beaconing_status(struct ath_softc *sc, bool status) | |||
780 | ah->imask &= ~ATH9K_INT_SWBA; | 771 | ah->imask &= ~ATH9K_INT_SWBA; |
781 | ath9k_hw_set_interrupts(ah, ah->imask); | 772 | ath9k_hw_set_interrupts(ah, ah->imask); |
782 | tasklet_kill(&sc->bcon_tasklet); | 773 | tasklet_kill(&sc->bcon_tasklet); |
783 | ath9k_hw_stoptxdma(ah, sc->beacon.beaconq); | 774 | ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq); |
784 | } | 775 | } |
785 | ath9k_ps_restore(sc); | 776 | ath9k_ps_restore(sc); |
786 | } | 777 | } |