]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/wireless/ath/ath9k/beacon.c
ath9k: Use atomic reference count for interrupt ops
[karo-tx-linux.git] / drivers / net / wireless / ath / ath9k / beacon.c
index 0d13ff74a68be4b55dd7150dc3bf85971a489f12..086c9c816bf78b0e0210869936c3feed40772ee1 100644 (file)
@@ -522,6 +522,7 @@ static void ath_beacon_config_ap(struct ath_softc *sc,
        ath9k_beacon_init(sc, nexttbtt, intval);
        sc->beacon.bmisscnt = 0;
        ath9k_hw_set_interrupts(ah, ah->imask);
+       ath9k_hw_enable_interrupts(ah);
 }
 
 /*
@@ -648,12 +649,8 @@ static void ath_beacon_config_sta(struct ath_softc *sc,
        ath9k_hw_set_sta_beacon_timers(ah, &bs);
        ah->imask |= ATH9K_INT_BMISS;
 
-       /*
-        * If the beacon config is called beacause of TSFOOR,
-        * Interrupts will be enabled back at the end of ath9k_tasklet
-        */
-       if (!(sc->ps_flags & PS_TSFOOR_SYNC))
-               ath9k_hw_set_interrupts(ah, ah->imask);
+       ath9k_hw_set_interrupts(ah, ah->imask);
+       ath9k_hw_enable_interrupts(ah);
 }
 
 static void ath_beacon_config_adhoc(struct ath_softc *sc,
@@ -687,12 +684,9 @@ static void ath_beacon_config_adhoc(struct ath_softc *sc,
        ath9k_hw_disable_interrupts(ah);
        ath9k_beacon_init(sc, nexttbtt, intval);
        sc->beacon.bmisscnt = 0;
-       /*
-        * If the beacon config is called beacause of TSFOOR,
-        * Interrupts will be enabled back at the end of ath9k_tasklet
-        */
-       if (!(sc->ps_flags & PS_TSFOOR_SYNC))
-               ath9k_hw_set_interrupts(ah, ah->imask);
+
+       ath9k_hw_set_interrupts(ah, ah->imask);
+       ath9k_hw_enable_interrupts(ah);
 }
 
 static bool ath9k_allow_beacon_config(struct ath_softc *sc,