ath9k: fix ar9330 internal regulator setup
[openwrt/svn-archive/archive.git] / package / mac80211 / patches / 563-ath9k_fix_ar9330_internal_regulator.patch
1 --- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
2 +++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3 @@ -3809,7 +3809,7 @@ static bool is_pmu_set(struct ath_hw *ah
4 return true;
5 }
6
7 -static void ar9003_hw_internal_regulator_apply(struct ath_hw *ah)
8 +void ar9003_hw_internal_regulator_apply(struct ath_hw *ah)
9 {
10 int internal_regulator =
11 ath9k_hw_ar9300_get_eeprom(ah, EEP_INTERNAL_REGULATOR);
12 --- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
13 +++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
14 @@ -334,4 +334,7 @@ u8 *ar9003_get_spur_chan_ptr(struct ath_
15
16 unsigned int ar9003_get_paprd_scale_factor(struct ath_hw *ah,
17 struct ath9k_channel *chan);
18 +
19 +void ar9003_hw_internal_regulator_apply(struct ath_hw *ah);
20 +
21 #endif
22 --- a/drivers/net/wireless/ath/ath9k/hw.c
23 +++ b/drivers/net/wireless/ath/ath9k/hw.c
24 @@ -1477,6 +1477,9 @@ static bool ath9k_hw_chip_reset(struct a
25 return false;
26
27 ah->chip_fullsleep = false;
28 +
29 + if (AR_SREV_9330(ah))
30 + ar9003_hw_internal_regulator_apply(ah);
31 ath9k_hw_init_pll(ah, chan);
32 ath9k_hw_set_rfmode(ah, chan);
33