huge madwifi update (work in progress, disabled by default, compiles but breaks at...
[openwrt.git] / package / madwifi / patches-r3776 / 312-ack_cts_rate.patch
diff --git a/package/madwifi/patches-r3776/312-ack_cts_rate.patch b/package/madwifi/patches-r3776/312-ack_cts_rate.patch
new file mode 100644 (file)
index 0000000..3f172ca
--- /dev/null
@@ -0,0 +1,46 @@
+Index: madwifi-trunk-r3776/ath/if_ath.c
+===================================================================
+--- madwifi-trunk-r3776.orig/ath/if_ath.c      2008-07-17 02:37:41.000000000 +0200
++++ madwifi-trunk-r3776/ath/if_ath.c   2008-07-17 03:04:02.000000000 +0200
+@@ -10889,8 +10889,13 @@
+                               break;
+ #endif
+                       case ATH_ACKRATE:
+-                              sc->sc_ackrate = val;
+-                              ath_set_ack_bitrate(sc, sc->sc_ackrate);
++                              if (val == -1)
++                                      sc->sc_ackrate_override = 0;
++                              else {
++                                      sc->sc_ackrate_override = 1;
++                                      sc->sc_ackrate = val;
++                                      ath_set_ack_bitrate(sc, sc->sc_ackrate);
++                              }
+                               break;
+                       case ATH_RP:
+                               ath_rp_record(sc,
+Index: madwifi-trunk-r3776/ath/if_athvar.h
+===================================================================
+--- madwifi-trunk-r3776.orig/ath/if_athvar.h   2008-07-17 02:37:41.000000000 +0200
++++ madwifi-trunk-r3776/ath/if_athvar.h        2008-07-17 03:04:02.000000000 +0200
+@@ -698,6 +698,7 @@
+       unsigned int    sc_hasclrkey:1;         /* CLR key supported */
+       unsigned int    sc_stagbeacons:1;       /* use staggered beacons */
+       unsigned int    sc_dfswait:1;           /* waiting on channel for radar detect */
++      unsigned int    sc_ackrate_override:1;  /* override ack rate */
+       unsigned int    sc_ackrate:1;           /* send acks at high bitrate */
+       unsigned int    sc_dfs_cac:1;           /* waiting on channel for radar detect */
+       unsigned int    sc_hasintmit:1;         /* Interference mitigation */
+Index: madwifi-trunk-r3776/ath/if_ath_hal_extensions.c
+===================================================================
+--- madwifi-trunk-r3776.orig/ath/if_ath_hal_extensions.c       2008-07-17 00:21:39.000000000 +0200
++++ madwifi-trunk-r3776/ath/if_ath_hal_extensions.c    2008-07-17 03:04:48.000000000 +0200
+@@ -129,6 +129,9 @@
+ int
+ ath_set_ack_bitrate(struct ath_softc *sc, int high)
+ {
++      if (!sc->sc_ackrate_override)
++              return 0;
++
+       if (ar_device(sc->devid) == 5212 || ar_device(sc->devid) == 5213) {
+               /* set ack to be sent at low bit-rate */
+               u_int32_t v = AR5K_STA_ID1_BASE_RATE_11B | AR5K_STA_ID1_ACKCTS_6MB;
This page took 0.020477 seconds and 4 git commands to generate.