forked from freifunk-franken/firmware
backport aa r36052: ath9k: add a fix to reduce the number of spurious tx hang detections
This commit is contained in:
parent
360f4812d0
commit
749cb7fcce
|
@ -2071,3 +2071,40 @@
|
|||
#define ATH_RSSI_LPF_LEN 10
|
||||
#define RSSI_LPF_THRESHOLD -20
|
||||
#define ATH_RSSI_EP_MULTIPLIER (1<<7)
|
||||
--- a/drivers/net/wireless/ath/ath9k/link.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/link.c
|
||||
@@ -31,21 +31,21 @@ void ath_tx_complete_poll_work(struct wo
|
||||
sc->tx_complete_poll_work_seen++;
|
||||
#endif
|
||||
|
||||
- for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++)
|
||||
- if (ATH_TXQ_SETUP(sc, i)) {
|
||||
- txq = &sc->tx.txq[i];
|
||||
- ath_txq_lock(sc, txq);
|
||||
- if (txq->axq_depth) {
|
||||
- if (txq->axq_tx_inprogress) {
|
||||
- needreset = true;
|
||||
- ath_txq_unlock(sc, txq);
|
||||
- break;
|
||||
- } else {
|
||||
- txq->axq_tx_inprogress = true;
|
||||
- }
|
||||
+ for (i = 0; i < IEEE80211_NUM_ACS; i++) {
|
||||
+ txq = sc->tx.txq_map[i];
|
||||
+
|
||||
+ ath_txq_lock(sc, txq);
|
||||
+ if (txq->axq_depth) {
|
||||
+ if (txq->axq_tx_inprogress) {
|
||||
+ needreset = true;
|
||||
+ ath_txq_unlock(sc, txq);
|
||||
+ break;
|
||||
+ } else {
|
||||
+ txq->axq_tx_inprogress = true;
|
||||
}
|
||||
- ath_txq_unlock_complete(sc, txq);
|
||||
}
|
||||
+ ath_txq_unlock_complete(sc, txq);
|
||||
+ }
|
||||
|
||||
if (needreset) {
|
||||
ath_dbg(ath9k_hw_common(sc->sc_ah), RESET,
|
||||
|
|
Loading…
Reference in New Issue