public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
* [Bug 221073] New: xHCI host controller dies on resume from s2idle on AMD Strix Halo [1022:1587]
@ 2026-02-10 17:46 bugzilla-daemon
  2026-02-10 18:04 ` [Bug 221073] " bugzilla-daemon
                   ` (41 more replies)
  0 siblings, 42 replies; 43+ messages in thread
From: bugzilla-daemon @ 2026-02-10 17:46 UTC (permalink / raw)
  To: linux-usb

https://bugzilla.kernel.org/show_bug.cgi?id=221073

            Bug ID: 221073
           Summary: xHCI host controller dies on resume from s2idle on AMD
                    Strix Halo [1022:1587]
           Product: Drivers
           Version: 2.5
          Hardware: AMD
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: USB
          Assignee: drivers_usb@kernel-bugs.kernel.org
          Reporter: mrh@frame.work
        Regression: No

Created attachment 309339
  --> https://bugzilla.kernel.org/attachment.cgi?id=309339&action=edit
dmesg from Feb 10 2026 reproduction - kernel 6.18.8-200.fc43.x86_64

Hardware: Framework Desktop (AMD Ryzen AI Max 300 Series)/FRANMFCP02
BIOS: 03.04
OS: Fedora 43 (kernel 6.18.8-200.fc43.x86_64)
Reporter: Matt H.— Framework Computer

Affected controller:

c1:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Strix Halo
USB 3.1 xHCI [1022:1587] (prog-if 30 [XHCI])
        Subsystem: Framework Computer Inc. Device 000a
        Flags: bus master, fast devsel, latency 0, IRQ 25, IOMMU group 19
        Memory at 90000000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: [48] Vendor Specific Information: Len=08 <?>
        Capabilities: [50] Power Management version 3
        Capabilities: [64] Express Endpoint, IntMsgNum 0
        Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [c0] MSI-X: Enable+ Count=1 Masked-
        Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010
<?>
        Capabilities: [2a0] Access Control Services
        Kernel driver in use: xhci_hcd

PROBLEM:

The xHCI host controller at 0000:c1:00.4 dies on resume from s2idle.
All USB devices behind this controller are lost. Unbinding and rebinding
the driver restores functionality, proving this is a driver resume path
bug — the hardware is fine.

Reported by Framework customers across multiple distributions:
  - CachyOS (6.18.2, 6.18.8)
  - Debian 13 (6.12.63)
  - Bluefin / Fedora Atomic 43 (6.17.11)

Reproduced by reporter (this report):
  - Fedora 43 (6.18.8-200.fc43.x86_64)

It has also been reported on non-Framework AMD hardware:
  - Lenovo ThinkPad T14 Gen 6 AMD — identical xHCI timeout, identical
    unbind/rebind fix

REPRODUCTION — Feb 10 2026, kernel 6.18.8-200.fc43.x86_64, BIOS 03.04:

  08:10:41 — booted
  08:32:30 — suspended and resumed, controller dead after 22 minutes

  xhci_hcd 0000:c1:00.4: xHCI host not responding to stop endpoint command
  xhci_hcd 0000:c1:00.4: xHCI host controller not responding, assume dead
  xhci_hcd 0000:c1:00.4: HC died; cleaning up

Full dmesg attached.

REGRESSION DATA (cross-distro, same hardware):

  Customer-reported:
  - Kernel 6.12.63 (Debian 13): USB resume fails ~40% of the time
  - Kernel 6.18.2 (CachyOS): USB resume fails 100% of the time
  - Kernel 6.18.8 (CachyOS): USB resume fails 100% of the time

  Reporter-reproduced:
  - Kernel 6.17.1 (Fedora 43): USB resume fails
  - Kernel 6.18.8 (Fedora 43): USB resume fails 100% of the time

The bug exists on 6.12 but is intermittent. By 6.18 it is deterministic.
Something between 6.12 and 6.18 made it worse, but it was already present.

WORKAROUND:

Unbinding and rebinding the xHCI PCI device restores full functionality:

  echo -n "0000:c1:00.4" > /sys/bus/pci/drivers/xhci_hcd/unbind
  sleep 2
  echo -n "0000:c1:00.4" > /sys/bus/pci/drivers/xhci_hcd/bind

This works every time. If the hardware were in a broken state, a driver
rebind would not fix it. The bind path fully reinitializes the controller.
The resume path does not perform the same initialization. This is a kernel
driver bug.

NOT BIOS-SPECIFIC:
  Reproduced across BIOS 3.03, 3.04, and 3.05 on Framework Desktop.

NOT FRAMEWORK-SPECIFIC:
  Same failure on Lenovo ThinkPad T14 Gen 6 AMD with identical symptoms
  and identical workaround.

NOT THE SAME AS BUG #220702 OR #220812:
  Bug #220702 (Strix Halo sleep not working with 6.17 and later) is a VPE
  suspend regression with a specific fix (commit 3925683515e9). That fix
  does not resolve this issue. Bug #220812 (HP ZBook Ultra s2idle failure)
  is the same class, resolved. Our bug predates both — it reproduces on
  6.12 LTS which is unaffected by the VPE commit — and affects non-Strix
  Halo hardware.

NOT THE SAME AS BUG #219824:
  Bug #219824 (cycle bit on link TRBs, fixed in 6.13.7 via commit
  c7c1f3b05c67) is a different xHCI resume failure. That fix does not
  address this issue.

REFERENCES:
  https://github.com/FrameworkComputer/SoftwareFirmwareIssueTracker/issues/163
 
https://community.frame.work/t/framework-desktop-wired-keyboard-and-mouse-dont-return-after-sleep-linux/76414

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.

^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2026-03-18 23:18 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-10 17:46 [Bug 221073] New: xHCI host controller dies on resume from s2idle on AMD Strix Halo [1022:1587] bugzilla-daemon
2026-02-10 18:04 ` [Bug 221073] " bugzilla-daemon
2026-02-11  6:54 ` bugzilla-daemon
2026-02-11 23:04 ` bugzilla-daemon
2026-02-12  8:27 ` bugzilla-daemon
2026-02-12 10:02 ` bugzilla-daemon
2026-02-12 16:15 ` bugzilla-daemon
2026-02-25 11:10 ` bugzilla-daemon
2026-02-26  8:48 ` bugzilla-daemon
2026-02-26  8:50 ` bugzilla-daemon
2026-02-26  9:30 ` bugzilla-daemon
2026-02-26  9:37 ` bugzilla-daemon
2026-02-26 12:16 ` bugzilla-daemon
2026-02-26 12:18 ` bugzilla-daemon
2026-02-26 22:51 ` bugzilla-daemon
2026-02-27 14:04 ` bugzilla-daemon
2026-03-02 16:45 ` bugzilla-daemon
2026-03-02 18:08 ` bugzilla-daemon
2026-03-02 18:14 ` bugzilla-daemon
2026-03-02 19:05 ` bugzilla-daemon
2026-03-03 14:54 ` bugzilla-daemon
2026-03-03 14:55 ` bugzilla-daemon
2026-03-03 14:55 ` bugzilla-daemon
2026-03-03 14:56 ` bugzilla-daemon
2026-03-03 15:05 ` bugzilla-daemon
2026-03-03 15:47 ` bugzilla-daemon
2026-03-03 15:51 ` bugzilla-daemon
2026-03-03 16:59 ` bugzilla-daemon
2026-03-03 17:05 ` bugzilla-daemon
2026-03-03 22:57 ` bugzilla-daemon
2026-03-04  0:20 ` bugzilla-daemon
2026-03-04  9:15 ` bugzilla-daemon
2026-03-06 11:11 ` bugzilla-daemon
2026-03-06 11:40 ` bugzilla-daemon
2026-03-09 10:31 ` bugzilla-daemon
2026-03-11 22:09 ` bugzilla-daemon
2026-03-12  0:04 ` bugzilla-daemon
2026-03-12  6:49 ` bugzilla-daemon
2026-03-12 10:35 ` bugzilla-daemon
2026-03-14  4:29 ` bugzilla-daemon
2026-03-16  0:39 ` bugzilla-daemon
2026-03-17  0:03 ` bugzilla-daemon
2026-03-18 23:18 ` bugzilla-daemon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox