mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
ath9k: add some fixes for radio reinit and frame flush
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28772 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
45
package/mac80211/patches/561-ath9k_fix_flush.patch
Normal file
45
package/mac80211/patches/561-ath9k_fix_flush.patch
Normal file
@@ -0,0 +1,45 @@
|
||||
--- a/drivers/net/wireless/ath/ath9k/main.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/main.c
|
||||
@@ -2259,9 +2259,6 @@ static void ath9k_flush(struct ieee80211
|
||||
return;
|
||||
}
|
||||
|
||||
- if (drop)
|
||||
- timeout = 1;
|
||||
-
|
||||
for (j = 0; j < timeout; j++) {
|
||||
bool npend = false;
|
||||
|
||||
@@ -2279,21 +2276,22 @@ static void ath9k_flush(struct ieee80211
|
||||
}
|
||||
|
||||
if (!npend)
|
||||
- goto out;
|
||||
+ break;
|
||||
}
|
||||
|
||||
- ath9k_ps_wakeup(sc);
|
||||
- spin_lock_bh(&sc->sc_pcu_lock);
|
||||
- drain_txq = ath_drain_all_txq(sc, false);
|
||||
- spin_unlock_bh(&sc->sc_pcu_lock);
|
||||
+ if (drop) {
|
||||
+ ath9k_ps_wakeup(sc);
|
||||
+ spin_lock_bh(&sc->sc_pcu_lock);
|
||||
+ drain_txq = ath_drain_all_txq(sc, false);
|
||||
+ spin_unlock_bh(&sc->sc_pcu_lock);
|
||||
|
||||
- if (!drain_txq)
|
||||
- ath_reset(sc, false);
|
||||
+ if (!drain_txq)
|
||||
+ ath_reset(sc, false);
|
||||
|
||||
- ath9k_ps_restore(sc);
|
||||
- ieee80211_wake_queues(hw);
|
||||
+ ath9k_ps_restore(sc);
|
||||
+ ieee80211_wake_queues(hw);
|
||||
+ }
|
||||
|
||||
-out:
|
||||
ieee80211_queue_delayed_work(hw, &sc->tx_complete_work, 0);
|
||||
mutex_unlock(&sc->mutex);
|
||||
}
|
||||
Reference in New Issue
Block a user