Changeset 25779


Ignore:
Timestamp:
2011-02-27T22:46:15+01:00 (7 years ago)
Author:
nbd
Message:

mac80211: improve ath9k AP A-MPDU PS buffering

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

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/patches/530-mac80211_drv_tim_override.patch

    r25749 r25779  
    11--- a/include/net/mac80211.h 
    22+++ b/include/net/mac80211.h 
    3 @@ -2209,6 +2209,20 @@ static inline int ieee80211_sta_ps_trans 
     3@@ -2209,6 +2209,18 @@ static inline int ieee80211_sta_ps_trans 
    44 #define IEEE80211_TX_STATUS_HEADROOM   13 
    55  
     
    1111+ * to wake up using the TIM bitmap in the beacon. 
    1212+ * 
    13 + * This function sets the station's TIM bit - it will be cleared automatically 
    14 + * either when the station wakes up (and mac80211 has flushed out its 
    15 + * buffered frames), or if all remaining buffered frames in mac80211 have 
    16 + * timed out. 
     13+ * This function sets the station's TIM bit - it will be cleared when the 
     14+ * station wakes up. 
    1715+ */ 
    1816+void ieee80211_sta_set_tim(struct ieee80211_sta *sta); 
     
    2422--- a/net/mac80211/sta_info.c 
    2523+++ b/net/mac80211/sta_info.c 
    26 @@ -991,3 +991,11 @@ void ieee80211_sta_block_awake(struct ie 
     24@@ -608,7 +608,8 @@ static bool sta_info_cleanup_expire_buff 
     25 #endif 
     26                dev_kfree_skb(skb); 
     27  
     28-               if (skb_queue_empty(&sta->ps_tx_buf)) 
     29+               if (skb_queue_empty(&sta->ps_tx_buf) && 
     30+                   !test_sta_flags(sta, WLAN_STA_PS_DRIVER_BUF)) 
     31                        sta_info_clear_tim_bit(sta); 
     32        } 
     33  
     34@@ -899,6 +900,7 @@ void ieee80211_sta_ps_deliver_wakeup(str 
     35        struct ieee80211_local *local = sdata->local; 
     36        int sent, buffered; 
     37  
     38+       clear_sta_flags(sta, WLAN_STA_PS_DRIVER_BUF); 
     39        if (!(local->hw.flags & IEEE80211_HW_AP_LINK_PS)) 
     40                drv_sta_notify(local, sdata, STA_NOTIFY_AWAKE, &sta->sta); 
     41  
     42@@ -991,3 +993,12 @@ void ieee80211_sta_block_awake(struct ie 
    2743                ieee80211_queue_work(hw, &sta->drv_unblock_wk); 
    2844 } 
     
    3349+       struct sta_info *sta = container_of(pubsta, struct sta_info, sta); 
    3450+ 
     51+       set_sta_flags(sta, WLAN_STA_PS_DRIVER_BUF); 
    3552+       sta_info_set_tim_bit(sta); 
    3653+} 
    3754+EXPORT_SYMBOL(ieee80211_sta_set_tim); 
     55--- a/net/mac80211/sta_info.h 
     56+++ b/net/mac80211/sta_info.h 
     57@@ -43,6 +43,8 @@ 
     58  *     be in the queues 
     59  * @WLAN_STA_PSPOLL: Station sent PS-poll while driver was keeping 
     60  *     station in power-save mode, reply when the driver unblocks. 
     61+ * @WLAN_STA_PS_DRIVER_BUF: Station has frames pending in driver internal 
     62+ *     buffers. Automatically cleared on station wake-up. 
     63  */ 
     64 enum ieee80211_sta_info_flags { 
     65        WLAN_STA_AUTH           = 1<<0, 
     66@@ -58,6 +60,7 @@ enum ieee80211_sta_info_flags { 
     67        WLAN_STA_BLOCK_BA       = 1<<11, 
     68        WLAN_STA_PS_DRIVER      = 1<<12, 
     69        WLAN_STA_PSPOLL         = 1<<13, 
     70+       WLAN_STA_PS_DRIVER_BUF  = 1<<14, 
     71 }; 
     72  
     73 #define STA_TID_NUM 16 
  • trunk/package/mac80211/patches/540-mac80211_add_rx_rate.patch

    r25749 r25779  
    133133--- a/net/mac80211/sta_info.h 
    134134+++ b/net/mac80211/sta_info.h 
    135 @@ -209,6 +209,8 @@ enum plink_state { 
     135@@ -212,6 +212,8 @@ enum plink_state { 
    136136  * @rate_ctrl_priv: rate control private per-STA pointer 
    137137  * @last_tx_rate: rate used for last transmit, to report to userspace as 
     
    142142  *     in the header file. 
    143143  * @flaglock: spinlock for flags accesses 
    144 @@ -311,6 +313,8 @@ struct sta_info { 
     144@@ -314,6 +316,8 @@ struct sta_info { 
    145145        unsigned long tx_bytes; 
    146146        unsigned long tx_fragments; 
Note: See TracChangeset for help on using the changeset viewer.