aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>2012-07-10 05:25:54 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-07-12 15:27:16 -0400
commit3b604b6cf811ba14e4c2bb3005e29bb2fba77af0 (patch)
treef97218421b12481a1d26d121be3af7eac5e46e87 /drivers
parent9f11e16edc6ee50e69fd32f0fdb75e520e55debb (diff)
ath9k_hw: INI changes for WoW for AR9002 chipsets
for AR9002 family of chipsets and for WoW sleep, we reprogram the SerDes so that the PLL and CHK REQ are both enabled. this uses more power but in certain cases this is required as otherwise WoW sleep is unstable and chip may disappear. Cc: Senthil Balasubramanian <senthilb@qca.qualcomm.com> Cc: Rajkumar Manoharan <rmanohar@qca.qualcomm.com> Cc: vadivel@qca.qualcomm.com Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com> Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_hw.c5
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_initvals.h14
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.h3
3 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_hw.c b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
index edf21ea4fe9..0e6ee60aed0 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_hw.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
@@ -43,6 +43,11 @@ static void ar9002_hw_init_mode_regs(struct ath_hw *ah)
43 INIT_INI_ARRAY(&ah->iniPcieSerdes, 43 INIT_INI_ARRAY(&ah->iniPcieSerdes,
44 ar9280PciePhy_clkreq_always_on_L1_9280, 44 ar9280PciePhy_clkreq_always_on_L1_9280,
45 ARRAY_SIZE(ar9280PciePhy_clkreq_always_on_L1_9280), 2); 45 ARRAY_SIZE(ar9280PciePhy_clkreq_always_on_L1_9280), 2);
46#ifdef CONFIG_PM_SLEEP
47 INIT_INI_ARRAY(&ah->iniPcieSerdesWow,
48 ar9280PciePhy_awow,
49 ARRAY_SIZE(ar9280PciePhy_awow), 2);
50#endif
46 51
47 if (AR_SREV_9287_11_OR_LATER(ah)) { 52 if (AR_SREV_9287_11_OR_LATER(ah)) {
48 INIT_INI_ARRAY(&ah->iniModes, ar9287Modes_9287_1_1, 53 INIT_INI_ARRAY(&ah->iniModes, ar9287Modes_9287_1_1,
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_initvals.h b/drivers/net/wireless/ath/ath9k/ar9002_initvals.h
index 4d18c66a679..beb6162cf97 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_initvals.h
+++ b/drivers/net/wireless/ath/ath9k/ar9002_initvals.h
@@ -925,6 +925,20 @@ static const u32 ar9280PciePhy_clkreq_always_on_L1_9280[][2] = {
925 {0x00004044, 0x00000000}, 925 {0x00004044, 0x00000000},
926}; 926};
927 927
928static const u32 ar9280PciePhy_awow[][2] = {
929 /* Addr allmodes */
930 {0x00004040, 0x9248fd00},
931 {0x00004040, 0x24924924},
932 {0x00004040, 0xa8000019},
933 {0x00004040, 0x13160820},
934 {0x00004040, 0xe5980560},
935 {0x00004040, 0xc01dcffd},
936 {0x00004040, 0x1aaabe41},
937 {0x00004040, 0xbe105554},
938 {0x00004040, 0x00043007},
939 {0x00004044, 0x00000000},
940};
941
928static const u32 ar9285Modes_9285_1_2[][5] = { 942static const u32 ar9285Modes_9285_1_2[][5] = {
929 /* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */ 943 /* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */
930 {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160}, 944 {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160},
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index 09f6c076017..51589fd8a3e 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -860,6 +860,9 @@ struct ath_hw {
860 struct ar5416IniArray iniBank7; 860 struct ar5416IniArray iniBank7;
861 struct ar5416IniArray iniAddac; 861 struct ar5416IniArray iniAddac;
862 struct ar5416IniArray iniPcieSerdes; 862 struct ar5416IniArray iniPcieSerdes;
863#ifdef CONFIG_PM_SLEEP
864 struct ar5416IniArray iniPcieSerdesWow;
865#endif
863 struct ar5416IniArray iniPcieSerdesLowPower; 866 struct ar5416IniArray iniPcieSerdesLowPower;
864 struct ar5416IniArray iniModesFastClock; 867 struct ar5416IniArray iniModesFastClock;
865 struct ar5416IniArray iniAdditional; 868 struct ar5416IniArray iniAdditional;