summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-04-02 01:10:01 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-04-02 01:10:01 +0000
commit997a13bb0d21b2a245b646b67577d81a82ee8774 (patch)
tree48ac3787a93923dda967fab185b70104507331d4
parentabc719ecfdda0ac7a916c66e55ccbe1d9569cad4 (diff)
ath9k: fix adhoc beacon issues (#9163)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26395 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/mac80211/patches/570-ath9k_fix_ibss_beacon_slot.patch17
-rw-r--r--package/mac80211/patches/571-ath9k_fix_beacon_config_mode.patch11
2 files changed, 28 insertions, 0 deletions
diff --git a/package/mac80211/patches/570-ath9k_fix_ibss_beacon_slot.patch b/package/mac80211/patches/570-ath9k_fix_ibss_beacon_slot.patch
new file mode 100644
index 0000000000..50a5bc1182
--- /dev/null
+++ b/package/mac80211/patches/570-ath9k_fix_ibss_beacon_slot.patch
@@ -0,0 +1,17 @@
+--- a/drivers/net/wireless/ath/ath9k/beacon.c
++++ b/drivers/net/wireless/ath/ath9k/beacon.c
+@@ -392,14 +392,6 @@ void ath_beacon_tasklet(unsigned long da
+ 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,
diff --git a/package/mac80211/patches/571-ath9k_fix_beacon_config_mode.patch b/package/mac80211/patches/571-ath9k_fix_beacon_config_mode.patch
new file mode 100644
index 0000000000..4ba74f86dc
--- /dev/null
+++ b/package/mac80211/patches/571-ath9k_fix_beacon_config_mode.patch
@@ -0,0 +1,11 @@
+--- a/drivers/net/wireless/ath/ath9k/beacon.c
++++ b/drivers/net/wireless/ath/ath9k/beacon.c
+@@ -700,7 +700,7 @@ void ath_beacon_config(struct ath_softc
+ if (cur_conf->dtim_period == 0)
+ cur_conf->dtim_period = 1;
+
+- switch (iftype) {
++ switch (sc->sc_ah->opmode) {
+ case NL80211_IFTYPE_AP:
+ ath_beacon_config_ap(sc, cur_conf);
+ break;