summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/531-ath9k_paprd_rate_mask.patch
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-12-12 01:15:38 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-12-12 01:15:38 +0000
commita186e3031eebfb86e0ee43250fc4e1a91ca2f890 (patch)
treecf33b5c9686d4796c727af582c523dfe99af3f04 /package/mac80211/patches/531-ath9k_paprd_rate_mask.patch
parent2e3a7d5dc74459c68f87838939a5b74bc17189c6 (diff)
ath9k: fix a few issues with pa predistortion on ar9003
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24504 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/531-ath9k_paprd_rate_mask.patch')
-rw-r--r--package/mac80211/patches/531-ath9k_paprd_rate_mask.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/package/mac80211/patches/531-ath9k_paprd_rate_mask.patch b/package/mac80211/patches/531-ath9k_paprd_rate_mask.patch
new file mode 100644
index 000000000..153fb90a1
--- /dev/null
+++ b/package/mac80211/patches/531-ath9k_paprd_rate_mask.patch
@@ -0,0 +1,28 @@
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
+@@ -31,6 +31,12 @@
+ #define AR9300_ANT_16S 25
+ #define AR9300_FUTURE_MODAL_SZ 6
+
++#define AR9300_PAPRD_RATE_MASK 0x01ffffff
++#define AR9300_PAPRD_SCALE_1 0x0e000000
++#define AR9300_PAPRD_SCALE_1_S 25
++#define AR9300_PAPRD_SCALE_2 0x70000000
++#define AR9300_PAPRD_SCALE_2_S 28
++
+ /* Delta from which to start power to pdadc table */
+ /* This offset is used in both open loop and closed loop power control
+ * schemes. In open loop power control, it is not really needed, but for
+--- a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c
+@@ -52,8 +52,8 @@ static void ar9003_paprd_setup_single_ta
+ else
+ hdr = &eep->modalHeader2G;
+
+- am_mask = le32_to_cpu(hdr->papdRateMaskHt20);
+- ht40_mask = le32_to_cpu(hdr->papdRateMaskHt40);
++ am_mask = le32_to_cpu(hdr->papdRateMaskHt20) & AR9300_PAPRD_RATE_MASK;
++ ht40_mask = le32_to_cpu(hdr->papdRateMaskHt40) & AR9300_PAPRD_RATE_MASK;
+
+ REG_RMW_FIELD(ah, AR_PHY_PAPRD_AM2AM, AR_PHY_PAPRD_AM2AM_MASK, am_mask);
+ REG_RMW_FIELD(ah, AR_PHY_PAPRD_AM2PM, AR_PHY_PAPRD_AM2PM_MASK, am_mask);