From 0d3c7b5617ab01136c39d7539cc284a749279544 Mon Sep 17 00:00:00 2001 From: nbd Date: Tue, 15 Mar 2011 02:37:55 +0000 Subject: [PATCH] ath9k: backport ar913x fixes from r26167, r26168 git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@26172 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../574-ath9k_ar9100_blockack_fix.patch | 21 +++++++++++++++++++ .../575-ath9k_ar9100_rx_chainmask_fix.patch | 11 ++++++++++ 2 files changed, 32 insertions(+) create mode 100644 package/mac80211/patches/574-ath9k_ar9100_blockack_fix.patch create mode 100644 package/mac80211/patches/575-ath9k_ar9100_rx_chainmask_fix.patch 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 index 000000000..2a09f7fc3 --- /dev/null +++ b/package/mac80211/patches/574-ath9k_ar9100_blockack_fix.patch @@ -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 index 000000000..fb06f01ec --- /dev/null +++ b/package/mac80211/patches/575-ath9k_ar9100_rx_chainmask_fix.patch @@ -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);