]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: move HE radiotap to an individual function
authorPing-Ke Shih <pkshih@realtek.com>
Wed, 6 May 2026 13:09:52 +0000 (21:09 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Wed, 13 May 2026 03:35:48 +0000 (11:35 +0800)
To implement more fields of HE radiotap, move the code to an individual
function ahead. Not change logic at all.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260506131000.1706298-7-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.c

index f877c2707c84c64a42b99283d3405b6fd20b83a7..a27e482e38a66b675a44caab10d930b6e0cc0428 100644 (file)
@@ -3176,6 +3176,24 @@ void rtw89_core_update_rx_status_by_ppdu(struct rtw89_dev *rtwdev,
                rx_status->enc_flags |= u8_encode_bits(1, RX_ENC_FLAG_STBC_MASK);
 }
 
+static void rtw89_core_update_radiotap_he(struct rtw89_dev *rtwdev,
+                                         struct sk_buff *skb,
+                                         struct ieee80211_rx_status *rx_status)
+{
+       static const struct ieee80211_radiotap_he known_he = {
+               .data1 = cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA1_DATA_MCS_KNOWN |
+                                    IEEE80211_RADIOTAP_HE_DATA1_CODING_KNOWN |
+                                    IEEE80211_RADIOTAP_HE_DATA1_STBC_KNOWN |
+                                    IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN),
+               .data2 = cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_GI_KNOWN),
+       };
+       struct ieee80211_radiotap_he *he;
+
+       rx_status->flag |= RX_FLAG_RADIOTAP_HE;
+       he = skb_push(skb, sizeof(*he));
+       *he = known_he;
+}
+
 static const u8 rx_status_bw_to_radiotap_eht_usig[] = {
        [RATE_INFO_BW_20] = IEEE80211_RADIOTAP_EHT_USIG_COMMON_BW_20MHZ,
        [RATE_INFO_BW_5] = U8_MAX,
@@ -3250,25 +3268,13 @@ static void rtw89_core_update_radiotap(struct rtw89_dev *rtwdev,
                                       struct sk_buff *skb,
                                       struct ieee80211_rx_status *rx_status)
 {
-       static const struct ieee80211_radiotap_he known_he = {
-               .data1 = cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA1_DATA_MCS_KNOWN |
-                                    IEEE80211_RADIOTAP_HE_DATA1_CODING_KNOWN |
-                                    IEEE80211_RADIOTAP_HE_DATA1_STBC_KNOWN |
-                                    IEEE80211_RADIOTAP_HE_DATA1_BW_RU_ALLOC_KNOWN),
-               .data2 = cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_GI_KNOWN),
-       };
-       struct ieee80211_radiotap_he *he;
-
        if (!(rtwdev->hw->conf.flags & IEEE80211_CONF_MONITOR))
                return;
 
-       if (rx_status->encoding == RX_ENC_HE) {
-               rx_status->flag |= RX_FLAG_RADIOTAP_HE;
-               he = skb_push(skb, sizeof(*he));
-               *he = known_he;
-       } else if (rx_status->encoding == RX_ENC_EHT) {
+       if (rx_status->encoding == RX_ENC_HE)
+               rtw89_core_update_radiotap_he(rtwdev, skb, rx_status);
+       else if (rx_status->encoding == RX_ENC_EHT)
                rtw89_core_update_radiotap_eht(rtwdev, skb, rx_status);
-       }
 }
 
 static void rtw89_core_validate_rx_signal(struct ieee80211_rx_status *rx_status)