1 --- a/drivers/net/wireless/ath/ath9k/hw.c
2 +++ b/drivers/net/wireless/ath/ath9k/hw.c
3 @@ -1374,7 +1374,10 @@ static bool ath9k_hw_set_reset(struct at
5 REGWRITE_BUFFER_FLUSH(ah);
8 + if (AR_SREV_9100(ah))
13 REG_WRITE(ah, AR_RTC_RC, 0);
14 if (!ath9k_hw_wait(ah, AR_RTC_RC, AR_RTC_RC_M, 0, AH_WAIT_TIMEOUT)) {
15 @@ -1385,8 +1388,12 @@ static bool ath9k_hw_set_reset(struct at
16 if (!AR_SREV_9100(ah))
17 REG_WRITE(ah, AR_RC, 0);
19 - if (AR_SREV_9100(ah))
20 + if (AR_SREV_9100(ah) && type != ATH9K_RESET_WARM) {
21 + if (ah->external_reset)
22 + ah->external_reset();