mac80211: update to wireless-testing 2012-02-06
[openwrt/svn-archive/archive.git] / package / mac80211 / patches / 541-ath9k_sw_retry_reduce.patch
diff --git a/package/mac80211/patches/541-ath9k_sw_retry_reduce.patch b/package/mac80211/patches/541-ath9k_sw_retry_reduce.patch
deleted file mode 100644 (file)
index d83b663..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
---- a/drivers/net/wireless/ath/ath9k/xmit.c
-+++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -264,14 +264,17 @@ static void ath_tid_drain(struct ath_sof
- }
- static void ath_tx_set_retry(struct ath_softc *sc, struct ath_txq *txq,
--                           struct sk_buff *skb)
-+                           struct sk_buff *skb, int count)
- {
-       struct ath_frame_info *fi = get_frame_info(skb);
-       struct ath_buf *bf = fi->bf;
-       struct ieee80211_hdr *hdr;
-+      int prev = fi->retries;
-       TX_STAT_INC(txq->axq_qnum, a_retries);
--      if (fi->retries++ > 0)
-+      fi->retries += count;
-+
-+      if (prev > 0)
-               return;
-       hdr = (struct ieee80211_hdr *)skb->data;
-@@ -387,6 +390,7 @@ static void ath_tx_complete_aggr(struct 
-       int nframes;
-       u8 tidno;
-       bool flush = !!(ts->ts_status & ATH9K_TX_FLUSH);
-+      int i, retries;
-       skb = bf->bf_mpdu;
-       hdr = (struct ieee80211_hdr *)skb->data;
-@@ -395,6 +399,10 @@ static void ath_tx_complete_aggr(struct 
-       memcpy(rates, tx_info->control.rates, sizeof(rates));
-+      retries = ts->ts_longretry + 1;
-+      for (i = 0; i < ts->ts_rateindex; i++)
-+              retries += rates[i].count;
-+
-       rcu_read_lock();
-       sta = ieee80211_find_sta_by_ifaddr(hw, hdr->addr1, hdr->addr2);
-@@ -481,7 +489,8 @@ static void ath_tx_complete_aggr(struct 
-                               txpending = 1;
-                       } else if (fi->retries < ATH_MAX_SW_RETRIES) {
-                               if (txok || !an->sleeping)
--                                      ath_tx_set_retry(sc, txq, bf->bf_mpdu);
-+                                      ath_tx_set_retry(sc, txq, bf->bf_mpdu,
-+                                                       retries);
-                               txpending = 1;
-                       } else {
---- a/drivers/net/wireless/ath/ath9k/ath9k.h
-+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
-@@ -546,7 +546,7 @@ struct ath_ant_comb {
- #define DEFAULT_CACHELINE       32
- #define ATH_REGCLASSIDS_MAX     10
- #define ATH_CABQ_READY_TIME     80      /* % of beacon interval */
--#define ATH_MAX_SW_RETRIES      10
-+#define ATH_MAX_SW_RETRIES      20
- #define ATH_CHAN_MAX            255
- #define ATH_TXPOWER_MAX         100     /* .5 dBm units */