RE: [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU
From: Ping-Ke Shih
Date: Sun May 31 2026 - 20:57:49 EST
VolcomIlluminated <Volcomilluminated@xxxxxxxxxx> wrote:
> Luka Gejak's patch increased the TX report timeout for RTL8723DU to
> accommodate off-channel dwell time during background scans. The same
> issue affects RTL8822BU (tested on Edimax EW-7822ULC) where background
> scans cause the firmware to stay off-channel for periods exceeding the
> default 500ms timeout, causing the purge timer to fire prematurely and
> drop TX tracking skbs.
>
> Extend the 2500ms timeout to also cover RTL8822BU USB devices.
>
> Tested on RTL8822BU (Edimax EW-7822ULC) with 17,706 packets over 24+
> hours with zero drops.
>
> Fixes: a82dfd33d123 ("wifi: rtw88: Add common USB chip support")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: VolcomIlluminated <Volcomilluminated@xxxxxxxxxx>
> ---
> --- /tmp/linux-6.18/drivers/net/wireless/realtek/rtw88/tx.c 2025-11-30 17:42:10.000000000 -0500
> +++ /home/ptpx86mm1/kernelbuild/linux-6.18/drivers/net/wireless/realtek/rtw88/tx.c 2026-05-31
Just clone git repository and use 'git format-patch' to generate patch file
and send out.
> 16:00:37.125645594 -0400
> @@ -196,6 +196,7 @@
> void rtw_tx_report_enqueue(struct rtw_dev *rtwdev, struct sk_buff *skb, u8 sn)
> {
> struct rtw_tx_report *tx_report = &rtwdev->tx_report;
> + unsigned long timeout = RTW_TX_PROBE_TIMEOUT;
> unsigned long flags;
> u8 *drv_data;
>
> @@ -207,7 +208,12 @@
> __skb_queue_tail(&tx_report->queue, skb);
> spin_unlock_irqrestore(&tx_report->q_lock, flags);
>
> - mod_timer(&tx_report->purge_timer, jiffies + RTW_TX_PROBE_TIMEOUT);
> + if ((rtwdev->chip->id == RTW_CHIP_TYPE_8723D ||
> + rtwdev->chip->id == RTW_CHIP_TYPE_8822B) &&
Please use https://github.com/pkshih/rtw.git rtw-next branch as your base.
> + rtwdev->hci.type == RTW_HCI_TYPE_USB)
> + timeout = msecs_to_jiffies(2500);
> +
> + mod_timer(&tx_report->purge_timer, jiffies + timeout);
> }
> EXPORT_SYMBOL(rtw_tx_report_enqueue);
>