prplos/package/kernel/mac80211/patches/rtl/030-v6.13-wifi-rtw88-Enable-data-rate-fallback-for-older-chips.patch
Hauke Mehrtens 605bc03cd6 mac80211: update to version 6.12.96
This contains the following commits:
```
git log --oneline   v6.12.61...v6.12.96 -- drivers/net/wireless/ net/mac80211/ net/wireless/
2b100a6089ac wifi: iwlwifi: mvm: fix race condition in PTP removal
53fed4061a09 wifi: rtw88: usb: fix memory leaks on USB write failures
81e2d4508b35 wifi: rtw88: increase TX report timeout to fix race condition
9a6e57ffe49e wifi: rtlwifi: rtl8821ae: Fix C2H bit location in RX descriptor
7b2e62b9080b wifi: ath11k: fix warning when unbinding
fd92eb81c1b5 wifi: mt76: mt7925: don't disable AP BSS when removing TDLS peer
033b21aa6d03 wifi: mt76: mt76x2u: Add support for ELECOM WDC-867SU3S
b4faaa617af3 wifi: mt76: mt7921: fix potential deadlock in mt7921_roc_abort_sync
0f0c75a1f48d wifi: mt76: mt7921: fix a potential scan no APs
c006a9664a1a wifi: mt76: mt7921: avoid undesired changes of the preset regulatory domain
30c3fa80f423 wifi: nl80211: reject oversized EMA RNR lists
f6d3dc8e8492 wifi: mac80211: limit injected antenna index in ieee80211_parse_tx_radiotap
1f573e17bcb7 wifi: mac80211: fix MLE defragmentation
17c9e9504974 wifi: ath11k: fix peer resolution on rx path when peer_id=0
4c6a72aae687 wifi: ath10k: skip WMI and beacon transmission when device is wedged
03ac1d6780d0 wifi: ath11k: fix error path leak in ath11k_tm_cmd_wmi_ftm()
008955b13484 wifi: ath11k: fix error path leaks in some WMI WOW calls
f7d395dc5008 wifi: mac80211: consume only present negotiated TTLM maps
67915715fd38 wifi: cfg80211: advance loop vars in cfg80211_merge_profile()
5a999541a290 wifi: ath11k: clear shared SRNG pointer state on restart
a5bc748e071d net, treewide: define and use MAC_ADDR_STR_LEN
85e6c610f41a wifi: ath10k: fix station lookup failure during disconnect
9d10225af656 wifi: mac80211: handle VHT EXT NSS in ieee80211_determine_our_sta_mode()
2e0e5a43ed12 wifi: brcmfmac: Fix error pointer dereference
1eb4f8c2225b wifi: rtw89: phy: fix uninitialized variable access in rtw89_phy_cfo_set_crystal_cap()
64c481e33a55 wifi: mt76: mt7921: fix 6GHz regulatory update on connection
180182a3f23f wifi: mt76: mt7996: fix use-after-free bugs in mt7996_mac_dump_work()
e6856af8a22a wifi: mt76: mt7915: fix use-after-free bugs in mt7915_mac_dump_work()
5b421cf34e94 wifi: mt76: mt7996: fix struct mt7996_mcu_uni_event
6dbe70f9ef14 wifi: mt76: mt7921: Place upper limit on station AID
6b9f1e9106e0 wifi: mt76: mt7996: fix FCS error flag check in RX descriptor
6c52fbdc6f65 wifi: mt76: mt7925: prevent NULL vif dereference in mt7925_mac_write_txwi
28ed0b61f673 wifi: mt76: mt7925: prevent NULL pointer dereference in mt7925_tx_check_aggr()
96d4f399ef25 wifi: mt76: mt7915: fix use_cts_prot support
03a0e1f9d37f wifi: mt76: mt7615: fix use_cts_prot support
9b826148f64f wifi: mt76: mt7925: Fix incorrect MLO mode in firmware control
3ee410915d4f wifi: mt76: mt7921: Reset ampdu_state state in case of failure in mt76_connac2_tx_check_aggr()
7731b67bd59d wifi: rtlwifi: pci: fix possible use-after-free caused by unfinished irq_prepare_bcn_tasklet
11db57312f00 wifi: mwifiex: Fix memory leak in mwifiex_11n_aggregate_pkt()
113c0650ce7d wifi: mt76: mt7925: fix incorrect TLV length in CLC command
d16827cb1d39 wifi: brcmfmac: Fix potential use-after-free issue when stopping watchdog task
1e9e55cf66f0 wifi: b43: enforce bounds check on firmware key index in b43_rx()
afcbaed89cdc wifi: mac80211: remove station if connection prep fails
d6869537013b wifi: ath5k: do not access array OOB
887ece6c23b4 wifi: mac80211: use safe list iteration in radar detect work
16d9f674c619 wifi: rsi: fix kthread lifetime race between self-exit and external-stop
1739fc31b4de wifi: mac80211: drop stray 'static' from fast-RX rx_result
6ee946077607 wifi: b43legacy: enforce bounds check on firmware key index in RX path
5c7ba690205c wifi: mt76: mt7921: fix ROC abort flow interruption in mt7921_roc_work
90cc573fd2f4 wifi: mt76: mt7921: fix a potential clc buffer length underflow
8ee081ad05e9 wifi: mt76: mt7925: fix incorrect length field in txpower command
be7a1caf55ab wifi: mt76: mt7925: fix AMPDU state handling in mt7925_tx_check_aggr
63fe3389b3e0 wifi: mwifiex: fix use-after-free in mwifiex_adapter_cleanup()
c498b859184f wifi: mt76: mt792x: fix mt7925u USB WFSYS reset handling
674046ee3f4f wifi: mt76: mt792x: describe USB WFSYS reset with a descriptor
ea21a4006f96 wifi: rtl8xxxu: fix potential use of uninitialized value
6c53d68e3bcf wifi: rtw88: check for PCI upstream bridge existence
3b4d27acafae wifi: mac80211: always free skb on ieee80211_tx_prepare_skb() failure
a4f4371d194d wifi: rtw88: fix device leak on probe failure
9fca68c2512a wifi: brcmfmac: validate bsscfg indices in IF events
df15adc692a8 wifi: wl1251: validate packet IDs before indexing tx_frames
77263f053963 wifi: brcmsmac: Fix dma_free_coherent() size
b245db719bc7 wifi: rt2x00usb: fix devres lifetime
c5fa98842783 wifi: virt_wifi: remove SET_NETDEV_DEV to avoid use-after-free
e67d8c626ace wifi: iwlwifi: mvm: fix potential out-of-bounds read in iwl_mvm_nd_match_info_handler()
c97b2a000596 wifi: wilc1000: fix u8 overflow in SSID scan buffer size calculation
08020567bf5f wifi: ath11k: Pass the correct value of each TID during a stop AMPDU session
8148c2fda4eb wifi: mac80211: check tdls flag in ieee80211_tdls_oper
cfa64e2b3717 wifi: wlcore: Return -ENOMEM instead of -EAGAIN if there is not enough headroom
a90279e7f7ea wifi: mac80211: fix NULL deref in mesh_matches_local()
d32c07ef1880 wifi: cfg80211: cancel pmsr_free_wk in cfg80211_pmsr_wdev_down
29a1a350afcd wifi: mac80211: Fix static_branch_dec() underflow for aql_disable.
65c25b588994 mac80211: fix crash in ieee80211_chan_bw_change for AP_VLAN stations
d0155fe68f31 wifi: libertas: fix use-after-free in lbs_free_adapter()
662d9f6d25d0 wifi: mac80211: set default WMM parameters on all links
7b692dff8df0 wifi: mt76: Fix possible oob access in mt76_connac2_mac_write_txwi_80211()
3356464e50e1 wifi: mt76: mt7925: Fix possible oob access in mt7925_mac_write_txwi_80211()
ca1adc04fc2c wifi: mt76: mt7996: Fix possible oob access in mt7996_mac_write_txwi_80211()
5feeea59ed14 wifi: wlcore: Fix a locking bug
35e173d7b878 wifi: cw1200: Fix locking in error paths
b64fbd718cf4 wifi: rsi: Don't default to -EOPNOTSUPP in rsi_mac80211_config
f5d8af683410 wifi: mac80211: fix NULL pointer dereference in mesh_rx_csa_frame()
bfde158d5d13 wifi: mac80211: bounds-check link_id in ieee80211_ml_reconfiguration
57e39fe8da57 wifi: cfg80211: cancel rfkill_block work in wiphy_unregister()
2a60c588d5d3 wifi: radiotap: reject radiotap with unknown bits
df4308cb52dc net: intel: fix PCI device ID conflict between i40e and ipw2200
f204c1379a98 wifi: cfg80211: wext: fix IGTK key ID off-by-one
39c6ab2d2eea wifi: ath10k: fix lock protection in ath10k_wmi_event_peer_sta_ps_state_chg()
16ca0282e099 wifi: rtw89: pci: restore LDO setting after device resume
de3974edd057 wifi: iwlegacy: add missing mutex protection in il3945_store_measurement()
7d355d937dc3 wifi: iwlegacy: add missing mutex protection in il4965_store_tx_power()
b0ea9e2a5644 wifi: rtw89: 8922a: add digital compensation for 2GHz
0a56a63a3bb3 wifi: rtw89: fix unable to receive probe responses under MLO connection
a8347aa56749 wifi: iwlwifi: mvm: check the validity of noa_len
69b4bcaece65 wifi: cfg80211: allow only one NAN interface, also in multi radio
e2ee86fefe01 wifi: ath12k: fix preferred hardware mode calculation
4234f2d90f7b wifi: ath11k: Fix failure to connect to a 6 GHz AP
b71487cb692e wifi: ath11k: add pm quirk for Thinkpad Z13/Z16 Gen1
26c82ec5add2 wifi: rtw89: wow: add reason codes for disassociation in WoWLAN mode
faac634c2795 wifi: rtw89: mac: correct page number for CSI response
b82073564373 wifi: libertas: fix WARNING in usb_tx_block
b4d46b4fb240 wifi: rtw88: Fix inadvertent sharing of struct ieee80211_supported_band data
9b5418070ee8 wifi: rtw88: Use devm_kmemdup() in rtw_set_supported_band()
46216a48cd89 wifi: rtw89: ser: enable error IMR after recovering from L1
e31daf5fbcda wifi: rtw89: 8922a: set random mac if efuse contains zeroes
1c7ad1b82ec4 wifi: rtw88: rtw8821cu: Add ID for Mercusys MU6H
0d0c2fb80ca4 wifi: rtw88: 8822b: Avoid WARNING in rtw8822b_config_trx_mode()
400ca64e87ac wifi: rtw88: fix DTIM period handling when conf->dtim_period is zero
ef04714ef4ae wifi: ath10k: sdio: add missing lock protection in ath10k_sdio_fw_crashed_dump()
f6c4c7a5cf5b wifi: cfg80211: stop NAN and P2P in cfg80211_leave
33b2230edd86 wifi: cfg80211: Fix use_for flag update on BSS refresh
5d810ba377ed wifi: rtl8xxxu: fix slab-out-of-bounds in rtl8xxxu_sta_add
7d31dde1bd86 wifi: rtw88: Fix alignment fault in rtw_core_enable_beacon()
586c628c0bdd wifi: mac80211: don't increment crypto_tx_tailroom_needed_cnt twice
29443629fe74 wifi: mac80211: correctly check if CSA is active
30f1507376d6 wifi: cfg80211: Fix bitrate calculation overflow for HE rates
66a7153fd67c wifi: mac80211: collect station statistics earlier when disconnect
71de0b6e04bb wifi: wlcore: ensure skb headroom before skb_push
536447521b3b wifi: mac80211: ocb: skip rx_no_sta when interface is not joined
1d2178918efc wifi: ath11k: add srng->lock for ath11k_hal_srng_* in monitor mode
9f1a002f0171 wifi: ath11k: fix RCU stall while reaping monitor destination ring
99129d80a5d4 wifi: rsi: Fix memory corruption due to not set vif driver data size
99e6b136d69d wifi: mwifiex: Fix a loop in mwifiex_update_ampdu_rxwinsize()
24585a13c41e wifi: ath12k: fix dma_free_coherent() pointer
5d6fa4d2c979 wifi: ath10k: fix dma_free_coherent() pointer
d482e6593fd8 wifi: mac80211: don't perform DA check on S1G beacon
f94f95b81736 wifi: mac80211: restore non-chanctx injection behaviour
024f71a57d56 wifi: avoid kernel-infoleak from struct iw_point
7b240a8935d5 wifi: mac80211: Discard Beacon frames to non-broadcast address
d7d4c3884c99 wifi: mt76: mt7925: add handler to hif suspend/resume event
cce9746046c9 wifi: mt76: mt7925: fix CLC command timeout when suspend/resume
08c5a901fdf0 wifi: mt76: mt7925: fix the unfinished command of regd_notifier before suspend
d12d193fe1e4 wifi: mac80211: do not use old MBSSID elements
0c67efb56d04 wifi: cfg80211: sme: store capped length in __cfg80211_connect_result()
9765d6eb8298 wifi: rtlwifi: 8192cu: fix tid out of range in rtl92cu_tx_fill_desc()
1f8ae2e99a9d wifi: rtw88: limit indirect IO under powered off for RTL8822CS
e768e889561e wifi: mt76: Fix DTS power-limits on little endian systems
5dadd27e80c4 wifi: brcmfmac: Add DMI nvram filename quirk for Acer A1 840 tablet
f423753269a0 wifi: mt76: mt792x: fix wifi init fail by setting MCU_RUNNING after CLC load
1ec6f2e3d5e4 wifi: cfg80211: use cfg80211_leave() in iftype change
ca6bf76ae4dc wifi: cfg80211: stop radar detection in cfg80211_leave()
f4001ba4a8ca wifi: rtl8xxxu: Fix HT40 channel config for RTL8192CU, RTL8723AU
278bfed4529a mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()
4758770a673c wifi: rtl818x: rtl8187: Fix potential buffer underflow in rtl8187_rx_cb()
199aea40b868 wifi: mac80211: fix CMAC functions not handling errors
ee7db11742b3 wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()
199c3a2725ad wifi: cw1200: Fix potential memory leak in cw1200_bh_rx_helper()
4351b8664583 wifi: ath12k: fix potential memory leak in ath12k_wow_arp_ns_offload()
097c870b9181 wifi: ath11k: fix peer HE MCS assignment
7ee69f359071 wifi: ath11k: fix VHT MCS assignment
735e232cd9cc wifi: ath11k: restore register window after global reset
6d9ff97af015 wifi: ath10k: move recovery check logic into a new work
78d6455b04bc wifi: ath10k: Add missing include of export.h
5b9c7e103728 wifi: ath10k: Avoid vdev delete timeout when firmware is already down
ff100f869c2e wifi: rtw88: Add USB ID 2001:3329 for D-Link AC13U rev. A1
2f6ea894eba4 wifi: rtl8xxxu: Add USB ID 2001:3328 for D-Link AN3U rev. A1
```

Link: https://github.com/openwrt/openwrt/pull/24304
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 6cfbe534c25de14e934bb66b669206869053b64b)
2026-08-18 11:40:42 +01:00

195 lines
7.9 KiB
Diff

From c7706b1173c77185a2ef40c7d1811021566563f3 Mon Sep 17 00:00:00 2001
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Date: Wed, 23 Oct 2024 17:10:32 +0300
Subject: [PATCH] wifi: rtw88: Enable data rate fallback for older chips
RTL8811AU fails to perform the 4-way handshake when the AP is too far
because it transmits the EAPOL frames at MCS9 and when that doesn't
work it retries 48 times with the same rate, to no avail.
Retrying 48 times with the same rate seems pointless. Set the
appropriate field in the TX descriptor to allow it to use lower rates
when retrying.
Set it for RTL8723D and RTL8703B because they interpret this field the
same way as RTL8811A.
The newer RTL8822C, RTL8822B, RTL8821C seem to interpret this field in
the TX descriptor differently, so leave it alone for those chips.
Tested with RTL8811AU and RTL8723DU.
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/2b3e3e6f-541b-4a3b-8ca3-65b267e6a95a@gmail.com
---
drivers/net/wireless/realtek/rtw88/fw.c | 2 +-
drivers/net/wireless/realtek/rtw88/main.h | 1 +
drivers/net/wireless/realtek/rtw88/pci.c | 2 +-
drivers/net/wireless/realtek/rtw88/rtw8703b.c | 1 +
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 1 +
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 1 +
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 1 +
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 1 +
drivers/net/wireless/realtek/rtw88/sdio.c | 2 +-
drivers/net/wireless/realtek/rtw88/tx.c | 6 +++++-
drivers/net/wireless/realtek/rtw88/tx.h | 4 +++-
drivers/net/wireless/realtek/rtw88/usb.c | 4 ++--
12 files changed, 19 insertions(+), 7 deletions(-)
--- a/drivers/net/wireless/realtek/rtw88/fw.c
+++ b/drivers/net/wireless/realtek/rtw88/fw.c
@@ -1290,7 +1290,7 @@ static void rtw_fill_rsvd_page_desc(stru
rtw_tx_rsvd_page_pkt_info_update(rtwdev, &pkt_info, skb, type);
pkt_desc = skb_push(skb, chip->tx_pkt_desc_sz);
memset(pkt_desc, 0, chip->tx_pkt_desc_sz);
- rtw_tx_fill_tx_desc(&pkt_info, skb);
+ rtw_tx_fill_tx_desc(rtwdev, &pkt_info, skb);
}
static inline u8 rtw_len_to_page(unsigned int len, u8 page_size)
--- a/drivers/net/wireless/realtek/rtw88/main.h
+++ b/drivers/net/wireless/realtek/rtw88/main.h
@@ -1204,6 +1204,7 @@ struct rtw_chip_info {
u8 usb_tx_agg_desc_num;
bool hw_feature_report;
u8 c2h_ra_report_size;
+ bool old_datarate_fb_limit;
u8 default_1ss_tx_path;
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -825,7 +825,7 @@ static int rtw_pci_tx_write_data(struct
pkt_desc = skb_push(skb, chip->tx_pkt_desc_sz);
memset(pkt_desc, 0, tx_pkt_desc_sz);
pkt_info->qsel = rtw_pci_get_tx_qsel(skb, queue);
- rtw_tx_fill_tx_desc(pkt_info, skb);
+ rtw_tx_fill_tx_desc(rtwdev, pkt_info, skb);
dma = dma_map_single(&rtwpci->pdev->dev, skb->data, skb->len,
DMA_TO_DEVICE);
if (dma_mapping_error(&rtwpci->pdev->dev, dma))
--- a/drivers/net/wireless/realtek/rtw88/rtw8703b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8703b.c
@@ -1964,6 +1964,7 @@ const struct rtw_chip_info rtw8703b_hw_s
.usb_tx_agg_desc_num = 1, /* Not sure if this chip has USB interface */
.hw_feature_report = true,
.c2h_ra_report_size = 7,
+ .old_datarate_fb_limit = true,
.path_div_supported = false,
.ht_supported = true,
--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
@@ -2135,6 +2135,7 @@ const struct rtw_chip_info rtw8723d_hw_s
.usb_tx_agg_desc_num = 1,
.hw_feature_report = true,
.c2h_ra_report_size = 7,
+ .old_datarate_fb_limit = true,
.ht_supported = true,
.vht_supported = false,
.lps_deep_mode_supported = 0,
--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
@@ -1972,6 +1972,7 @@ const struct rtw_chip_info rtw8821c_hw_s
.usb_tx_agg_desc_num = 3,
.hw_feature_report = true,
.c2h_ra_report_size = 7,
+ .old_datarate_fb_limit = false,
.ht_supported = true,
.vht_supported = true,
.lps_deep_mode_supported = BIT(LPS_DEEP_MODE_LCLK),
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
@@ -2516,6 +2516,7 @@ const struct rtw_chip_info rtw8822b_hw_s
.usb_tx_agg_desc_num = 3,
.hw_feature_report = true,
.c2h_ra_report_size = 7,
+ .old_datarate_fb_limit = false,
.ht_supported = true,
.vht_supported = true,
.lps_deep_mode_supported = BIT(LPS_DEEP_MODE_LCLK),
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -5334,6 +5334,7 @@ const struct rtw_chip_info rtw8822c_hw_s
.usb_tx_agg_desc_num = 3,
.hw_feature_report = true,
.c2h_ra_report_size = 7,
+ .old_datarate_fb_limit = false,
.default_1ss_tx_path = BB_PATH_A,
.path_div_supported = true,
.ht_supported = true,
--- a/drivers/net/wireless/realtek/rtw88/sdio.c
+++ b/drivers/net/wireless/realtek/rtw88/sdio.c
@@ -868,7 +868,7 @@ static void rtw_sdio_tx_skb_prepare(stru
pkt_info->qsel = rtw_sdio_get_tx_qsel(rtwdev, skb, queue);
- rtw_tx_fill_tx_desc(pkt_info, skb);
+ rtw_tx_fill_tx_desc(rtwdev, pkt_info, skb);
rtw_tx_fill_txdesc_checksum(rtwdev, pkt_info, pkt_desc);
}
--- a/drivers/net/wireless/realtek/rtw88/tx.c
+++ b/drivers/net/wireless/realtek/rtw88/tx.c
@@ -32,7 +32,8 @@ void rtw_tx_stats(struct rtw_dev *rtwdev
}
}
-void rtw_tx_fill_tx_desc(struct rtw_tx_pkt_info *pkt_info, struct sk_buff *skb)
+void rtw_tx_fill_tx_desc(struct rtw_dev *rtwdev,
+ struct rtw_tx_pkt_info *pkt_info, struct sk_buff *skb)
{
struct rtw_tx_desc *tx_desc = (struct rtw_tx_desc *)skb->data;
bool more_data = false;
@@ -67,6 +68,9 @@ void rtw_tx_fill_tx_desc(struct rtw_tx_p
tx_desc->w4 = le32_encode_bits(pkt_info->rate, RTW_TX_DESC_W4_DATARATE);
+ if (rtwdev->chip->old_datarate_fb_limit)
+ tx_desc->w4 |= le32_encode_bits(0x1f, RTW_TX_DESC_W4_DATARATE_FB_LIMIT);
+
tx_desc->w5 = le32_encode_bits(pkt_info->short_gi, RTW_TX_DESC_W5_DATA_SHORT) |
le32_encode_bits(pkt_info->bw, RTW_TX_DESC_W5_DATA_BW) |
le32_encode_bits(pkt_info->ldpc, RTW_TX_DESC_W5_DATA_LDPC) |
--- a/drivers/net/wireless/realtek/rtw88/tx.h
+++ b/drivers/net/wireless/realtek/rtw88/tx.h
@@ -44,6 +44,7 @@ struct rtw_tx_desc {
#define RTW_TX_DESC_W3_NAVUSEHDR BIT(15)
#define RTW_TX_DESC_W3_MAX_AGG_NUM GENMASK(21, 17)
#define RTW_TX_DESC_W4_DATARATE GENMASK(6, 0)
+#define RTW_TX_DESC_W4_DATARATE_FB_LIMIT GENMASK(12, 8)
#define RTW_TX_DESC_W4_RTSRATE GENMASK(28, 24)
#define RTW_TX_DESC_W5_DATA_SHORT BIT(4)
#define RTW_TX_DESC_W5_DATA_BW GENMASK(6, 5)
@@ -94,7 +95,8 @@ void rtw_tx_pkt_info_update(struct rtw_d
struct rtw_tx_pkt_info *pkt_info,
struct ieee80211_sta *sta,
struct sk_buff *skb);
-void rtw_tx_fill_tx_desc(struct rtw_tx_pkt_info *pkt_info, struct sk_buff *skb);
+void rtw_tx_fill_tx_desc(struct rtw_dev *rtwdev,
+ struct rtw_tx_pkt_info *pkt_info, struct sk_buff *skb);
void rtw_tx_report_enqueue(struct rtw_dev *rtwdev, struct sk_buff *skb, u8 sn);
void rtw_tx_report_handle(struct rtw_dev *rtwdev, struct sk_buff *skb, int src);
void rtw_tx_rsvd_page_pkt_info_update(struct rtw_dev *rtwdev,
--- a/drivers/net/wireless/realtek/rtw88/usb.c
+++ b/drivers/net/wireless/realtek/rtw88/usb.c
@@ -519,7 +519,7 @@ static int rtw_usb_write_data(struct rtw
skb_put_data(skb, buf, size);
skb_push(skb, chip->tx_pkt_desc_sz);
memset(skb->data, 0, chip->tx_pkt_desc_sz);
- rtw_tx_fill_tx_desc(pkt_info, skb);
+ rtw_tx_fill_tx_desc(rtwdev, pkt_info, skb);
rtw_tx_fill_txdesc_checksum(rtwdev, pkt_info, skb->data);
ret = rtw_usb_write_port(rtwdev, qsel, skb,
@@ -588,7 +588,7 @@ static int rtw_usb_tx_write(struct rtw_d
pkt_desc = skb_push(skb, chip->tx_pkt_desc_sz);
memset(pkt_desc, 0, chip->tx_pkt_desc_sz);
ep = qsel_to_ep(rtwusb, pkt_info->qsel);
- rtw_tx_fill_tx_desc(pkt_info, skb);
+ rtw_tx_fill_tx_desc(rtwdev, pkt_info, skb);
rtw_tx_fill_txdesc_checksum(rtwdev, pkt_info, skb->data);
tx_data = rtw_usb_get_tx_data(skb);
tx_data->sn = pkt_info->sn;