From 58eace9b5bb3f2dd27ff3936563ba70de1e7dfc0 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 27 Jul 2010 21:04:54 +0000
Subject: mac80211: update to wireless-testing 2010-07-26 + pending patches -
 adds a change that might fix some calibration issues

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22403 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/mac80211/Makefile                          |  4 +-
 .../patches/100-disable_pcmcia_compat.patch        |  6 +--
 package/mac80211/patches/120-pm_qos_params.patch   |  2 +-
 package/mac80211/patches/520-ath9k_leak_fix.patch  | 32 ---------------
 package/mac80211/patches/530-ath9k_nf_fix.patch    | 46 ----------------------
 .../mac80211/patches/531-ath9k_nf_cleanup.patch    | 30 --------------
 .../700-mwl8k-missing-pci-id-for-WNR854T.patch     |  2 +-
 .../mac80211/patches/800-mac80211_aggr_fix.patch   | 20 ----------
 .../800-mac80211_scan_callback_revert.patch        | 20 ++++++++++
 9 files changed, 26 insertions(+), 136 deletions(-)
 delete mode 100644 package/mac80211/patches/520-ath9k_leak_fix.patch
 delete mode 100644 package/mac80211/patches/530-ath9k_nf_fix.patch
 delete mode 100644 package/mac80211/patches/531-ath9k_nf_cleanup.patch
 delete mode 100644 package/mac80211/patches/800-mac80211_aggr_fix.patch
 create mode 100644 package/mac80211/patches/800-mac80211_scan_callback_revert.patch

diff --git a/package/mac80211/Makefile b/package/mac80211/Makefile
index 03a1a4b0db..8db6eb6add 100644
--- a/package/mac80211/Makefile
+++ b/package/mac80211/Makefile
@@ -10,12 +10,12 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=2010-07-16
+PKG_VERSION:=2010-07-26
 PKG_RELEASE:=1
 PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
 #	http://www.orbit-lab.org/kernel/compat-wireless-2.6/2010/11 \
 #	http://wireless.kernel.org/download/compat-wireless-2.6
-PKG_MD5SUM:=f0eb07a207d1f3675787a466c838b777
+PKG_MD5SUM:=4388547c8cf60a895d9ee64420df2f25
 
 PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/compat-wireless-$(PKG_VERSION)
diff --git a/package/mac80211/patches/100-disable_pcmcia_compat.patch b/package/mac80211/patches/100-disable_pcmcia_compat.patch
index 8b366ff936..ebfe5ce653 100644
--- a/package/mac80211/patches/100-disable_pcmcia_compat.patch
+++ b/package/mac80211/patches/100-disable_pcmcia_compat.patch
@@ -42,18 +42,16 @@
  #include <pcmcia/cs.h>
 --- a/include/linux/compat-2.6.33.h
 +++ b/include/linux/compat-2.6.33.h
-@@ -6,8 +6,8 @@
+@@ -6,7 +6,7 @@
  #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33))
  
  #include <linux/skbuff.h>
 -#if defined(CONFIG_PCCARD) || defined(CONFIG_PCCARD_MODULE)
--#if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE)
-+#if 0
 +#if 0
  #include <pcmcia/cs_types.h>
  #include <pcmcia/cistpl.h>
  #include <pcmcia/ds.h>
-@@ -67,9 +67,9 @@ static inline struct sk_buff *netdev_all
+@@ -65,9 +65,9 @@ static inline struct sk_buff *netdev_all
  	return skb;
  }
  
diff --git a/package/mac80211/patches/120-pm_qos_params.patch b/package/mac80211/patches/120-pm_qos_params.patch
index 8562992a57..ca4b7bfe36 100644
--- a/package/mac80211/patches/120-pm_qos_params.patch
+++ b/package/mac80211/patches/120-pm_qos_params.patch
@@ -5,7 +5,7 @@
  #define DRV_COPYRIGHT	"Copyright(c) 2003-2006 Intel Corporation"
  
 +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
- struct pm_qos_request_list *ipw2100_pm_qos_req;
+ static struct pm_qos_request_list *ipw2100_pm_qos_req;
 +#endif
  
  /* Debugging stuff */
diff --git a/package/mac80211/patches/520-ath9k_leak_fix.patch b/package/mac80211/patches/520-ath9k_leak_fix.patch
deleted file mode 100644
index acf7efd87f..0000000000
--- a/package/mac80211/patches/520-ath9k_leak_fix.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/drivers/net/wireless/ath/ath9k/xmit.c
-+++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -518,6 +518,14 @@ static void ath_tx_complete_aggr(struct 
- 		bf = bf_next;
- 	}
- 
-+	/* prepend un-acked frames to the beginning of the pending frame queue */
-+	if (!list_empty(&bf_pending)) {
-+		spin_lock_bh(&txq->axq_lock);
-+		list_splice(&bf_pending, &tid->buf_q);
-+		ath_tx_queue_tid(txq, tid);
-+		spin_unlock_bh(&txq->axq_lock);
-+	}
-+
- 	if (tid->state & AGGR_CLEANUP) {
- 		if (tid->baw_head == tid->baw_tail) {
- 			tid->state &= ~AGGR_ADDBA_COMPLETE;
-@@ -530,14 +538,6 @@ static void ath_tx_complete_aggr(struct 
- 		return;
- 	}
- 
--	/* prepend un-acked frames to the beginning of the pending frame queue */
--	if (!list_empty(&bf_pending)) {
--		spin_lock_bh(&txq->axq_lock);
--		list_splice(&bf_pending, &tid->buf_q);
--		ath_tx_queue_tid(txq, tid);
--		spin_unlock_bh(&txq->axq_lock);
--	}
--
- 	rcu_read_unlock();
- 
- 	if (needreset)
diff --git a/package/mac80211/patches/530-ath9k_nf_fix.patch b/package/mac80211/patches/530-ath9k_nf_fix.patch
deleted file mode 100644
index 081c2ab74b..0000000000
--- a/package/mac80211/patches/530-ath9k_nf_fix.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
-+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
-@@ -1508,6 +1508,9 @@ static void ar5008_hw_do_getnf(struct at
- 	nf = MS(REG_READ(ah, AR_PHY_CH2_CCA), AR_PHY_CH2_MINCCA_PWR);
- 	nfarray[2] = sign_extend(nf, 9);
- 
-+	if (!IS_CHAN_HT40(ah->curchan))
-+		return;
-+
- 	nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR);
- 	nfarray[3] = sign_extend(nf, 9);
- 
---- a/drivers/net/wireless/ath/ath9k/ar9002_phy.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9002_phy.c
-@@ -477,7 +477,8 @@ static void ar9002_hw_do_getnf(struct at
- 	nfarray[0] = sign_extend(nf, 9);
- 
- 	nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR9280_PHY_EXT_MINCCA_PWR);
--	nfarray[3] = sign_extend(nf, 9);
-+	if (IS_CHAN_HT40(ah->curchan))
-+		nfarray[3] = sign_extend(nf, 9);
- 
- 	if (AR_SREV_9285(ah) || AR_SREV_9271(ah))
- 		return;
-@@ -486,7 +487,8 @@ static void ar9002_hw_do_getnf(struct at
- 	nfarray[1] = sign_extend(nf, 9);
- 
- 	nf = MS(REG_READ(ah, AR_PHY_CH1_EXT_CCA), AR9280_PHY_CH1_EXT_MINCCA_PWR);
--	nfarray[4] = sign_extend(nf, 9);
-+	if (IS_CHAN_HT40(ah->curchan))
-+		nfarray[4] = sign_extend(nf, 9);
- }
- 
- static void ar9002_hw_set_nf_limits(struct ath_hw *ah)
---- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c
-@@ -1029,6 +1029,9 @@ static void ar9003_hw_do_getnf(struct at
- 	nf = MS(REG_READ(ah, AR_PHY_CCA_2), AR_PHY_CH2_MINCCA_PWR);
- 	nfarray[2] = sign_extend(nf, 9);
- 
-+	if (!IS_CHAN_HT40(ah->curchan))
-+		return;
-+
- 	nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR);
- 	nfarray[3] = sign_extend(nf, 9);
- 
diff --git a/package/mac80211/patches/531-ath9k_nf_cleanup.patch b/package/mac80211/patches/531-ath9k_nf_cleanup.patch
deleted file mode 100644
index f038559a44..0000000000
--- a/package/mac80211/patches/531-ath9k_nf_cleanup.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/drivers/net/wireless/ath/ath9k/calib.c
-+++ b/drivers/net/wireless/ath/ath9k/calib.c
-@@ -172,26 +172,9 @@ void ath9k_hw_loadnf(struct ath_hw *ah, 
- 	struct ath9k_nfcal_hist *h;
- 	unsigned i, j;
- 	int32_t val;
--	u8 chainmask;
-+	u8 chainmask = (ah->rxchainmask << 3) | ah->rxchainmask;
- 	struct ath_common *common = ath9k_hw_common(ah);
- 
--	if (AR_SREV_9300_20_OR_LATER(ah))
--		chainmask = 0x3F;
--	else if (AR_SREV_9285(ah) || AR_SREV_9271(ah))
--		chainmask = 0x9;
--	else if (AR_SREV_9280(ah) || AR_SREV_9287(ah)) {
--		if ((ah->rxchainmask & 0x2) || (ah->rxchainmask & 0x4))
--			chainmask = 0x1B;
--		else
--			chainmask = 0x09;
--	} else {
--		if (ah->rxchainmask & 0x4)
--			chainmask = 0x3F;
--		else if (ah->rxchainmask & 0x2)
--			chainmask = 0x1B;
--		else
--			chainmask = 0x09;
--	}
- 	h = ah->nfCalHist;
- 
- 	for (i = 0; i < NUM_NF_READINGS; i++) {
diff --git a/package/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch b/package/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch
index cf8a4d510c..b90539e5e6 100644
--- a/package/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch
+++ b/package/mac80211/patches/700-mwl8k-missing-pci-id-for-WNR854T.patch
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/mwl8k.c
 +++ b/drivers/net/wireless/mwl8k.c
-@@ -3882,6 +3882,7 @@ MODULE_FIRMWARE("mwl8k/helper_8366.fw");
+@@ -3884,6 +3884,7 @@ MODULE_FIRMWARE("mwl8k/helper_8366.fw");
  MODULE_FIRMWARE("mwl8k/fmimage_8366.fw");
  
  static DEFINE_PCI_DEVICE_TABLE(mwl8k_pci_id_table) = {
diff --git a/package/mac80211/patches/800-mac80211_aggr_fix.patch b/package/mac80211/patches/800-mac80211_aggr_fix.patch
deleted file mode 100644
index 564bfac068..0000000000
--- a/package/mac80211/patches/800-mac80211_aggr_fix.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/net/mac80211/iface.c
-+++ b/net/mac80211/iface.c
-@@ -756,7 +756,7 @@ static void ieee80211_iface_work(struct 
- 			int len = skb->len;
- 
- 			mutex_lock(&local->sta_mtx);
--			sta = sta_info_get(sdata, mgmt->sa);
-+			sta = sta_info_get_bss(sdata, mgmt->sa);
- 			if (sta) {
- 				switch (mgmt->u.action.u.addba_req.action_code) {
- 				case WLAN_ACTION_ADDBA_REQ:
-@@ -797,7 +797,7 @@ static void ieee80211_iface_work(struct 
- 			 * right, so terminate the session.
- 			 */
- 			mutex_lock(&local->sta_mtx);
--			sta = sta_info_get(sdata, mgmt->sa);
-+			sta = sta_info_get_bss(sdata, mgmt->sa);
- 			if (sta) {
- 				u16 tid = *ieee80211_get_qos_ctl(hdr) &
- 						IEEE80211_QOS_CTL_TID_MASK;
diff --git a/package/mac80211/patches/800-mac80211_scan_callback_revert.patch b/package/mac80211/patches/800-mac80211_scan_callback_revert.patch
new file mode 100644
index 0000000000..904dd3c03b
--- /dev/null
+++ b/package/mac80211/patches/800-mac80211_scan_callback_revert.patch
@@ -0,0 +1,20 @@
+--- a/net/mac80211/scan.c
++++ b/net/mac80211/scan.c
+@@ -287,8 +287,6 @@ void ieee80211_scan_completed(struct iee
+ 	local->scanning = 0;
+ 	local->scan_channel = NULL;
+ 
+-	drv_sw_scan_complete(local);
+-
+ 	/* we only have to protect scan_req and hw/sw scan */
+ 	mutex_unlock(&local->scan_mtx);
+ 
+@@ -298,6 +296,8 @@ void ieee80211_scan_completed(struct iee
+ 
+ 	ieee80211_configure_filter(local);
+ 
++	drv_sw_scan_complete(local);
++
+ 	ieee80211_offchannel_return(local, true);
+ 
+  done:
-- 
cgit v1.2.3