ath9k_hw: make ath9k_hw_set_interrupts use ah->imask by default
authorFelix Fietkau <nbd@openwrt.org>
Sat, 8 Oct 2011 18:06:19 +0000 (20:06 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 11 Oct 2011 20:41:25 +0000 (16:41 -0400)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/beacon.c
drivers/net/wireless/ath/ath9k/gpio.c
drivers/net/wireless/ath/ath9k/mac.c
drivers/net/wireless/ath/ath9k/mac.h
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/recv.c

index 9cdeaebc844f4b0064d5edabd0c8d419b4eedc5a..a13cabb95435873d63f8d289558d89c6dca6452e 100644 (file)
@@ -515,7 +515,7 @@ static void ath_beacon_config_ap(struct ath_softc *sc,
        sc->sc_flags |= SC_OP_TSF_RESET;
        ath9k_beacon_init(sc, nexttbtt, intval);
        sc->beacon.bmisscnt = 0;
-       ath9k_hw_set_interrupts(ah, ah->imask);
+       ath9k_hw_set_interrupts(ah);
        ath9k_hw_enable_interrupts(ah);
 }
 
@@ -643,7 +643,7 @@ static void ath_beacon_config_sta(struct ath_softc *sc,
        ath9k_hw_set_sta_beacon_timers(ah, &bs);
        ah->imask |= ATH9K_INT_BMISS;
 
-       ath9k_hw_set_interrupts(ah, ah->imask);
+       ath9k_hw_set_interrupts(ah);
        ath9k_hw_enable_interrupts(ah);
 }
 
@@ -679,7 +679,7 @@ static void ath_beacon_config_adhoc(struct ath_softc *sc,
        ath9k_beacon_init(sc, nexttbtt, intval);
        sc->beacon.bmisscnt = 0;
 
-       ath9k_hw_set_interrupts(ah, ah->imask);
+       ath9k_hw_set_interrupts(ah);
        ath9k_hw_enable_interrupts(ah);
 }
 
@@ -821,11 +821,11 @@ void ath9k_set_beaconing_status(struct ath_softc *sc, bool status)
        if (status) {
                /* Re-enable beaconing */
                ah->imask |= ATH9K_INT_SWBA;
-               ath9k_hw_set_interrupts(ah, ah->imask);
+               ath9k_hw_set_interrupts(ah);
        } else {
                /* Disable SWBA interrupt */
                ah->imask &= ~ATH9K_INT_SWBA;
-               ath9k_hw_set_interrupts(ah, ah->imask);
+               ath9k_hw_set_interrupts(ah);
                tasklet_kill(&sc->bcon_tasklet);
                ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq);
        }
index fd0f84ebdb51994895966c988ae414acd2f797d5..61eee8c49a1492ae0de877ae2fcef04956e6e66c 100644 (file)
@@ -155,7 +155,7 @@ static void ath9k_gen_timer_start(struct ath_hw *ah,
        if ((ah->imask & ATH9K_INT_GENTIMER) == 0) {
                ath9k_hw_disable_interrupts(ah);
                ah->imask |= ATH9K_INT_GENTIMER;
-               ath9k_hw_set_interrupts(ah, ah->imask);
+               ath9k_hw_set_interrupts(ah);
                ath9k_hw_enable_interrupts(ah);
        }
 }
@@ -170,7 +170,7 @@ static void ath9k_gen_timer_stop(struct ath_hw *ah, struct ath_gen_timer *timer)
        if (timer_table->timer_mask.val == 0) {
                ath9k_hw_disable_interrupts(ah);
                ah->imask &= ~ATH9K_INT_GENTIMER;
-               ath9k_hw_set_interrupts(ah, ah->imask);
+               ath9k_hw_set_interrupts(ah);
                ath9k_hw_enable_interrupts(ah);
        }
 }
index 22f23eafe8bac12f132c501eb43674ef245cab02..835e81d8ef0e8066286cf7c3cb30302287ed63f9 100644 (file)
@@ -827,9 +827,9 @@ void ath9k_hw_enable_interrupts(struct ath_hw *ah)
 }
 EXPORT_SYMBOL(ath9k_hw_enable_interrupts);
 
-void ath9k_hw_set_interrupts(struct ath_hw *ah, enum ath9k_int ints)
+void ath9k_hw_set_interrupts(struct ath_hw *ah)
 {
-       enum ath9k_int omask = ah->imask;
+       enum ath9k_int ints = ah->imask;
        u32 mask, mask2;
        struct ath9k_hw_capabilities *pCap = &ah->caps;
        struct ath_common *common = ath9k_hw_common(ah);
@@ -837,7 +837,7 @@ void ath9k_hw_set_interrupts(struct ath_hw *ah, enum ath9k_int ints)
        if (!(ints & ATH9K_INT_GLOBAL))
                ath9k_hw_disable_interrupts(ah);
 
-       ath_dbg(common, ATH_DBG_INTERRUPT, "0x%x => 0x%x\n", omask, ints);
+       ath_dbg(common, ATH_DBG_INTERRUPT, "New interrupt mask 0x%x\n", ints);
 
        mask = ints & ATH9K_INT_COMMON;
        mask2 = 0;
index 5eb4ee454325af84e42d32c260cfb4976d773780..736fcbee919d8495a67c369406477d0949ff4a3e 100644 (file)
@@ -735,7 +735,7 @@ int ath9k_hw_beaconq_setup(struct ath_hw *ah);
 
 /* Interrupt Handling */
 bool ath9k_hw_intrpend(struct ath_hw *ah);
-void ath9k_hw_set_interrupts(struct ath_hw *ah, enum ath9k_int ints);
+void ath9k_hw_set_interrupts(struct ath_hw *ah);
 void ath9k_hw_enable_interrupts(struct ath_hw *ah);
 void ath9k_hw_disable_interrupts(struct ath_hw *ah);
 
index 366912f16ffaea9ce4b8190a82a652930d778da4..93fbe6f4089890df98b98904921879ab97835b98 100644 (file)
@@ -273,7 +273,7 @@ static bool ath_complete_reset(struct ath_softc *sc, bool start)
 
        ath9k_cmn_update_txpow(ah, sc->curtxpow,
                               sc->config.txpowlimit, &sc->curtxpow);
-       ath9k_hw_set_interrupts(ah, ah->imask);
+       ath9k_hw_set_interrupts(ah);
        ath9k_hw_enable_interrupts(ah);
 
        if (!(sc->sc_flags & (SC_OP_OFFCHANNEL)) && start) {
@@ -833,7 +833,7 @@ irqreturn_t ath_isr(int irq, void *dev)
 
        if (status & ATH9K_INT_RXEOL) {
                ah->imask &= ~(ATH9K_INT_RXEOL | ATH9K_INT_RXORN);
-               ath9k_hw_set_interrupts(ah, ah->imask);
+               ath9k_hw_set_interrupts(ah);
        }
 
        if (status & ATH9K_INT_MIB) {
@@ -1409,7 +1409,7 @@ static void ath9k_calculate_summary_state(struct ieee80211_hw *hw,
                ah->imask &= ~ATH9K_INT_TSFOOR;
        }
 
-       ath9k_hw_set_interrupts(ah, ah->imask);
+       ath9k_hw_set_interrupts(ah);
 
        /* Set up ANI */
        if (iter_data.naps > 0) {
@@ -1584,7 +1584,7 @@ static void ath9k_enable_ps(struct ath_softc *sc)
        if (!(ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) {
                if ((ah->imask & ATH9K_INT_TIM_TIMER) == 0) {
                        ah->imask |= ATH9K_INT_TIM_TIMER;
-                       ath9k_hw_set_interrupts(ah, ah->imask);
+                       ath9k_hw_set_interrupts(ah);
                }
                ath9k_hw_setrxabort(ah, 1);
        }
@@ -1604,7 +1604,7 @@ static void ath9k_disable_ps(struct ath_softc *sc)
                                  PS_WAIT_FOR_TX_ACK);
                if (ah->imask & ATH9K_INT_TIM_TIMER) {
                        ah->imask &= ~ATH9K_INT_TIM_TIMER;
-                       ath9k_hw_set_interrupts(ah, ah->imask);
+                       ath9k_hw_set_interrupts(ah);
                }
        }
 
index d28a5ddc7992653bfaa4ded2f81ef711fa0d3f64..33d30792d7d7305985ad43dc5cbf6e6f9929e792 100644 (file)
@@ -1970,7 +1970,7 @@ requeue:
 
        if (!(ah->imask & ATH9K_INT_RXEOL)) {
                ah->imask |= (ATH9K_INT_RXEOL | ATH9K_INT_RXORN);
-               ath9k_hw_set_interrupts(ah, ah->imask);
+               ath9k_hw_set_interrupts(ah);
        }
 
        return 0;