1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-02 12:23:08 +02:00
openwrt-xburst/package/madwifi/patches/348-ackcts.patch
nbd 93f00c0eb5 madwifi patch cleanup and stability fixes
- fix a semi-random heisenbug by replacing the previous noderef fix with a simple hack that is not 100% correct, but safe.
- add ad-hoc atim fixes by bruno
- add napi polling fixes by sven-ola
- fix compile breakage with debug enabled

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12838 3c298f89-4303-0410-b956-a3cf2f4a3e73
2008-10-03 15:17:34 +00:00

39 lines
1.2 KiB
Diff

--- a/ath/if_ath.c
+++ b/ath/if_ath.c
@@ -2723,6 +2723,9 @@
static 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 */
/* registers taken from the OpenBSD 5212 HAL */
@@ -10789,8 +10792,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,
--- a/ath/if_athvar.h
+++ b/ath/if_athvar.h
@@ -681,6 +681,7 @@
unsigned int sc_devstopped:1; /* stopped due to of no tx bufs */
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 */