[package] base-files: cached state vars after scan_interfaces might be out of sync...
[openwrt.git] / package / madwifi / patches / 310-noise_get.patch
index 2dcfe35..d882158 100644 (file)
@@ -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 */
This page took 0.028036 seconds and 4 git commands to generate.