Bluetooth Audio Stuttering During WiFi Activity on RTL8852CE

Bluetooth Audio Stuttering During WiFi Activity on RTL8852CE

UPDATE 1: I’ve found that kernel 6.11.4 works perfectly while 6.12.9 has the audio stuttering issue. Detailed analysis and findings in this comment.

UPDATE 2: I’ve created a workaround script that forces the system to use the working firmware from kernel 6.11.4. While this is not a permanent solution, it helps resolve the stuttering issue temporarily. Details can be found in this comment.

UPDATE 3: After analyzing the kernel commits, I’ve found some firmware format and power management changes that might be related to the stuttering. Currently testing a minimal configuration that disables power saving features, but results are inconsistent - some boots work perfectly while others still experience stuttering. Details and testing instructions can be found in this comment.

UPDATE 4: Bug report officially filed as Bugzilla #2349675. Created a comprehensive debug repository with logs proving the issue is a regression in rtw8852c_fw-1.bin firmware (0.27.97.0). The logs show System Error Recovery events (error codes 0x999, 0x1000, 0x1001, 0x1002) that directly correlate with 4+ second Bluetooth audio gaps. Until a fix is available, the most reliable workaround remains renaming the newer firmware file to force fallback to the stable version (0.27.56.14). Details in this comment.

System Information

  • OS: Fedora Linux 41 (Workstation Edition)
  • Kernel: 6.12.8-200.fc41.x86_64
  • Hardware:
    • Lenovo IdeaPad Slim 5 14AHP9 (Model: 83DB)
    • BIOS: LENOVO NGCN26WW (05/27/2024)
  • CPU: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics
  • Memory: 28 GiB (12.2% used)
  • Audio Stack:
    • PipeWire v1.2.7 (active)
    • ALSA v: k6.12.8-200.fc41.x86_64

Network Hardware

  • WiFi/BT Controller: Realtek RTL8852CE PCIe 802.11ax
    • Driver: rtw89_8852ce (kernel version)
    • Bus ID: 02:00.0
  • Bluetooth:
    • Realtek Bluetooth Radio
    • Driver: btusb v0.8
    • Bus ID: 1-5:3
    • Bluetooth version: 5.3
    • LMP version: 12

Audio Device

  • Device: AirPods Pro (AA:55:24:08:F8:F2)
    • Audio Profiles: A2DP (Sink), HFP
    • Class: 0x00240418
    • Supported UUIDs: Audio Sink, A/V Remote Control, Handsfree

Connection Details

  • WiFi: 5GHz band (5500 MHz), VHT-MCS 9 80MHz, Signal -55 dBm
  • Operating Environment: GNOME 47.2 on Wayland

Issue Description

When using Bluetooth audio while WiFi is active:

  • Audio stutters during network activity (both upload and download)
  • Problem occurs with both AAC and SBC codecs
  • Stuttering is intermittent, typically after initial 1-2 seconds of network activity
  • Issue disappears when WiFi is disabled
  • WiFi events show RSSI drops to -110 dBm during stutters
  • Problem affects AirPods Pro (AAC codec) and has been observed with other Bluetooth audio devices (SBC codec)

To Reproduce

  1. Connect Bluetooth audio device
  2. Start audio playback (e.g., Spotify, YouTube)
  3. Initiate network activity (e.g., start a download or speed test)
  4. Audio will stutter/skip during network activity

Diagnostic Logs

During stuttering events:

> journalctl -f
Jan 12 15:52:46 fedora wpa_supplicant[1270]: wlp2s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-56 noise=9999 txrate=468000

> sudo iw event
wlp2s0 (phy #4): CQM event: RSSI (-110 dBm) went above threshold

Debug Information

journalctl during module reload shows:

kernel: rtw89_8852ce 0000:02:00.0: [RX_DCK] S1 RXDCK timeout

Attempted Solutions

  1. Modified Bluetooth connection parameters:
MinConnectionInterval=7
MaxConnectionInterval=9
SlaveLatency=0
ConnectionSupervisionTimeout=400
  1. Modified WiFi/Bluetooth coexistence settings:
options rtw89_pci disable_ps_mode=1
options rtw89_core coex_bt_rssi_th=70
  1. Disabled power saving features

None of these solutions fully resolved the issue.


Additional Notes

  • No stuttering occurs when using ethernet with WiFi disabled
  • Issue persists across different Bluetooth codecs
  • Both WiFi and Bluetooth are part of the same RTL8852CE chip
  • Device presents Bluetooth through internal USB interface despite being integrated
  • GTK uses TKIP while PTK uses CCMP, possibly indicating a suboptimal router configuration

Environment Details

$ lspci -nnk | grep -A3 Network
02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8852CE PCIe 802.11ax Wireless Network Controller [10ec:c852] (rev 01)
        Subsystem: Lenovo Device [17aa:5852]
        Kernel driver in use: rtw89_8852ce
        Kernel modules: rtw89_8852ce

Questions

  1. Are there known issues with RTL8852CE WiFi/Bluetooth coexistence?
  2. Are there firmware updates available that might address this?
  3. Could this be related to the RX_DCK timeout issues observed in the logs?
  4. Are there additional debugging steps or logs that would be helpful?

Please let me know if you need any additional information or would like me to run specific tests.

3 Likes

Regarding number 2, have a look at fwupdmgr. If there are firmware updates for any of the detected kit, it should inform you, download them and install them.

Thanks for the suggestion! I ran fwupdmgr, but no firmware updates were available for my devices—everything is up-to-date.

I’ve got the same issues too a tee with a B650I AX mobo (which uses the same RTL8852CE controller) using the KDE 41 edition. For me, it’s occurred when booting into a live manjaro environment too but not for mint. Regarding Q3, I didn’t get anything out of the ordinary when running journalctl --follow.
let me know if you find the issue

Also few days ago there was this post:

with two other people who are having simlar issues with the same controller. Too me it sounds like its a common issue with the drivers for this hardware

UPDATE: Kernel Version Correlation Found

After further testing, I’ve identified a clear correlation between kernel versions and the Bluetooth audio stuttering:

  • Kernel 6.11.4-301.fc41.x86_64: :white_check_mark: Works perfectly, no audio stuttering
  • Kernel 6.12.9-200.fc41.x86_64: :x: Audio stutters during WiFi activity

Reproduction Steps:

  1. Fresh Fedora installation (comes with 6.11.4) - Bluetooth audio works perfectly
  2. After sudo dnf update and reboot (updates to 6.12.9) - Bluetooth audio starts stuttering

Key Differences Found Between Kernels (via diff analysis):

  1. WiFi Firmware Changes:

    • 6.11.4: Uses rtw8852c_fw.bin (version 0.27.56.14)
    • 6.12.9: Uses rtw8852c_fw-1.bin (version 0.27.97.0)
  2. Bluetooth Module Changes:

    • Different srcversion identifiers:
      • 6.11.4: B845E3D337E984D458032D7
      • 6.12.9: 8DD395661BE4304F8520852
  3. Additional Firmware Elements in 6.12.9 (not present in 6.11.4):

    • BB version: 00 28 00 00
    • Radio A version: 00 63 00 00
    • NCTL version: 00 11 00 00
    • TXPWR version: 00 69 01 00
    • PWR_TRK version: 00 26 00 00

Both kernels use the same Bluetooth firmware (rtl8852cu_fw_v2.bin), but the module build and handling appear to be different. The additional firmware elements and power tracking in 6.12.9 might be related to the interference issues.

2 Likes

Did you ever found a solution? I tried many things, but it seems something is causing is buffering issues.

I could replace the Realtek chipset, but it’s a real pain on my Lenovo notebook.

I did find a workaround! I’ll share the full script when I get home, but here’s the gist of what it does:

The script checks if the system is using any version other than rtw8852c_fw.bin (the working 0.27.56.14 version) and if so, it:

  1. Creates a backup of the current firmware file (whether it’s rtw8852c_fw-1.bin, rtw8852c_fw-2.bin, etc.)
  2. Creates a symbolic link from rtw8852c_fw.bin (the working 0.27.56.14 version) to replace the current firmware file

This effectively forces the system to use the known-working firmware version even when the kernel expects a newer one. It’s not an ideal solution, but it resolves the audio stuttering without requiring hardware replacement.

I’ll post the actual script with proper paths and error handling when I’m back at my desk.

1 Like

I’ve created a temporary workaround for this issue and published it on GitHub: GitHub - anfreire/rtw8852c-fedora-fix

It’s a simple script that forces the system to use the working firmware version (0.27.56.14) from kernel 6.11.4. While this isn’t a proper solution, it does resolve the stuttering for those who need a quick fix.

Note that you might need to rerun the script after kernel updates if the stuttering returns, as updates can revert to using newer firmware versions.

Please test and share your results if you try it. This could help us gather more data about which firmware versions work and which don’t across different kernel versions.

1 Like

After analyzing the kernel commits around the problematic firmware version (0.27.97.0), I’ve found some interesting changes in power management and firmware handling that might be related to the stuttering:

  1. Changes in how power modes are handled during WoWLAN states
  2. Different interrupt handling during firmware operations
  3. A reversion of firmware format from version 1 back to version 0 in the kernel code

I’m currently testing a minimal configuration that disables power saving features:

/etc/modprobe.d/rtw89.conf:

options rtw89_core disable_ps_mode=Y

Initial testing has shown mixed results - some boots work perfectly while others still experience stuttering.

If anyone wants to try this configuration:

  1. Create the config file
  2. Run sudo dracut --force
  3. Reboot your system

Would appreciate if others could test and share their results, particularly noting if they experience inconsistent behavior between reboots like I have.

1 Like

I can confirm the github script works on my end, will try the next fix maybe over the weekend. No more reverting to 6.11.11

Update: Bug Report Filed with Kernel Team

I’ve officially filed a bug report with the Fedora kernel team regarding the Bluetooth audio stuttering issue affecting RTL8852CE controllers:

Bug Report: Bugzilla #2349675

Summary of Findings

After extensive testing, I’ve confirmed this is a regression in the newer rtw8852c_fw-1.bin firmware (version 0.27.97.0) used in kernels 6.12+. The older firmware (version 0.27.56.14) works perfectly.

The logs clearly show System Error Recovery (SER) events with the newer firmware during WiFi activity, which directly correlate with 4+ second gaps in Bluetooth audio transmission.

Diagnostic Data Repository

I’ve created a GitHub repository with comprehensive diagnostic data showing the issue in action:

This includes logs from both working and non-working firmware versions, and the diagnostic script I used to gather the data.

Temporary Workaround

If you’re experiencing this issue, you can use this workaround until a proper fix is available:

# Rename the problematic firmware file to force fallback to the older version
sudo mv /lib/firmware/rtw89/rtw8852c_fw-1.bin /lib/firmware/rtw89/rtw8852c_fw-1.bin.bak
# Reboot

If you’re also affected by this issue, please consider adding a comment to the Bugzilla report to help demonstrate the scope of the problem.

1 Like

I tried the temporary workaround. I don’t know why but it worked only once and during that time the network speed was severely affected by the Bluetooth “streaming”, as if it were competing for the resource. (Maybe the kernel “guys” were trying to fix the slow speeds?)

Im on kernel 6.13.6-200.fc41.x86_64

Based on my investigation, I believe that several commits between kernel 6.11.4 and 6.12.9 could be related to both the Bluetooth stuttering issue and the slower WiFi speeds you experienced when using the workaround.

Looking at the commits I analyzed, these specifically might explain the WiFi performance trade-off:

  • c9ac071e30b wifi: rtw89: use frequency domain RSSI
  • 9ecb64ed07e wifi: rtw89: adjust DIG threshold to reduce false alarm
  • 6833337585d wifi: rtw89: coex: Add new Wi-Fi role format condition for function using
  • b0923d48529 wifi: rtw89: coex: Bluetooth hopping map for Wi-Fi role version 7
  • e43175dc045 wifi: rtw89: coex: Update Wi-Fi role info version 7

What’s likely happening is that the newer firmware (rtw8852c_fw-1.bin) includes optimizations aimed at improving WiFi throughput, but at the expense of stable Bluetooth connections. When you revert to the older firmware with my workaround, you’re prioritizing Bluetooth stability over the latest WiFi optimisations.

I already reported this bug to bugzilla and we are waiting for it to be viewed.

Any additional help in trying to debug the specific commit or any action that might accelerate the review of the open bug report is appreciated.

1 Like

Hi @anfreire ,

I also have a Lenovo and suffering from the exact same problem. I’m glad that you’re still updating your thread with new information. I was installing the latest 6.11.x kernel by myself to get around the issue. But it seems you’ve actually found the root cause.

I also tested other distros like Kubuntu, OpenSuse etc. and it was reproducible on all 6.12.x kernel versions.

I’m following your bugzilla ticket on redhat. Perhaps opening a ticket on https://bugzilla.kernel.org/ could help as well?

Hi.
I would like to report the exact same issues. I partially solved this when i configured my router to work on 5Ghz. This way the wifi frequency doesn’t interfere with the bluetooth. As far as a red, they use common bus to communicate and because Radeon drivers doesn’t support coexist and because bluetooth also works on 2.4Ghz frequency, we experience, what this discussion is all about. My setup is: bluetooth speaker (because my native laptop speakers are crappy), bluetooth keyboard and mouse. I can use my mouse with dongle and with bluetooth. But if i use it with bluetooth from time to time the bluetooth speakers disconnects and this i very annoying. So i use the mouse with the dongle. This way everything works nice. I Also have tried to use only the bluetooth speaker and the mouse with the bluetooth interface…Again the speaker disconnects from time to time. So, the mouse with the bluetooth speaker look like overload somehow the communication layer. These are the conclusions I came up to.

I run on Fedora Silverblue by the way.
I really would like to try to switch to the old firmware. I tried variety of ways but no luck. The immutability of the system needs special approach. Can you somebody suggests something which is known to be a solution for firmware override in silverblue? I switched from Ubuntu to Fedora silverblue and still learning some things.

I spend lot of time to try to fix this annoying bluetooth problem.. lots and lots of configurations. And the best thing I could came up with was to switch my router to 5Ghz and to use my mouse with the dongle. So only this way I can use wifi with good speed, bluetooth speaker, and bluetooth keyboard.

I forget to mention also that if network is supplied through LAN cable, speed is as expected and the bluetooth speaker works without interruptions.

If I use USB tethering from my phone, the same crap happens, bluetooth speaker disconnects frequently even though I use my mouse with the dongle.

Just another “me too”.

Thank you @anfreire for all the trouble you had to go to troubleshoot it and posting all the updates with a workaround here.
I really hope we get some fix on this.

Thanks @anfreire - this seems to have done the trick for my BT audio issues, but the real test will be when I next do some MMO gaming while in Discord voice chat :slight_smile:

Other distros also have this issue, encountered it with Manjaro (25.0.3 Zetar @ kernel 6.14.6-2) too, which isn’t surprising given it’s a kernel / driver thing. With linux-firmware at version 20250508.788aadc8 there also is an rtw8852c_fw-2.bin. Not sure if that fixes things given that won’t seem to run on my machine.

Managed to get the stuttering to stop by enabling the working rtw8852c_fw.bin and disabling rtw8852c_fw-1.bin (with .bck) like within the fix.
Sha1sum of the v0 does seem to match the one in the repo. sha1sum /usr/lib/firmware/rtw89/rtw8852c*;

9c441fb62fbb8a35f6e3699a31bfd5582f80a67b  /usr/lib/firmware/rtw89/rtw8852c_fw-1.bin
dbd01a343e4992fb935ffc14894a30ca4751e02d  /usr/lib/firmware/rtw89/rtw8852c_fw-2.bin
0ccc21463c4678d0875e6d80eba7b926e8e73b1b  /usr/lib/firmware/rtw89/rtw8852c_fw.bin

Bit of a hacky fix but it does work. Did have to do the alterations manually given the files aren’t distributed as .xz on my distro. Hope the the Bugzilla report eventually helps fix this issue more officially.