X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/ad8cd27cac7193d938a42d292b1f1f790f35f74b..c8bbe9850ac0e905382cc9a7981393dd5438562e:/package/madwifi/patches/310-noise_get.patch diff --git a/package/madwifi/patches/310-noise_get.patch b/package/madwifi/patches/310-noise_get.patch index 2dcfe3509..d8821583b 100644 --- a/package/madwifi/patches/310-noise_get.patch +++ b/package/madwifi/patches/310-noise_get.patch @@ -1,44 +1,55 @@ -Index: madwifi-ng-r2756-20071018/ath/if_ath.c -=================================================================== ---- madwifi-ng-r2756-20071018.orig/ath/if_ath.c 2007-10-27 19:20:14.495461544 +0200 -+++ madwifi-ng-r2756-20071018/ath/if_ath.c 2007-10-27 19:22:02.865637202 +0200 -@@ -1417,7 +1417,6 @@ +--- a/ath/if_ath.c ++++ b/ath/if_ath.c +@@ -1699,8 +1699,6 @@ ath_uapsd_processtriggers(struct ath_sof + * get to reality. This value is used in monitor mode and by tools like * Wireshark and Kismet. */ - 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) -@@ -8174,6 +8173,7 @@ - struct net_device *dev = (struct net_device *) arg; - struct ath_softc *sc = dev->priv; - struct ath_hal *ah = sc->sc_ah; -+ struct ieee80211com *ic = &sc->sc_ic; - /* u_int32_t nchans; */ - HAL_BOOL isIQdone = AH_FALSE; - -@@ -8202,6 +8202,7 @@ - ath_calinterval = ATH_LONG_CALINTERVAL; - else - ath_calinterval = ATH_SHORT_CALINTERVAL; + sc->sc_rxbufcur = STAILQ_FIRST(&sc->sc_rxbuf); +@@ -8975,6 +8973,7 @@ ath_calibrate(unsigned long arg) + sc->sc_curchan.channel); + sc->sc_stats.ast_per_calfail++; + } + ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); - sc->sc_cal_ch.expires = jiffies + (ath_calinterval * HZ); - add_timer(&sc->sc_cal_ch); -@@ -8252,6 +8253,7 @@ + ath_hal_process_noisefloor(ah); + if (isIQdone == AH_TRUE) { +@@ -9043,6 +9042,7 @@ ath_set_channel(struct ieee80211com *ic) struct ath_softc *sc = dev->priv; (void) ath_chan_set(sc, ic->ic_curchan); -+ ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_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 -@@ -8466,6 +8468,7 @@ +@@ -9311,6 +9311,7 @@ ath_newstate(struct ieee80211vap *vap, e } ath_hal_process_noisefloor(ah); + ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan)); /* - * Configure the beacon and sleep timers. + * Reset rssi stats; maybe not the best place... */ +--- a/net80211/ieee80211_wireless.c ++++ b/net80211/ieee80211_wireless.c +@@ -4358,6 +4358,7 @@ get_sta_info(void *arg, struct ieee80211 + si->isi_state = ni->ni_flags; + si->isi_authmode = ni->ni_authmode; + si->isi_rssi = ic->ic_node_getrssi(ni); ++ si->isi_noise = ic->ic_channoise; + si->isi_capinfo = ni->ni_capinfo; + si->isi_athflags = ni->ni_ath_flags; + si->isi_erp = ni->ni_erp; +--- a/net80211/ieee80211_ioctl.h ++++ b/net80211/ieee80211_ioctl.h +@@ -311,6 +311,7 @@ struct ieee80211req_sta_info { + u_int16_t isi_state; /* state flags */ + u_int8_t isi_authmode; /* authentication algorithm */ + u_int8_t isi_rssi; ++ int8_t isi_noise; + u_int16_t isi_capinfo; /* capabilities */ + u_int8_t isi_athflags; /* Atheros capabilities */ + u_int8_t isi_erp; /* ERP element */