1: 4f2dafc2e130 ! 1: 4861aa44e4e9 wifi: rtlwifi: rc: start no BA session for QoS null frames @@ Commit message  Only start BA sessions for frames that carry data.  - Test results (2.4 GHz): - before after - TX 7.0 6.1 - RX 28.3 29.1 - Signed-off-by: Ho Jie Feng   ## drivers/net/wireless/realtek/rtlwifi/rc.c ## 2: 97490a522c8a ! 2: 892a1c49b02c wifi: rtlwifi: rtl8192d: report no signal for frames without PHY status @@ Commit message Only the first frame of an A-MPDU comes with the PHY status. This makes mac80211 report the correct value when queried from iw.  - Test results (2.4 GHz): - before after - TX 6.1 5.2 - RX 29.1 27.1 - Signed-off-by: Ho Jie Feng   ## drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c ## @@ drivers/net/wireless/realtek/rtlwifi/rtl8192d/trx_common.c: bool rtl92d_rx_query _rtl92d_translate_rx_signal_stuff(hw, skb, stats, pdesc, p_drvinfo);  + } else { -+ /* Only the first frame of an A-MPDU has the PHY status. */  + rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL; } /*rx_status->qual = stats->signal; */ 3: bb1ede2c7251 ! 3: 2670e2b502ef wifi: rtlwifi: usb: unify the RX code path @@ Commit message to _rtl_usb_rx_process to unify the code path.  Signed-off-by: Ho Jie Feng  + Acked-by: Ping-Ke Shih   ## drivers/net/wireless/realtek/rtlwifi/usb.c ##  @@ drivers/net/wireless/realtek/rtlwifi/usb.c: static int _rtl_prep_rx_urb(struct ieee80211_hw *hw, struct rtl_usb *rtlusb, -: ------------ > 4: d9348282f1b2 wifi: rtlwifi: usb: move the radiotap headroom size to usb.h 4: af51a4124fae ! 5: 5d2d43be84e5 wifi: rtlwifi: rtl8192du: enable USB RX aggregation @@ Commit message  Allow RX aggregation of up to 48 pages of 128 bytes or 24 with two MACs.  + In an aggregated transfer, rtl92du_rx_segregate_hdl() copies each + frame into a new skb with room for the radiotap header like in usb.c. + The last frame reuses the original skb by pulling it to the frame's start + and trimmed to its length. + Test results (2.4 GHz): before after TX 5.2 6.4 RX 27.1 32.0  Signed-off-by: Ho Jie Feng  + Acked-by: Ping-Ke Shih   ## drivers/net/wireless/realtek/rtlwifi/rtl8192d/reg.h ##  @@ @@ drivers/net/wireless/realtek/rtlwifi/rtl8192du/trx.c: int rtl92du_tx_post_hdl(st  + return;  + }  + -+ new_skb = dev_alloc_skb(pkt_size + RTL92DU_RX_HEADROOM); ++ new_skb = dev_alloc_skb(pkt_size + RTL_RADIO_TAP_SIZE_RSV);  + if (!new_skb)  + break; -+ skb_reserve(new_skb, RTL92DU_RX_HEADROOM); ++ skb_reserve(new_skb, RTL_RADIO_TAP_SIZE_RSV);  + skb_put_data(new_skb, rxdesc, pkt_size);  + __skb_queue_tail(queue, new_skb);  + @@ drivers/net/wireless/realtek/rtlwifi/rtl8192du/trx.h  #define WMM_NORMAL_TX_TOTAL_PAGE_NUMBER 0xF5  -+#define RTL92DU_RX_HEADROOM 32  +#define RTL92DU_RX_AGG_ALIGN 128  + #define WMM_NORMAL_PAGE_NUM_PUBQ_92D 0x65 5: 03d85e72056f < -: ------------ wifi: rtlwifi: rtl8192d: let the firmware use all rates