diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/hw.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/hw.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c index ba5734aa46c4..1d71d1ba202c 100644 --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c | |||
@@ -1350,6 +1350,7 @@ static bool ath9k_hw_set_reset_power_on(struct ath_hw *ah) | |||
1350 | 1350 | ||
1351 | static bool ath9k_hw_set_reset_reg(struct ath_hw *ah, u32 type) | 1351 | static bool ath9k_hw_set_reset_reg(struct ath_hw *ah, u32 type) |
1352 | { | 1352 | { |
1353 | bool ret = false; | ||
1353 | 1354 | ||
1354 | if (AR_SREV_9300_20_OR_LATER(ah)) { | 1355 | if (AR_SREV_9300_20_OR_LATER(ah)) { |
1355 | REG_WRITE(ah, AR_WA, ah->WARegVal); | 1356 | REG_WRITE(ah, AR_WA, ah->WARegVal); |
@@ -1361,13 +1362,20 @@ static bool ath9k_hw_set_reset_reg(struct ath_hw *ah, u32 type) | |||
1361 | 1362 | ||
1362 | switch (type) { | 1363 | switch (type) { |
1363 | case ATH9K_RESET_POWER_ON: | 1364 | case ATH9K_RESET_POWER_ON: |
1364 | return ath9k_hw_set_reset_power_on(ah); | 1365 | ret = ath9k_hw_set_reset_power_on(ah); |
1366 | break; | ||
1365 | case ATH9K_RESET_WARM: | 1367 | case ATH9K_RESET_WARM: |
1366 | case ATH9K_RESET_COLD: | 1368 | case ATH9K_RESET_COLD: |
1367 | return ath9k_hw_set_reset(ah, type); | 1369 | ret = ath9k_hw_set_reset(ah, type); |
1370 | break; | ||
1368 | default: | 1371 | default: |
1369 | return false; | 1372 | break; |
1370 | } | 1373 | } |
1374 | |||
1375 | if (ah->caps.hw_caps & ATH9K_HW_CAP_MCI) | ||
1376 | REG_WRITE(ah, AR_RTC_KEEP_AWAKE, 0x2); | ||
1377 | |||
1378 | return ret; | ||
1371 | } | 1379 | } |
1372 | 1380 | ||
1373 | static bool ath9k_hw_chip_reset(struct ath_hw *ah, | 1381 | static bool ath9k_hw_chip_reset(struct ath_hw *ah, |