1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2025-02-02 18:21:06 +02:00

ath9k: use cold reset instead of warm reset on ar9280 to make recovery from stuck states more reliable

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28118 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2011-08-29 12:01:06 +00:00
parent 90d4f59c90
commit cd439b4056

View File

@ -0,0 +1,23 @@
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1368,10 +1368,16 @@ static bool ath9k_hw_set_reset_reg(struc
static bool ath9k_hw_chip_reset(struct ath_hw *ah,
struct ath9k_channel *chan)
{
- if (AR_SREV_9280(ah) && ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL)) {
- if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_POWER_ON))
- return false;
- } else if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_WARM))
+ int reset_type = ATH9K_RESET_WARM;
+
+ if (AR_SREV_9280(ah)) {
+ if (ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL))
+ reset_type = ATH9K_RESET_POWER_ON;
+ else
+ reset_type = ATH9K_RESET_COLD;
+ }
+
+ if (!ath9k_hw_set_reset_reg(ah, reset_type))
return false;
if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE))