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.

2 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.

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?