mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-02 19:00:39 +02:00
a677ddc38d
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28151 3c298f89-4303-0410-b956-a3cf2f4a3e73
31 lines
826 B
Diff
31 lines
826 B
Diff
--- a/drivers/net/wireless/ath/ath9k/main.c
|
|
+++ b/drivers/net/wireless/ath/ath9k/main.c
|
|
@@ -667,15 +667,15 @@ void ath9k_tasklet(unsigned long data)
|
|
u32 status = sc->intrstatus;
|
|
u32 rxmask;
|
|
|
|
+ ath9k_ps_wakeup(sc);
|
|
+ spin_lock(&sc->sc_pcu_lock);
|
|
+
|
|
if ((status & ATH9K_INT_FATAL) ||
|
|
(status & ATH9K_INT_BB_WATCHDOG)) {
|
|
ieee80211_queue_work(sc->hw, &sc->hw_reset_work);
|
|
- return;
|
|
+ goto out;
|
|
}
|
|
|
|
- ath9k_ps_wakeup(sc);
|
|
- spin_lock(&sc->sc_pcu_lock);
|
|
-
|
|
/*
|
|
* Only run the baseband hang check if beacons stop working in AP or
|
|
* IBSS mode, because it has a high false positive rate. For station
|
|
@@ -723,6 +723,7 @@ void ath9k_tasklet(unsigned long data)
|
|
if (status & ATH9K_INT_GENTIMER)
|
|
ath_gen_timer_isr(sc->sc_ah);
|
|
|
|
+out:
|
|
/* re-enable hardware interrupt */
|
|
ath9k_hw_enable_interrupts(ah);
|
|
|