diff options
Diffstat (limited to 'package/madwifi/patches-r3776/312-ack_cts_rate.patch')
-rw-r--r-- | package/madwifi/patches-r3776/312-ack_cts_rate.patch | 46 |
1 files changed, 46 insertions, 0 deletions
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 index 0000000..3f172ca --- /dev/null +++ b/package/madwifi/patches-r3776/312-ack_cts_rate.patch @@ -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; |