Framework 13 11th Gen Intel - Sleep Issues on Firmware 3.25

After updating to firmware version 3.25, I’ve found that sleep and hibernation aren’t working on Fedora Linux 44, with multiple kernel versions. The behaviour I’m seeing is when I put the laptop to sleep, after a few seconds of a blank screen, the lock screen comes back up. This happens when i explicitly suspend, or close my lid.

I went through several troubleshooting sessions with an LLM agent, all to no effect. Below is a bug report drafted with its assistance. Is there maybe something silly I’m missing in the bios settings that may have been reset after the firmware update?

Suspend and hibernate broken after BIOS 3.25 (11th Gen Intel) - xHCI root hub returns -16 on every sleep path

Summary

After updating to BIOS 3.25, my Framework Laptop 13 (11th Gen Intel)
can no longer suspend or hibernate. Every sleep attempt aborts
immediately and the system wakes back up (“resumed again: Device or
resource busy”). The kernel reports that the on-package USB 2.0 root
hub (usb usb3, the Tiger Lake xHCI controller at PCI 0000:00:14.0)
fails to enter its low-power state, returning error -16 (-EBUSY)
from the device suspend/freeze callback. The internal USB devices on
that hub are also in a continuous reset loop even while the machine is
fully awake.

System details

  • Model: Framework Laptop 13, 11th Gen Intel Core
  • Mainboard: FRANBMCP0B
  • BIOS: 03.25 (2026-06-15)
  • OS: Fedora Linux 44 (KDE Plasma), systemd
  • Kernels tested: 7.2.4-200.fc44 and 7.1.13-200.fc44 – fails
    identically on both (two different kernels were tried to rule out a
    kernel regression)
  • xHCI controller: Intel 500 Series Chipset On-Package USB 3.2 Gen 2x1
    xHCI Host Controller (PCI 0000:00:14.0), rev 20
  • Internal devices on the affected USB2 root hub (bus 3):
    • 0bda:5634 Realtek Laptop Camera (port 7)
    • 27c6:609c Goodix Fingerprint reader (port 9)
    • 8087:0032 Intel AX210 Bluetooth (port 10)

Symptom

Suspend (s2idle and deep S3) and hibernate all abort within a few
seconds; the machine appears to sleep (screen blanks) then immediately
powers back to the lock screen showing “Unlocking failed”, depending on
how long the machine was left. It never stays asleep.

Kernel log (representative, unmodified system)

kernel: PM: suspend entry (s2idle)
kernel: usb usb3: PM: dpm_run_callback(): usb_dev_suspend returns -16
kernel: usb usb3: PM: failed to suspend async: error -16
kernel: PM: Some devices failed to suspend, or early wake event detected
kernel: PM: suspend exit
kernel: PM: suspend entry (s2idle)
kernel: usb usb3: PM: dpm_run_callback(): usb_dev_suspend returns -16
kernel: usb usb3: PM: failed to suspend async: error -16
systemd-sleep: Failed to put system to sleep. System resumed again: Device or resource busy

Hibernate fails at the equivalent freeze phase:

kernel: PM: hibernation: hibernation entry
kernel: PM: hibernation: Allocated 6288364 kbytes in 2.39 seconds
kernel: usb usb3: PM: dpm_run_callback(): usb_dev_freeze returns -16
kernel: usb usb3: PM: failed to freeze async: error -16
systemd-sleep: Failed to put system to sleep. System resumed again: Device or resource busy

With USB port dynamic debug enabled, the USB2 root-hub ports poll
continuously and at least one port status changes mid-suspend, and the
internal devices are repeatedly reset by xhci_hcd even when no sleep is
in progress:

usb 3-9:  reset full-speed USB device number 6 using xhci_hcd
usb 3-10: reset full-speed USB device number 4 using xhci_hcd
usb usb3-port10: status 0107 change 0000
usb usb3-port10: status 0103 change 0000

What I have already ruled out (OS side)

All of the following were tested and did NOT resolve the failure; the
usb usb3 ... -16 abort persisted through every one:

  1. Kernel version: fails identically on two different kernels.
  2. Sleep mode: fails on both s2idle and deep (S3)
    (/sys/power/mem_sleep).
  3. Fingerprint reader: unbinding the Goodix device (27c6:609c) entirely
    did not help; the -16 still occurred.
  4. Wakeup sources: disabling power/wakeup for the touchpad
    (i2c PIXA3854), the i8042 keyboard (serio0), the usb3 hub, and the
    xHCI PCI parent (0000:00:14.0) individually and together did not
    help.
  5. USB quirks: booting with
    usbcore.quirks=8087:0032:jm,27c6:609c:jm (DISCONNECT_SUSPEND +
    IGNORE_REMOTE_WAKEUP for BT and fingerprint) did not help; it only
    increased the reset churn.
  6. Controller unbind: a systemd system-sleep hook unbinding the whole
    xHCI controller (0000:00:14.0) before sleep did not help.
  7. WiFi: disabling the AX210 WiFi radio did not change the hub state.

The combination of (a) failure on every sleep path, (b) independence
from kernel and sleep mode, (c) the internal devices resetting
continuously even while awake, and (d) onset immediately after the
3.25 flash points to a firmware/ACPI-level regression in how BIOS 3.25
initializes or powers the on-package xHCI USB2 root hub.

Request

  • Can Framework confirm whether a known xHCI/USB suspend regression was
    introduced in 11th Gen BIOS 3.25?
  • Is there a supported firmware-side workaround?

How to reproduce

  1. On an 11th Gen Framework Laptop 13 with BIOS 3.25, boot Linux
    (Fedora 44, systemd).
  2. Run systemctl suspend (or close the lid, or systemctl hibernate).
  3. Observe the machine wake immediately; journalctl -k shows
    usb usb3: ... usb_dev_suspend returns -16.

Is it possible to wind back to your prior firmware? Some downgrades are allowed, some are not. I am musing whether waiting for the next BIOS update might be a solution (of sorts).

I just tried it, and it said that going to an older version (3.24) in this case wasn’t allowed.

Gotcha.

Apologies if this has been covered, unfortunately my awkward brain is not able to parse AI writing (thank you for declaring it). Have you tried taking out all of the expansion cards?

Most of my previous troubleshooting was done at the software level. I did just try pulling out all the expansion cards, and got the same result.

It’s behaving like it’s never actually getting into the suspend phase. The screen goes black, but the power button border is still lit, and a few seconds later the screen comes back on.

1 Like

I think I have a workaround for sleep for the time being, involving disabling the entire xHCI controller on entering sleep: Adding the below script into /usr/lib/systemd/system-sleep and marking it executable.

#!/bin/sh
case $1/$2 in
  pre/*)
    # Completely unbind the entire Intel xHCI Controller before sleep
    if [ -e /sys/bus/pci/drivers/xhci_hcd/unbind ]; then
        echo "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/unbind
    fi
    ;;
  post/*)
    # Re-bind the controller on wake to restore Bluetooth, Camera, and Fingerprint
    if [ -e /sys/bus/pci/drivers/xhci_hcd/bind ]; then
        echo "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/bind
    fi
    ;;
esac
1 Like

Nice. I have a rare sleep issue with my new FW 13 Pro: on one occasion the touchpad failed to come back up after a sleep. I have the modprobe sequence to hand; if it keeps happening I will install it in script like yours.

I’m having the same issue with my Framework 13 11th Gen Intel on CachyOS and this indeed seems to solve it. Thanks.