* [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU
@ 2026-05-31 22:33 VolcomIlluminated
2026-06-01 0:56 ` Ping-Ke Shih
2026-11-06 11:01 ` Barak Pearlmutter
0 siblings, 2 replies; 4+ messages in thread
From: VolcomIlluminated @ 2026-05-31 22:33 UTC (permalink / raw)
To: pkshih
Cc: kvalo, luka.gejak, linux-wireless, linux-kernel, stable,
VolcomIlluminated
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@vger.kernel.org
Signed-off-by: VolcomIlluminated <Volcomilluminated@airmail.cc>
---
--- /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 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) &&
+ 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);
^ permalink raw reply [flat|nested] 4+ messages in thread* RE: [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU
2026-05-31 22:33 [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU VolcomIlluminated
@ 2026-06-01 0:56 ` Ping-Ke Shih
2026-11-06 11:01 ` Barak Pearlmutter
1 sibling, 0 replies; 4+ messages in thread
From: Ping-Ke Shih @ 2026-06-01 0:56 UTC (permalink / raw)
To: VolcomIlluminated
Cc: kvalo@kernel.org, luka.gejak@linux.dev,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
VolcomIlluminated <Volcomilluminated@airmail.cc> 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@vger.kernel.org
> Signed-off-by: VolcomIlluminated <Volcomilluminated@airmail.cc>
> ---
> --- /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);
>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU
2026-05-31 22:33 [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU VolcomIlluminated
2026-06-01 0:56 ` Ping-Ke Shih
@ 2026-11-06 11:01 ` Barak Pearlmutter
2026-11-06 11:36 ` Bitterblue Smith
1 sibling, 1 reply; 4+ messages in thread
From: Barak Pearlmutter @ 2026-11-06 11:01 UTC (permalink / raw)
To: linux-wireless
I can confirm the "failed to get tx report from firmware" issue on an
RTL8822BU USB adapter and provide additional context about its impact.
Device:
RTL88x2bu AC1200 USB WiFi adapter
USB ID: 0bda:b812
Driver: rtw88_8822bu (in-tree)
Firmware: version 30.20.0, H2C version 14
Kernel: 7.2.15+deb14-amd64 (Debian 13 / linux-image-amd64)
Note: this is a Debian-patched kernel; Debian-specific patches may be
relevant, though the rtw88 driver is unlikely to be heavily patched.
Symptoms observed:
1. Slow-fire mode (possibly normal operation): "failed to get tx report
from firmware" appears roughly every 5 minutes during extended idle
periods. The link remains associated but throughput degrades.
2. Rapid-fire mode (fatal): The message appears multiple times per
second. The interface deauthenticates and does not recover without a
USB reset of the device.
The rapid-fire mode is frequently triggered indirectly by a companion
Realtek Bluetooth adapter (0bda:a725, RTL8761BU) on the same host
entering its own failure loop after USB autosuspend (see separate report
to linux-bluetooth). When the BT device is in a 2-second USB reset
storm, the WiFi "failed to get tx report" messages begin within seconds
and escalate to rapid-fire within ~20 minutes.
Workarounds currently applied:
- USB autosuspend disabled for 0bda:b812:
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda",
ATTRS{idProduct}=="b812", ATTR{power/autosuspend}="-1"
- WiFi PSM disabled on interface up:
ACTION=="add", SUBSYSTEM=="net", ATTRS{idVendor}=="0bda",
ATTRS{idProduct}=="b812", RUN+="/usr/sbin/iw dev %k set power_save off"
These reduce but do not eliminate the slow-fire messages. Extending the
TX report timeout as proposed in the referenced patch would address the
root cause.
Relevant log excerpt (slow-fire, link still up):
kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
[~5 minutes pass]
kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
[repeat]
Relevant log excerpt (rapid-fire leading to deauth):
kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
kernel: wlx1cbfceb2abdb: deauthenticating from cc:2d:21:70:11:fd by local choice (Reason: 3=DEAUTH_LEAVING)
kernel: usb 4-5: reset SuperSpeed USB device number 3 using xhci_hcd
kernel: rtw88_8822bu 4-5:1.0: Firmware version 30.20.0, H2C version 14
[reconnects after USB reset]
Happy to test a patched kernel or provide further information.
Barak Pearlmutter <barak@cs.nuim.ie>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU
2026-11-06 11:01 ` Barak Pearlmutter
@ 2026-11-06 11:36 ` Bitterblue Smith
0 siblings, 0 replies; 4+ messages in thread
From: Bitterblue Smith @ 2026-11-06 11:36 UTC (permalink / raw)
To: Barak Pearlmutter, linux-wireless
On 06/11/2026 13:01, Barak Pearlmutter wrote:
> I can confirm the "failed to get tx report from firmware" issue on an
> RTL8822BU USB adapter and provide additional context about its impact.
>
> Device:
> RTL88x2bu AC1200 USB WiFi adapter
> USB ID: 0bda:b812
> Driver: rtw88_8822bu (in-tree)
> Firmware: version 30.20.0, H2C version 14
> Kernel: 7.2.15+deb14-amd64 (Debian 13 / linux-image-amd64)
> Note: this is a Debian-patched kernel; Debian-specific patches may be
> relevant, though the rtw88 driver is unlikely to be heavily patched.
>
> Symptoms observed:
>
> 1. Slow-fire mode (possibly normal operation): "failed to get tx report
> from firmware" appears roughly every 5 minutes during extended idle
> periods. The link remains associated but throughput degrades.
>
> 2. Rapid-fire mode (fatal): The message appears multiple times per
> second. The interface deauthenticates and does not recover without a
> USB reset of the device.
>
> The rapid-fire mode is frequently triggered indirectly by a companion
> Realtek Bluetooth adapter (0bda:a725, RTL8761BU) on the same host
> entering its own failure loop after USB autosuspend (see separate report
> to linux-bluetooth). When the BT device is in a 2-second USB reset
> storm, the WiFi "failed to get tx report" messages begin within seconds
> and escalate to rapid-fire within ~20 minutes.
>
> Workarounds currently applied:
> - USB autosuspend disabled for 0bda:b812:
> ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda",
> ATTRS{idProduct}=="b812", ATTR{power/autosuspend}="-1"
> - WiFi PSM disabled on interface up:
> ACTION=="add", SUBSYSTEM=="net", ATTRS{idVendor}=="0bda",
> ATTRS{idProduct}=="b812", RUN+="/usr/sbin/iw dev %k set power_save off"
>
> These reduce but do not eliminate the slow-fire messages. Extending the
> TX report timeout as proposed in the referenced patch would address the
> root cause.
>
That's doubtful. It would just hide or delay the messages. I think what
you are experiencing is caused by this chip's USB 3 problem:
https://lore.kernel.org/linux-wireless/b69f6496-dc12-4662-84ac-aa62d0ceac3f@gmail.com/
It will work better in a USB 2 port.
> Relevant log excerpt (slow-fire, link still up):
>
> kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
> [~5 minutes pass]
> kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
> [repeat]
>
> Relevant log excerpt (rapid-fire leading to deauth):
>
> kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
> kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
> kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
> kernel: rtw88_8822bu 4-5:1.0: failed to get tx report from firmware
> kernel: wlx1cbfceb2abdb: deauthenticating from cc:2d:21:70:11:fd by local choice (Reason: 3=DEAUTH_LEAVING)
> kernel: usb 4-5: reset SuperSpeed USB device number 3 using xhci_hcd
> kernel: rtw88_8822bu 4-5:1.0: Firmware version 30.20.0, H2C version 14
> [reconnects after USB reset]
>
> Happy to test a patched kernel or provide further information.
>
An equivalent patch made it into kernel 7.4, so you can test that if
you want.
> Barak Pearlmutter <barak@cs.nuim.ie>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-11-06 11:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-31 22:33 [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU VolcomIlluminated
2026-06-01 0:56 ` Ping-Ke Shih
2026-11-06 11:01 ` Barak Pearlmutter
2026-11-06 11:36 ` Bitterblue Smith
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox