Index: madwifi-dfs-r3053/ath/if_ath.c =================================================================== --- madwifi-dfs-r3053.orig/ath/if_ath.c 2007-12-13 05:25:14.210435274 +0100 +++ madwifi-dfs-r3053/ath/if_ath.c 2007-12-13 05:25:14.558455106 +0100 @@ -1648,7 +1648,6 @@ /* XXXAPSD: build in check against max triggers we could see * based on ic->ic_uapsdmaxtriggers. */ hw_tsf = ath_hal_gettsf64(ah); - ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); ATH_RXBUF_LOCK_IRQ(sc); if (sc->sc_rxbufcur == NULL) @@ -8815,6 +8814,7 @@ if (ath_calinterval == ATH_LONG_CALINTERVAL) ath_calinterval = ATH_SHORT_CALINTERVAL; } + ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); DPRINTF(sc, ATH_DEBUG_CALIBRATE, "%s: channel %u/%x -- IQ %s.\n", __func__, sc->sc_curchan.channel, sc->sc_curchan.channelFlags, @@ -8869,6 +8869,7 @@ struct ath_softc *sc = dev->priv; (void) ath_chan_set(sc, ic->ic_curchan); + ic->ic_channoise = ath_hal_get_channel_noise(sc->sc_ah, &(sc->sc_curchan)); /* * If we are returning to our bss channel then mark state * so the next recv'd beacon's TSF will be used to sync the @@ -9095,6 +9096,7 @@ } ath_hal_process_noisefloor(ah); + ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); /* * Reset rssi stats; maybe not the best place... */