Suspending on Fedora 42 is broken

Hi, I have recently installed Fedora 42 on my Asus Tuf Gaming F16 laptop
After waking up from suspend (lid close or manual suspend), the system resumes very slowly, and my Wi-Fi completely stops working

I am using RTL8852BE Network controller.

39:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8852BE PCIe 802.11ax Wireless Network Controller [10ec:b852]
Subsystem: Foxconn International, Inc. Device [105b:e111]
Kernel driver in use: rtw89_8852be
Kernel modules: rtw89_8852be

Has anyone found a stable workaround or patch for RTL8852BE and suspend on Fedora 42 / Kernel 6.15?
This problem also occurs on CachyOS distribution.

Thanks in advance.

OS: Fedora 43 (Workstation)

Kernel: 6.18.5

Device: Asus FX607VU - Intel Core 5 210H - RTL8852BE

Root cause: The issue stems from the PCIe D3Cold power state. The system puts the Realtek card into this deepest power-saving mode to save energy, but the firmware/driver fails to successfully wake the hardware up upon resume (especially during s2idle). By disabling d3cold_allowed, we force the card to stay in a shallower sleep state (D3Hot) where it maintains enough power to respond to wake-up signals, preventing the connection drop.

1. Find your PCI ID Run the following command:

lspci -nnk | grep -A 3 -i network

Look for the first identifier (e.g., 0000:01:00.0). This is your [PCI_id].

2. Check current status Replace [PCI_id] with your actual ID:

cat /sys/bus/pci/devices/[PCI_id]/d3cold_allowed

If the output is 1, it is enabled and might be causing the drops.

3. Create the udev rule Run this command to create the rule automatically (replace [PCI_id] with yours):

echo 'SUBSYSTEM=="pci", KERNEL=="[PCI_id]", ATTR{d3cold_allowed}="0"' | sudo tee /etc/udev/rules.d/99-rtw89-d3cold.rules

4. Apply the changes Reload the rules and trigger them immediately:

sudo udevadm control --reload-rules && sudo udevadm trigger

5. Verify Check the status again:

cat /sys/bus/pci/devices/[PCI_id]/d3cold_allowed

It should now return 0

A small note to Realtek: PLEASE STOP MAKING WIFI CARDS.

I found this solution from:

IMPORTANT !!!

Please do not use the following method:

sudo grubby --update-kernel=ALL --args="pcie_aspm=off pcie_port_pm=off pci=noaer nowatchdog" 
sudo dracut -f --regenerate-all

This method disables ASPM for all PCIe devices. This causes power-intensive PCIe devices like GPUs to continue running during sleep, leading to significant overheating and battery drain. In my tests, 30-40 minutes of sleep consumed around 20-25% of the battery. The danger lies in the device overheating during sleep!

1 Like