HP Spectre x360 14-eu0xxx (Intel BE200) - iwlwifi unresponsive after s2idle sleep

System Information:

  • Device: HP Spectre x360 2-in-1 Laptop 14-eu0xxx
  • OS: Fedora Linux 43 (KDE Plasma)
  • Kernel: 6.18.8-200.fc43.x86_64
  • Wi-Fi Card: Intel Wi-Fi 7 BE200 (PCI ID: 8086:272b, Subsys: 8086:00f4)
  • Driver: iwlwifi

Issue:
Upon resuming from suspend (s2idle), the Wi-Fi card becomes completely unresponsive. NetworkManager shows the device as unavailable or unmanaged, and reloading the driver module does not fix it. The system requires a full reboot to restore Wi-Fi connectivity. Deep sleep (mem_sleep_default=deep) is broken on this laptop (it never wakes up), so I am forced to use s2idle.

Logs & Symptoms:
The dmesg logs show the card returning invalid data (0xFFFFFFFF) immediately after wake:

[  339.266299] iwlwifi 0000:01:00.0: 0xFFFFFFFF | tsf low
...
[  339.266384] iwlwifi 0000:01:00.0: Transport status: 0x00000042, valid: -1
[  339.266387] iwlwifi 0000:01:00.0: 0xFFFFFFFF | ADVANCED_SYSASSERT
...
[  339.866245] iwlwifi 0000:01:00.0: timeout waiting for FW reset ACK (inta_hw=0xffffffff, reset_done 1)

There is also a warning trace related to HE (Wi-Fi 6) capability initialization:

WARNING: CPU: 18 PID: 1689 at drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:810 iwl_init_he_hw_capab.isra.0+0x225/0x240 [iwlwifi]

What I have tried (all failed):

  1. Driver Reload Script: Created systemd-sleep scripts to modprobe -r iwlwifi pre-sleep and modprobe iwlwifi post-sleep.
  2. PCI Rescan: Script to remove the PCI device (echo 1 > remove) before sleep and rescan (echo 1 > rescan) after wake.
  3. Kernel Parameters: Tested pcie_aspm=off.
  4. Driver Options: Added the following to /etc/modprobe.d/iwlwifi.conf:
    • disable_11be=1 (Disable Wi-Fi 7)
    • disable_11ax=1 (Disable Wi-Fi 6)
    • remove_when_gone=1
    • power_save=0
  5. BIOS/Firmware: Confirmed no updates available via fwupd.

It seems like a deeper ACPI/Power Management issue with the Intel BE200 card on this specific HP chassis. Has anyone else encountered this or found a working workaround?

Update: following the instructions in the README.md and using the setup-wifi-wakeup.sh script from GitHub - aigilea/hp_spectre_x360_14_eu0xxx: Linux on HP Spectre X360 14-eu0000 fixed the issue for me.
This however caused my Bluetooth connection to keep cutting out on wakeup, so I disabled USB autosuspend for Bluetooth.