diff options
Diffstat (limited to 'package/mac80211/patches/550-ath9k_bb_fix.patch')
-rw-r--r-- | package/mac80211/patches/550-ath9k_bb_fix.patch | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/package/mac80211/patches/550-ath9k_bb_fix.patch b/package/mac80211/patches/550-ath9k_bb_fix.patch deleted file mode 100644 index 13eccae7eb..0000000000 --- a/package/mac80211/patches/550-ath9k_bb_fix.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/hw.c -+++ b/drivers/net/wireless/ath/ath9k/hw.c -@@ -1172,6 +1172,34 @@ static bool ath9k_hw_channel_change(stru - return true; - } - -+bool ath9k_hw_check_alive(struct ath_hw *ah) -+{ -+ int count = 50; -+ u32 reg; -+ -+ if (AR_SREV_9285_10_OR_LATER(ah)) -+ return true; -+ -+ do { -+ reg = REG_READ(ah, AR_OBS_BUS_1); -+ -+ if ((reg & 0x7E7FFFEF) == 0x00702400) -+ continue; -+ -+ switch (reg & 0x7E000B00) { -+ case 0x1E000000: -+ case 0x52000B00: -+ case 0x18000B00: -+ continue; -+ default: -+ return true; -+ } -+ } while (count-- > 0); -+ -+ return false; -+} -+EXPORT_SYMBOL(ath9k_hw_check_alive); -+ - int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan, - bool bChannelChange) - { ---- a/drivers/net/wireless/ath/ath9k/hw.h -+++ b/drivers/net/wireless/ath/ath9k/hw.h -@@ -869,6 +869,7 @@ void ath9k_hw_set11nmac2040(struct ath_h - void ath9k_hw_beaconinit(struct ath_hw *ah, u32 next_beacon, u32 beacon_period); - void ath9k_hw_set_sta_beacon_timers(struct ath_hw *ah, - const struct ath9k_beacon_state *bs); -+bool ath9k_hw_check_alive(struct ath_hw *ah); - - bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode); - ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -406,7 +406,8 @@ void ath9k_tasklet(unsigned long data) - - ath9k_ps_wakeup(sc); - -- if (status & ATH9K_INT_FATAL) { -+ if ((status & ATH9K_INT_FATAL) || -+ !ath9k_hw_check_alive(ah)) { - ath_reset(sc, false); - ath9k_ps_restore(sc); - return; |