From: Ho Jie Feng <hjf3108@gmail.com>
To: Ping-Ke Shih <pkshih@realtek.com>, linux-wireless@vger.kernel.org
Cc: Bitterblue Smith <rtl8821cerfe2@gmail.com>, linux-kernel@vger.kernel.org
Subject: [PATCH rtw-next 3/5] wifi: rtlwifi: usb: unify the RX code path
Date: Tue, 3 Nov 2026 17:52:52 +0800 [thread overview]
Message-ID: <20261103095256.949327-4-hjf3108@gmail.com> (raw)
In-Reply-To: <20261103095256.949327-1-hjf3108@gmail.com>
_rtl_usb_rx_process_agg is a copy of _rtl_usb_rx_process_noagg
except without the tail end. The noagg function can be used for
aggregated frames, so drop it and rename _rtl_usb_rx_process_noagg
to _rtl_usb_rx_process to unify the code path.
Signed-off-by: Ho Jie Feng <hjf3108@gmail.com>
---
drivers/net/wireless/realtek/rtlwifi/usb.c | 52 ++--------------------
1 file changed, 3 insertions(+), 49 deletions(-)
diff --git a/drivers/net/wireless/realtek/rtlwifi/usb.c b/drivers/net/wireless/realtek/rtlwifi/usb.c
index d013e5986948b5..d7b3192262c001 100644
--- a/drivers/net/wireless/realtek/rtlwifi/usb.c
+++ b/drivers/net/wireless/realtek/rtlwifi/usb.c
@@ -366,50 +366,7 @@ static int _rtl_prep_rx_urb(struct ieee80211_hw *hw, struct rtl_usb *rtlusb,
return 0;
}
-static void _rtl_usb_rx_process_agg(struct ieee80211_hw *hw,
- struct sk_buff *skb)
-{
- struct rtl_priv *rtlpriv = rtl_priv(hw);
- u8 *rxdesc = skb->data;
- struct ieee80211_hdr *hdr;
- bool unicast = false;
- __le16 fc;
- struct ieee80211_rx_status rx_status = {0};
- struct rtl_stats stats = {
- .signal = 0,
- .rate = 0,
- };
-
- skb_pull(skb, RTL_RX_DESC_SIZE);
- rtlpriv->cfg->ops->query_rx_desc(hw, &stats, &rx_status, rxdesc, skb);
- skb_pull(skb, (stats.rx_drvinfo_size + stats.rx_bufshift));
- hdr = rtl_get_hdr(skb);
- fc = hdr->frame_control;
- if (!stats.crc) {
- memcpy(IEEE80211_SKB_RXCB(skb), &rx_status, sizeof(rx_status));
-
- if (is_broadcast_ether_addr(hdr->addr1)) {
- /*TODO*/;
- } else if (is_multicast_ether_addr(hdr->addr1)) {
- /*TODO*/
- } else {
- unicast = true;
- rtlpriv->stats.rxbytesunicast += skb->len;
- }
-
- if (ieee80211_is_data(fc)) {
- rtlpriv->cfg->ops->led_control(hw, LED_CTL_RX);
-
- if (unicast)
- rtlpriv->link_info.num_rx_inperiod++;
- }
- /* static bcn for roaming */
- rtl_beacon_statistic(hw, skb);
- }
-}
-
-static void _rtl_usb_rx_process_noagg(struct ieee80211_hw *hw,
- struct sk_buff *skb)
+static void _rtl_usb_rx_process(struct ieee80211_hw *hw, struct sk_buff *skb)
{
struct rtl_priv *rtlpriv = rtl_priv(hw);
u8 *rxdesc = skb->data;
@@ -470,8 +427,7 @@ static void _rtl_rx_pre_process(struct ieee80211_hw *hw, struct sk_buff *skb)
WARN_ON(skb_queue_empty(&rx_queue));
while (!skb_queue_empty(&rx_queue)) {
_skb = skb_dequeue(&rx_queue);
- _rtl_usb_rx_process_agg(hw, _skb);
- ieee80211_rx(hw, _skb);
+ _rtl_usb_rx_process(hw, _skb);
}
}
@@ -490,11 +446,9 @@ static void _rtl_rx_work(struct tasklet_struct *t)
}
if (likely(!rtlusb->usb_rx_segregate_hdl)) {
- _rtl_usb_rx_process_noagg(hw, skb);
+ _rtl_usb_rx_process(hw, skb);
} else {
- /* TO DO */
_rtl_rx_pre_process(hw, skb);
- pr_err("rx agg not supported\n");
}
}
}
--
2.53.0
next prev parent reply other threads:[~2026-11-03 9:54 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 9:52 [PATCH rtw-next 0/5] wifi: rtlwifi: rtl8192du fixes and additional support Ho Jie Feng
2026-11-03 9:52 ` [PATCH rtw-next 1/5] wifi: rtlwifi: rc: start no BA session for QoS null frames Ho Jie Feng
2026-11-08 4:08 ` Ping-Ke Shih
2026-11-08 18:11 ` Jie Feng
2026-11-09 2:49 ` Ping-Ke Shih
2026-11-03 9:52 ` [PATCH rtw-next 2/5] wifi: rtlwifi: rtl8192d: report no signal for frames without PHY status Ho Jie Feng
2026-11-08 4:13 ` Ping-Ke Shih
2026-11-08 18:12 ` Jie Feng
2026-11-09 2:51 ` Ping-Ke Shih
2026-11-03 9:52 ` Ho Jie Feng [this message]
2026-11-09 0:40 ` [PATCH rtw-next 3/5] wifi: rtlwifi: usb: unify the RX code path Ping-Ke Shih
2026-11-03 9:52 ` [PATCH rtw-next 4/5] wifi: rtlwifi: rtl8192du: enable USB RX aggregation Ho Jie Feng
2026-11-09 1:44 ` Ping-Ke Shih
2026-11-09 1:53 ` Jie Feng
2026-11-09 2:02 ` Ping-Ke Shih
2026-11-03 9:52 ` [PATCH rtw-next 5/5] wifi: rtlwifi: rtl8192d: let the firmware use all rates Ho Jie Feng
2026-11-09 1:56 ` Ping-Ke Shih
2026-11-09 2:44 ` Jie Feng
2026-11-09 2:58 ` Ping-Ke Shih
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261103095256.949327-4-hjf3108@gmail.com \
--to=hjf3108@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=pkshih@realtek.com \
--cc=rtl8821cerfe2@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.