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 | |