ath9k: backport ar913x fixes from r26167, r26168
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 15 Mar 2011 02:37:55 +0000 (02:37 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 15 Mar 2011 02:37:55 +0000 (02:37 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@26172 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/mac80211/patches/574-ath9k_ar9100_blockack_fix.patch [new file with mode: 0644]
package/mac80211/patches/575-ath9k_ar9100_rx_chainmask_fix.patch [new file with mode: 0644]

diff --git a/package/mac80211/patches/574-ath9k_ar9100_blockack_fix.patch b/package/mac80211/patches/574-ath9k_ar9100_blockack_fix.patch
new file mode 100644 (file)
index 0000000..2a09f7f
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -411,6 +411,8 @@ static void ath9k_hw_init_defaults(struc
+       ah->sta_id1_defaults =
+               AR_STA_ID1_CRPT_MIC_ENABLE |
+               AR_STA_ID1_MCAST_KSRCH;
++      if (AR_SREV_9100(ah))
++              ah->sta_id1_defaults |= AR_STA_ID1_AR9100_BA_FIX;
+       ah->enable_32kHz_clock = DONT_USE_32KHZ;
+       ah->slottime = 20;
+       ah->globaltxtimeout = (u32) -1;
+--- a/drivers/net/wireless/ath/ath9k/reg.h
++++ b/drivers/net/wireless/ath/ath9k/reg.h
+@@ -1396,6 +1396,7 @@ enum {
+ #define AR_STA_ID1_PCF             0x00100000
+ #define AR_STA_ID1_USE_DEFANT      0x00200000
+ #define AR_STA_ID1_DEFANT_UPDATE   0x00400000
++#define AR_STA_ID1_AR9100_BA_FIX   0x00400000
+ #define AR_STA_ID1_RTS_USE_DEF     0x00800000
+ #define AR_STA_ID1_ACKCTS_6MB      0x01000000
+ #define AR_STA_ID1_BASE_RATE_11B   0x02000000
diff --git a/package/mac80211/patches/575-ath9k_ar9100_rx_chainmask_fix.patch b/package/mac80211/patches/575-ath9k_ar9100_rx_chainmask_fix.patch
new file mode 100644 (file)
index 0000000..fb06f01
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -1878,6 +1878,8 @@ int ath9k_hw_fill_cap_info(struct ath_hw
+           !(AR_SREV_9271(ah)))
+               /* CB71: GPIO 0 is pulled down to indicate 3 rx chains */
+               pCap->rx_chainmask = ath9k_hw_gpio_get(ah, 0) ? 0x5 : 0x7;
++      else if (AR_SREV_9100(ah))
++              pCap->rx_chainmask = 0x7;
+       else
+               /* Use rx_chainmask from EEPROM. */
+               pCap->rx_chainmask = ah->eep_ops->get_eeprom(ah, EEP_RX_MASK);