madwifi: add sysctl for turning the radio silent
[openwrt.git] / package / madwifi / patches / 347-tuning.patch
index ae4790f..1a73c42 100644 (file)
@@ -1,8 +1,6 @@
-Index: madwifi-trunk-r3314/ath/if_ath.c
-===================================================================
---- madwifi-trunk-r3314.orig/ath/if_ath.c      2008-04-21 05:41:13.000000000 +0200
-+++ madwifi-trunk-r3314/ath/if_ath.c   2008-04-21 05:41:50.000000000 +0200
-@@ -10267,11 +10267,11 @@
+--- a/ath/if_ath.c
++++ b/ath/if_ath.c
+@@ -10276,11 +10276,11 @@ ath_setcurmode(struct ath_softc *sc, enu
        sc->sc_currates = rt;
        sc->sc_curmode = mode;
        /*
@@ -17,27 +15,85 @@ Index: madwifi-trunk-r3314/ath/if_ath.c
        /* rate index used to send mgt frames */
        sc->sc_minrateix = 0;
  }
-Index: madwifi-trunk-r3314/ath/if_athvar.h
-===================================================================
---- madwifi-trunk-r3314.orig/ath/if_athvar.h   2008-04-21 05:41:13.000000000 +0200
-+++ madwifi-trunk-r3314/ath/if_athvar.h        2008-04-21 05:41:50.000000000 +0200
-@@ -223,8 +223,8 @@
- #define ATH_MAX_MTU     2290
- #define ATH_MIN_MTU     32
+--- a/ath/if_athvar.h
++++ b/ath/if_athvar.h
+@@ -272,6 +272,10 @@ static inline struct net_device *_alloc_
+ #define AES_ICV_FIELD_SIZE      8       /* AES ICV field size */
+ #define EXT_IV_FIELD_SIZE       4       /* ext IV field size */
  
--#define       ATH_RXBUF       40              /* number of RX buffers */
--#define       ATH_TXBUF       200             /* number of TX buffers */
-+#define       ATH_RXBUF       80              /* number of RX buffers */
-+#define       ATH_TXBUF       400             /* number of TX buffers */
++/* This is what the HAL uses by default for 11a+g */
++#define ATH_DEFAULT_CWMIN     15
++#define ATH_DEFAULT_CWMAX     1023
++
+ /* XR specific macros */
  
- #define ATH_MAXVAPS_MIN       2       /* minimum number of beacon buffers */
- #define ATH_MAXVAPS_MAX       64      /* maximum number of beacon buffers */
-@@ -235,7 +235,7 @@
- /* number of TX buffers reserved for mgt frames */
- #define ATH_TXBUF_MGT_RESERVED          5     
+ #define XR_DEFAULT_GRPPOLL_RATE_STR   "0.25 1 1 3 3 6 6 20"
+--- a/ath_rate/minstrel/minstrel.c
++++ b/ath_rate/minstrel/minstrel.c
+@@ -197,7 +197,7 @@ calc_usecs_unicast_packet(struct ath_sof
+               unsigned int x = 0, tt = 0;
+               unsigned int cix = rt->info[rix].controlRate;
+               int rts = 0, cts = 0;
+-              int cw = WIFI_CW_MIN;
++              int cw = ATH_DEFAULT_CWMIN;
  
--#define TAIL_DROP_COUNT 50             /* maximum number of queued frames allowed */
-+#define TAIL_DROP_COUNT 80             /* maximum number of queued frames allowed */
+               KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
  
+@@ -281,7 +281,7 @@ calc_usecs_unicast_packet(struct ath_sof
+               tt += (long_retries + 1) * ath_hal_computetxtime(sc->sc_ah, rt, length,
+                                                       rix, AH_TRUE);
+               for (x = 0; x <= short_retries + long_retries; x++) {
+-                      cw = MIN(WIFI_CW_MAX, (cw + 1) * 2);
++                      cw = MIN(ATH_DEFAULT_CWMAX, (cw + 1) * 2);
+                       tt += (t_slot * cw / 2);
+               }
+               return tt;
+--- a/ath_rate/minstrel/minstrel.h
++++ b/ath_rate/minstrel/minstrel.h
+@@ -180,14 +180,6 @@ struct minstrel_node {
+ #define MAX(a,b)        ((a) > (b) ? (a) : (b))
+ #endif
+-#if 0
+-#define WIFI_CW_MIN 31
+-#define WIFI_CW_MAX 1023
+-#else
+-#define WIFI_CW_MIN 3
+-#define WIFI_CW_MAX 10
+-#endif
+-
+ /*
+  * Definitions for pulling the rate and trie counts from
+  * a 5212 h/w descriptor. These Don't belong here; the
+--- a/ath_rate/sample/sample.c
++++ b/ath_rate/sample/sample.c
+@@ -170,7 +170,7 @@ calc_usecs_unicast_packet(struct ath_sof
+       struct ieee80211com *ic = &sc->sc_ic;
+       unsigned int tt = 0;
+       unsigned int x;
+-      unsigned int cw = WIFI_CW_MIN;
++      unsigned int cw = ATH_DEFAULT_CWMIN;
+       unsigned int cix = rt->info[rix].controlRate;
+       KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
+@@ -254,7 +254,7 @@ calc_usecs_unicast_packet(struct ath_sof
+       tt += (long_retries+1)*ath_hal_computetxtime(sc->sc_ah, rt, length,
+                                               rix, AH_TRUE);
+       for (x = 0; x <= short_retries + long_retries; x++) {
+-              cw = MIN(WIFI_CW_MAX, (cw + 1) * 2);
++              cw = MIN(ATH_DEFAULT_CWMAX, (cw + 1) * 2);
+               tt += (t_slot * cw / 2);
+       }
+       return tt;
+--- a/ath_rate/sample/sample.h
++++ b/ath_rate/sample/sample.h
+@@ -106,9 +106,6 @@ struct sample_node {
+ #define MAX(a,b)        ((a) > (b) ? (a) : (b))
+ #endif
+-#define WIFI_CW_MIN 31
+-#define WIFI_CW_MAX 1023
+-
  /*
-  * dynamic turbo specific macros.
+  * Definitions for pulling the rate and trie counts from
+  * a 5212 h/w descriptor. These Don't belong here; the