mirror of
https://github.com/torvalds/linux.git
synced 2024-12-20 18:11:47 +00:00
ath9k_hw: use cold instead of warm reset on AR9280
Cold reset is more reliable for getting the hardware out of some specific stuck states. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
fcff4f108d
commit
9c083af868
@ -1386,10 +1386,16 @@ static bool ath9k_hw_set_reset_reg(struct ath_hw *ah, u32 type)
|
||||
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))
|
||||
|
Loading…
Reference in New Issue
Block a user