Root/package/madwifi/patches/348-ackcts.patch

1--- a/ath/if_ath.c
2+++ b/ath/if_ath.c
3@@ -2723,6 +2723,9 @@ ar_device(int devid)
4 static int
5 ath_set_ack_bitrate(struct ath_softc *sc, int high)
6 {
7+ if (!sc->sc_ackrate_override)
8+ return 0;
9+
10     if (ar_device(sc->devid) == 5212 || ar_device(sc->devid) == 5213) {
11         /* set ack to be sent at low bit-rate */
12         /* registers taken from the OpenBSD 5212 HAL */
13@@ -10791,8 +10794,13 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl
14                 break;
15 #endif
16             case ATH_ACKRATE:
17- sc->sc_ackrate = val;
18- ath_set_ack_bitrate(sc, sc->sc_ackrate);
19+ if (val == -1)
20+ sc->sc_ackrate_override = 0;
21+ else {
22+ sc->sc_ackrate_override = 1;
23+ sc->sc_ackrate = val;
24+ ath_set_ack_bitrate(sc, sc->sc_ackrate);
25+ }
26                 break;
27             case ATH_RP:
28                 ath_rp_record(sc,
29--- a/ath/if_athvar.h
30+++ b/ath/if_athvar.h
31@@ -681,6 +681,7 @@ struct ath_softc {
32     unsigned int sc_devstopped:1; /* stopped due to of no tx bufs */
33     unsigned int sc_stagbeacons:1; /* use staggered beacons */
34     unsigned int sc_dfswait:1; /* waiting on channel for radar detect */
35+ unsigned int sc_ackrate_override:1; /* override ack rate */
36     unsigned int sc_ackrate:1; /* send acks at high bitrate */
37     unsigned int sc_dfs_cac:1; /* waiting on channel for radar detect */
38     unsigned int sc_hasintmit:1; /* Interference mitigation */
39

Archive Download this file



interactive