aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index b1dcf89138d3..173a889f9dbb 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -508,6 +508,9 @@ void ath9k_tasklet(unsigned long data)
508 wake_up(&sc->tx_wait); 508 wake_up(&sc->tx_wait);
509 } 509 }
510 510
511 if (status & ATH9K_INT_GENTIMER)
512 ath_gen_timer_isr(sc->sc_ah);
513
511 ath9k_btcoex_handle_interrupt(sc, status); 514 ath9k_btcoex_handle_interrupt(sc, status);
512 515
513 /* re-enable hardware interrupt */ 516 /* re-enable hardware interrupt */
@@ -538,6 +541,7 @@ irqreturn_t ath_isr(int irq, void *dev)
538 struct ath_hw *ah = sc->sc_ah; 541 struct ath_hw *ah = sc->sc_ah;
539 struct ath_common *common = ath9k_hw_common(ah); 542 struct ath_common *common = ath9k_hw_common(ah);
540 enum ath9k_int status; 543 enum ath9k_int status;
544 u32 sync_cause;
541 bool sched = false; 545 bool sched = false;
542 546
543 /* 547 /*
@@ -564,7 +568,8 @@ irqreturn_t ath_isr(int irq, void *dev)
564 * bits we haven't explicitly enabled so we mask the 568 * bits we haven't explicitly enabled so we mask the
565 * value to insure we only process bits we requested. 569 * value to insure we only process bits we requested.
566 */ 570 */
567 ath9k_hw_getisr(ah, &status); /* NB: clears ISR too */ 571 ath9k_hw_getisr(ah, &status, &sync_cause); /* NB: clears ISR too */
572 ath9k_debug_sync_cause(sc, sync_cause);
568 status &= ah->imask; /* discard unasked-for bits */ 573 status &= ah->imask; /* discard unasked-for bits */
569 574
570 /* 575 /*
@@ -757,6 +762,8 @@ static int ath9k_start(struct ieee80211_hw *hw)
757 */ 762 */
758 ath9k_cmn_init_crypto(sc->sc_ah); 763 ath9k_cmn_init_crypto(sc->sc_ah);
759 764
765 ath9k_hw_reset_tsf(ah);
766
760 spin_unlock_bh(&sc->sc_pcu_lock); 767 spin_unlock_bh(&sc->sc_pcu_lock);
761 768
762 mutex_unlock(&sc->mutex); 769 mutex_unlock(&sc->mutex);
@@ -1657,13 +1664,8 @@ static void ath9k_bss_info_changed(struct ieee80211_hw *hw,
1657 } 1664 }
1658 1665
1659 if ((changed & BSS_CHANGED_BEACON_ENABLED) || 1666 if ((changed & BSS_CHANGED_BEACON_ENABLED) ||
1660 (changed & BSS_CHANGED_BEACON_INT)) { 1667 (changed & BSS_CHANGED_BEACON_INT))
1661 if (ah->opmode == NL80211_IFTYPE_AP && 1668 ath9k_beacon_config(sc, vif, changed);
1662 bss_conf->enable_beacon)
1663 ath9k_set_tsfadjust(sc, vif);
1664 if (ath9k_allow_beacon_config(sc, vif))
1665 ath9k_beacon_config(sc, vif, changed);
1666 }
1667 1669
1668 if (changed & BSS_CHANGED_ERP_SLOT) { 1670 if (changed & BSS_CHANGED_ERP_SLOT) {
1669 if (bss_conf->use_short_slot) 1671 if (bss_conf->use_short_slot)