ath9k: fix beacon slot processing in ad-hoc mode
authorFelix Fietkau <nbd@openwrt.org>
Sat, 2 Apr 2011 01:39:47 +0000 (03:39 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 7 Apr 2011 19:34:13 +0000 (15:34 -0400)
The recent cleanups in the beacon code fixed SWBA backoff calculation,
however it did not remove a line of code that worked around the issues
from the earlier version of the code.
After the cleanup, the initial TSF based slot calculation now always
returns 0 instead of ATH_BCBUF-1, so the previous hack that reversed the
slot order needs to be removed, as ad-hoc mode does not use staggered
beacons.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/beacon.c

index 74f33bc..24861b2 100644 (file)
@@ -392,14 +392,6 @@ void ath_beacon_tasklet(unsigned long data)
        tsf += TU_TO_USEC(ah->config.sw_beacon_response_time);
        tsftu = TSF_TO_TU((tsf * ATH_BCBUF) >>32, tsf * ATH_BCBUF);
        slot = (tsftu % (intval * ATH_BCBUF)) / intval;
-       /*
-        * Reverse the slot order to get slot 0 on the TBTT offset that does
-        * not require TSF adjustment and other slots adding
-        * slot/ATH_BCBUF * beacon_int to timestamp. For example, with
-        * ATH_BCBUF = 4, we process beacon slots as follows: 3 2 1 0 3 2 1 ..
-        * and slot 0 is at correct offset to TBTT.
-        */
-       slot = ATH_BCBUF - slot - 1;
        vif = sc->beacon.bslot[slot];
 
        ath_dbg(common, ATH_DBG_BEACON,