aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-05-12 17:41:05 +0000
committerFelix Fietkau <nbd@openwrt.org>2012-05-12 17:41:05 +0000
commit6c1cdabe5130e808400363a0f3944a8fa1d739b7 (patch)
treefc955ceb0ec6720741b41ffa9f7c37e158ac1a1c
parent2b8c75f0c141361e7777bb3b7ce311f7deb4299b (diff)
downloadmaster-187ad058-6c1cdabe5130e808400363a0f3944a8fa1d739b7.tar.gz
master-187ad058-6c1cdabe5130e808400363a0f3944a8fa1d739b7.tar.bz2
master-187ad058-6c1cdabe5130e808400363a0f3944a8fa1d739b7.zip
ath9k: fix ar9330 internal regulator setup
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31692 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/mac80211/patches/563-ath9k_fix_ar9330_internal_regulator.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/package/mac80211/patches/563-ath9k_fix_ar9330_internal_regulator.patch b/package/mac80211/patches/563-ath9k_fix_ar9330_internal_regulator.patch
new file mode 100644
index 0000000000..8df5e736b2
--- /dev/null
+++ b/package/mac80211/patches/563-ath9k_fix_ar9330_internal_regulator.patch
@@ -0,0 +1,33 @@
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+@@ -3809,7 +3809,7 @@ static bool is_pmu_set(struct ath_hw *ah
+ return true;
+ }
+
+-static void ar9003_hw_internal_regulator_apply(struct ath_hw *ah)
++void ar9003_hw_internal_regulator_apply(struct ath_hw *ah)
+ {
+ int internal_regulator =
+ ath9k_hw_ar9300_get_eeprom(ah, EEP_INTERNAL_REGULATOR);
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
+@@ -334,4 +334,7 @@ u8 *ar9003_get_spur_chan_ptr(struct ath_
+
+ unsigned int ar9003_get_paprd_scale_factor(struct ath_hw *ah,
+ struct ath9k_channel *chan);
++
++void ar9003_hw_internal_regulator_apply(struct ath_hw *ah);
++
+ #endif
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -1477,6 +1477,9 @@ static bool ath9k_hw_chip_reset(struct a
+ return false;
+
+ ah->chip_fullsleep = false;
++
++ if (AR_SREV_9330(ah))
++ ar9003_hw_internal_regulator_apply(ah);
+ ath9k_hw_init_pll(ah, chan);
+ ath9k_hw_set_rfmode(ah, chan);
+