浏览代码

ath9k_hw: dynamically choose the SERDES array for low power

The array we use will vary depending on whether or not we are
to go to lower power or not. The default values (iniPcieSerdes)
are a copy or what go into the registers through the INI files.

Cc: Aeolus Yang <aeolus.yang@atheros.com>
Cc: Madhan Jaganathan <madhan.jaganathan@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Luis R. Rodriguez 15 年之前
父节点
当前提交
d5c4d1930c
共有 1 个文件被更改,包括 7 次插入3 次删除
  1. 7 3
      drivers/net/wireless/ath/ath9k/ar9003_hw.c

+ 7 - 3
drivers/net/wireless/ath/ath9k/ar9003_hw.c

@@ -305,11 +305,15 @@ static void ar9003_hw_configpcipowersave(struct ath_hw *ah,
 	 */
 	if (ah->config.pcieSerDesWrite) {
 		unsigned int i;
+		struct ar5416IniArray *array;
 
-		for (i = 0; i < ah->iniPcieSerdesLowPower.ia_rows; i++) {
+		array = power_off ? &ah->iniPcieSerdes :
+				    &ah->iniPcieSerdesLowPower;
+
+		for (i = 0; i < array->ia_rows; i++) {
 			REG_WRITE(ah,
-				  INI_RA(&ah->iniPcieSerdesLowPower, i, 0),
-				  INI_RA(&ah->iniPcieSerdesLowPower, i, 1));
+				  INI_RA(array, i, 0),
+				  INI_RA(array, i, 1));
 		}
 	}
 }