forked from freifunk-franken/firmware
29 lines
652 B
Diff
29 lines
652 B
Diff
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
|
+++ b/drivers/net/wireless/ath/ath9k/hw.c
|
|
@@ -1374,7 +1374,10 @@ static bool ath9k_hw_set_reset(struct at
|
|
|
|
REGWRITE_BUFFER_FLUSH(ah);
|
|
|
|
- udelay(50);
|
|
+ if (AR_SREV_9100(ah))
|
|
+ mdelay(10);
|
|
+ else
|
|
+ udelay(50);
|
|
|
|
REG_WRITE(ah, AR_RTC_RC, 0);
|
|
if (!ath9k_hw_wait(ah, AR_RTC_RC, AR_RTC_RC_M, 0, AH_WAIT_TIMEOUT)) {
|
|
@@ -1385,8 +1388,12 @@ static bool ath9k_hw_set_reset(struct at
|
|
if (!AR_SREV_9100(ah))
|
|
REG_WRITE(ah, AR_RC, 0);
|
|
|
|
- if (AR_SREV_9100(ah))
|
|
+ if (AR_SREV_9100(ah) && type != ATH9K_RESET_WARM) {
|
|
+ if (ah->external_reset)
|
|
+ ah->external_reset();
|
|
+
|
|
udelay(50);
|
|
+ }
|
|
|
|
return true;
|
|
}
|