iperf3: update to version 3.1.3
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / 320-ath9k-Switch-to-using-mac80211-intermediate-software.patch
index 6ecf08ae7f0694a4aacb4c7dd12054ecda5dafa7..f8b8f86e03ba0786ef410db31d6de2ab691430bd 100644 (file)
@@ -640,12 +640,14 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
                txq = tid->txq;
  
                ath_txq_lock(sc, txq);
-@@ -1567,13 +1576,9 @@ void ath_tx_aggr_sleep(struct ieee80211_
+@@ -1567,13 +1576,12 @@ void ath_tx_aggr_sleep(struct ieee80211_
                        continue;
                }
  
 -              buffered = ath_tid_has_buffered(tid);
--
++              if (!skb_queue_empty(&tid->retry_q))
++                      ieee80211_sta_set_buffered(sta, tid->tidno, true);
                list_del_init(&tid->list);
  
                ath_txq_unlock(sc, txq);
@@ -654,7 +656,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
        }
  }
  
-@@ -1586,19 +1591,12 @@ void ath_tx_aggr_wakeup(struct ath_softc
+@@ -1586,19 +1594,16 @@ void ath_tx_aggr_wakeup(struct ath_softc
  
        ath_dbg(common, XMIT, "%s called\n", __func__);
  
@@ -668,15 +670,15 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
                ath_txq_lock(sc, txq);
                tid->clear_ps_filter = true;
 -
--              if (ath_tid_has_buffered(tid)) {
--                      ath_tx_queue_tid(sc, txq, tid);
--                      ath_txq_schedule(sc, txq);
--              }
+               if (ath_tid_has_buffered(tid)) {
+                       ath_tx_queue_tid(sc, txq, tid);
+                       ath_txq_schedule(sc, txq);
+               }
 -
                ath_txq_unlock_complete(sc, txq);
        }
  }
-@@ -1621,11 +1619,6 @@ void ath_tx_aggr_resume(struct ath_softc
+@@ -1621,11 +1626,6 @@ void ath_tx_aggr_resume(struct ath_softc
  
        tid->baw_size = IEEE80211_MIN_AMPDU_BUF << sta->ht_cap.ampdu_factor;
  
@@ -688,7 +690,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
        ath_txq_unlock_complete(sc, txq);
  }
  
-@@ -1641,7 +1634,6 @@ void ath9k_release_buffered_frames(struc
+@@ -1641,7 +1641,6 @@ void ath9k_release_buffered_frames(struc
        struct ieee80211_tx_info *info;
        struct list_head bf_q;
        struct ath_buf *bf_tail = NULL, *bf;
@@ -696,7 +698,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
        int sent = 0;
        int i;
  
-@@ -1656,11 +1648,10 @@ void ath9k_release_buffered_frames(struc
+@@ -1656,11 +1655,10 @@ void ath9k_release_buffered_frames(struc
  
                ath_txq_lock(sc, tid->txq);
                while (nframes > 0) {
@@ -709,7 +711,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
                        list_add_tail(&bf->list, &bf_q);
                        ath_set_rates(tid->an->vif, tid->an->sta, bf, true);
                        if (bf_isampdu(bf)) {
-@@ -1675,7 +1666,7 @@ void ath9k_release_buffered_frames(struc
+@@ -1675,7 +1673,7 @@ void ath9k_release_buffered_frames(struc
                        sent++;
                        TX_STAT_INC(txq->axq_qnum, a_queued_hw);
  
@@ -718,7 +720,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
                                ieee80211_sta_set_buffered(an->sta, i, false);
                }
                ath_txq_unlock_complete(sc, tid->txq);
-@@ -1902,13 +1893,7 @@ bool ath_drain_all_txq(struct ath_softc
+@@ -1902,13 +1900,7 @@ bool ath_drain_all_txq(struct ath_softc
                if (!ATH_TXQ_SETUP(sc, i))
                        continue;
  
@@ -732,7 +734,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
                ath_draintxq(sc, txq);
        }
  
-@@ -2308,15 +2293,12 @@ int ath_tx_start(struct ieee80211_hw *hw
+@@ -2308,15 +2300,12 @@ int ath_tx_start(struct ieee80211_hw *hw
        struct ath_txq *txq = txctl->txq;
        struct ath_atx_tid *tid = NULL;
        struct ath_buf *bf;
@@ -749,7 +751,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
        ps_resp = !!(info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE);
  
        ret = ath_tx_prepare(hw, skb, txctl);
-@@ -2331,63 +2313,13 @@ int ath_tx_start(struct ieee80211_hw *hw
+@@ -2331,63 +2320,13 @@ int ath_tx_start(struct ieee80211_hw *hw
  
        q = skb_get_queue_mapping(skb);
  
@@ -817,7 +819,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
        }
  
        bf = ath_tx_setup_buffer(sc, txq, tid, skb);
-@@ -2871,9 +2803,8 @@ void ath_tx_node_init(struct ath_softc *
+@@ -2871,9 +2810,8 @@ void ath_tx_node_init(struct ath_softc *
        struct ath_atx_tid *tid;
        int tidno, acno;
  
@@ -829,7 +831,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
                tid->an        = an;
                tid->tidno     = tidno;
                tid->seq_start = tid->seq_next = 0;
-@@ -2881,11 +2812,14 @@ void ath_tx_node_init(struct ath_softc *
+@@ -2881,11 +2819,14 @@ void ath_tx_node_init(struct ath_softc *
                tid->baw_head  = tid->baw_tail = 0;
                tid->active        = false;
                tid->clear_ps_filter = true;
@@ -845,7 +847,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
        }
  }
  
-@@ -2895,9 +2829,8 @@ void ath_tx_node_cleanup(struct ath_soft
+@@ -2895,9 +2836,8 @@ void ath_tx_node_cleanup(struct ath_soft
        struct ath_txq *txq;
        int tidno;
  
@@ -857,7 +859,7 @@ Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
                txq = tid->txq;
  
                ath_txq_lock(sc, txq);
-@@ -2909,6 +2842,9 @@ void ath_tx_node_cleanup(struct ath_soft
+@@ -2909,6 +2849,9 @@ void ath_tx_node_cleanup(struct ath_soft
                tid->active = false;
  
                ath_txq_unlock(sc, txq);