Changeset 28344


Ignore:
Timestamp:
2011-10-01T00:23:35+02:00 (6 years ago)
Author:
nbd
Message:

ath9k: add some more fixes to AP handling of buffered frames for powersave clients

Location:
trunk/package/mac80211/patches
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/patches/572-ath9k_fix_tx_retry.patch

    r28301 r28344  
    11--- a/drivers/net/wireless/ath/ath9k/xmit.c 
    22+++ b/drivers/net/wireless/ath/ath9k/xmit.c 
    3 @@ -484,7 +484,7 @@ static void ath_tx_complete_aggr(struct  
     3@@ -387,7 +387,6 @@ static void ath_tx_complete_aggr(struct  
     4        struct ath_frame_info *fi; 
     5        int nframes; 
     6        u8 tidno; 
     7-       bool clear_filter; 
     8        int i, retries; 
     9  
     10        skb = bf->bf_mpdu; 
     11@@ -484,12 +483,10 @@ static void ath_tx_complete_aggr(struct  
    412                                 */ 
    513                                txfail = 1; 
    614                        } else if (fi->retries < ATH_MAX_SW_RETRIES) { 
    715-                               if (!(ts->ts_status & ATH9K_TXERR_FILT) || 
    8 +                               if (!(ts->ts_status & ATH9K_TXERR_FILT) && 
    9                                     !an->sleeping) 
     16-                                   !an->sleeping) 
     17+                               if (txok || !an->sleeping) 
    1018                                        ath_tx_set_retry(sc, txq, bf->bf_mpdu, 
    1119                                                         retries); 
     20  
     21-                               clear_filter = true; 
     22                                txpending = 1; 
     23                        } else { 
     24                                txfail = 1; 
     25@@ -568,11 +565,13 @@ static void ath_tx_complete_aggr(struct  
     26                        ieee80211_sta_set_tim(sta); 
     27  
     28                spin_lock_bh(&txq->axq_lock); 
     29-               if (clear_filter) 
     30-                       tid->ac->clear_ps_filter = true; 
     31                skb_queue_splice(&bf_pending, &tid->buf_q); 
     32-               if (!an->sleeping) 
     33+               if (!an->sleeping) { 
     34                        ath_tx_queue_tid(txq, tid); 
     35+ 
     36+                       if (ts->ts_status & ATH9K_TXERR_FILT) 
     37+                               tid->ac->clear_ps_filter = true; 
     38+               } 
     39                spin_unlock_bh(&txq->axq_lock); 
     40        } 
     41  
  • trunk/package/mac80211/patches/573-ath9k_fix_tx_flush_bar.patch

    r28301 r28344  
    1515--- a/drivers/net/wireless/ath/ath9k/xmit.c 
    1616+++ b/drivers/net/wireless/ath/ath9k/xmit.c 
    17 @@ -389,6 +389,7 @@ static void ath_tx_complete_aggr(struct  
     17@@ -388,6 +388,7 @@ static void ath_tx_complete_aggr(struct  
     18        int nframes; 
    1819        u8 tidno; 
    19         bool clear_filter; 
    2020        int i, retries; 
    2121+       bool flush = !!(ts->ts_status & ATH9K_TX_FLUSH); 
     
    2323        skb = bf->bf_mpdu; 
    2424        hdr = (struct ieee80211_hdr *)skb->data; 
    25 @@ -483,6 +484,8 @@ static void ath_tx_complete_aggr(struct  
     25@@ -482,6 +483,8 @@ static void ath_tx_complete_aggr(struct  
    2626                                 * the un-acked sub-frames 
    2727                                 */ 
     
    3030+                               txpending = 1; 
    3131                        } else if (fi->retries < ATH_MAX_SW_RETRIES) { 
    32                                 if (!(ts->ts_status & ATH9K_TXERR_FILT) && 
    33                                     !an->sleeping) 
    34 @@ -543,7 +546,8 @@ static void ath_tx_complete_aggr(struct  
     32                                if (txok || !an->sleeping) 
     33                                        ath_tx_set_retry(sc, txq, bf->bf_mpdu, 
     34@@ -540,7 +543,8 @@ static void ath_tx_complete_aggr(struct  
    3535  
    3636                                                ath_tx_complete_buf(sc, bf, txq, 
     
    4242                                                break; 
    4343                                        } 
    44 @@ -1447,6 +1451,7 @@ static void ath_drain_txq_list(struct at 
     44@@ -1446,6 +1450,7 @@ static void ath_drain_txq_list(struct at 
    4545        struct ath_tx_status ts; 
    4646  
Note: See TracChangeset for help on using the changeset viewer.