summaryrefslogtreecommitdiffstats
path: root/package/madwifi/patches
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-10-27 17:51:52 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-10-27 17:51:52 +0000
commitad8cd27cac7193d938a42d292b1f1f790f35f74b (patch)
tree3924d108f469b4f175eb2d0b1495ef750641438a /package/madwifi/patches
parentd73a69babbc3a8777fc1b0afb9a24dcfd3afc009 (diff)
madwifi: don't poll the channel noise in a performance critical path
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9454 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/madwifi/patches')
-rw-r--r--package/madwifi/patches/310-noise_get.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/package/madwifi/patches/310-noise_get.patch b/package/madwifi/patches/310-noise_get.patch
new file mode 100644
index 000000000..2dcfe3509
--- /dev/null
+++ b/package/madwifi/patches/310-noise_get.patch
@@ -0,0 +1,44 @@
+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 @@
+ * 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;
++ 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 @@
+ 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));
+ /*
+ * 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 @@
+ }
+
+ ath_hal_process_noisefloor(ah);
++ ic->ic_channoise = ath_hal_get_channel_noise(ah, &(sc->sc_curchan));
+ /*
+ * Configure the beacon and sleep timers.
+ */