| 1 | --- a/ath/if_ath.c |
| 2 | +++ b/ath/if_ath.c |
| 3 | @@ -1699,8 +1699,6 @@ ath_uapsd_processtriggers(struct ath_sof |
| 4 | * get to reality. This value is used in monitor mode and by tools like |
| 5 | * Wireshark and Kismet. |
| 6 | */ |
| 7 | - ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); |
| 8 | - |
| 9 | ATH_RXBUF_LOCK_IRQ(sc); |
| 10 | if (sc->sc_rxbufcur == NULL) |
| 11 | sc->sc_rxbufcur = STAILQ_FIRST(&sc->sc_rxbuf); |
| 12 | @@ -8975,6 +8973,7 @@ ath_calibrate(unsigned long arg) |
| 13 | sc->sc_curchan.channel); |
| 14 | sc->sc_stats.ast_per_calfail++; |
| 15 | } |
| 16 | + ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); |
| 17 | |
| 18 | ath_hal_process_noisefloor(ah); |
| 19 | if (isIQdone == AH_TRUE) { |
| 20 | @@ -9043,6 +9042,7 @@ ath_set_channel(struct ieee80211com *ic) |
| 21 | struct ath_softc *sc = dev->priv; |
| 22 | |
| 23 | (void) ath_chan_set(sc, ic->ic_curchan); |
| 24 | + ic->ic_channoise = ath_hal_get_channel_noise(sc->sc_ah, &(sc->sc_curchan)); |
| 25 | /* |
| 26 | * If we are returning to our bss channel then mark state |
| 27 | * so the next recv'd beacon's TSF will be used to sync the |
| 28 | @@ -9311,6 +9311,7 @@ ath_newstate(struct ieee80211vap *vap, e |
| 29 | } |
| 30 | |
| 31 | ath_hal_process_noisefloor(ah); |
| 32 | + ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); |
| 33 | /* |
| 34 | * Reset rssi stats; maybe not the best place... |
| 35 | */ |
| 36 | --- a/net80211/ieee80211_wireless.c |
| 37 | +++ b/net80211/ieee80211_wireless.c |
| 38 | @@ -4358,6 +4358,7 @@ get_sta_info(void *arg, struct ieee80211 |
| 39 | si->isi_state = ni->ni_flags; |
| 40 | si->isi_authmode = ni->ni_authmode; |
| 41 | si->isi_rssi = ic->ic_node_getrssi(ni); |
| 42 | + si->isi_noise = ic->ic_channoise; |
| 43 | si->isi_capinfo = ni->ni_capinfo; |
| 44 | si->isi_athflags = ni->ni_ath_flags; |
| 45 | si->isi_erp = ni->ni_erp; |
| 46 | --- a/net80211/ieee80211_ioctl.h |
| 47 | +++ b/net80211/ieee80211_ioctl.h |
| 48 | @@ -311,6 +311,7 @@ struct ieee80211req_sta_info { |
| 49 | u_int16_t isi_state; /* state flags */ |
| 50 | u_int8_t isi_authmode; /* authentication algorithm */ |
| 51 | u_int8_t isi_rssi; |
| 52 | + int8_t isi_noise; |
| 53 | u_int16_t isi_capinfo; /* capabilities */ |
| 54 | u_int8_t isi_athflags; /* Atheros capabilities */ |
| 55 | u_int8_t isi_erp; /* ERP element */ |
| 56 | |