FW16 kernel hard lock up when disconnecting USB-C devices

Kernel hard lockup when disconnecting USB-C devices - HDMI Expansion Card triggers xhci deadlock

System Info

  • Linux distro: Arch Linux

  • Last updated: 2026-02-17

  • Kernel: 6.18.9-arch1-2

  • BIOS: 03.05

  • Model: Framework Laptop 16 (AMD Ryzen 7040 Series)

  • CPU: AMD Ryzen 9 7940HS

  • Expansion cards: 4x USB-C, 1x HDMI, 1x 3.5mm Audio

What Happened

After a Microsoft Teams video call, I disconnected my external USB-C peripherals (Anker PowerConf S330 speakerphone, Anker webcam, and an HDMI cable to a TV). During disconnection, the system completely froze and required a hard power-cycle reboot.

Root Cause from Logs

The journal (journalctl -b -1) ends abruptly with no shutdown messages, confirming a hard kernel lockup.

The HDMI Expansion Card (usb 5-1, on controller c4:00.3) disconnected and reconnected on its own 3 times during the session — even though it was never physically touched. The cycles were triggered by plugging/unplugging other USB-C devices in nearby slots. On the third cycle, the kernel deadlocked:

11:05:39 - usb 5-1: USB disconnect, device number 4  (HDMI Expansion Card)
11:05:40 - ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
11:05:41 - xhci_hcd 0000:c4:00.3: Refused to change power state from D0 to D3hot
11:05:42 - HDMI Expansion Card reconnects as device number 5
           *** JOURNAL ENDS — system frozen, no further entries ***

The key error is xhci_hcd 0000:c4:00.3: Refused to change power state from D0 to D3hot. After this, nothing further was logged — no kernel panic, no OOM, no GPU errors. The kernel appears to have deadlocked in the USB power state transition.

Steps to Reproduce

  1. Have the HDMI Expansion Card installed with a display connected

  2. Connect additional USB-C peripherals to other expansion card slots

  3. Use normally for a period of time

  4. Disconnect the USB-C peripherals

The HDMI Expansion Card cycles each time nearby USB-C devices change, and the system may freeze during one of these cycles.

Additional Notes

  • The UCSI driver also logged GET_CABLE_PROPERTY failed (-5) errors during each HDMI card cycle

  • Waybar crashed (SIGABRT) as a side effect of the display disappearing — not the root cause

  • The previous boot shut down cleanly, so this is not a recurring boot issue

  • No MCE (machine check exceptions) were recorded

Thanks for such a detailed diagnostic/report. This will help others that might run into the same problem. Was this a single event or is this repeatable?

The kernel hard lock up has happened to me several times over the last few months, generally related to the same series of events (i.e. multiple devices plugged in, used for a time and then unplugged). This is the first time I went digging into the issue. I will report back if I find out a systematic way to make the issue repeatable.

when i put my framework 16 together i did get a mail saying 2 slots at the top left and right shall only be used for USB C modules, did you do that? While rest 4 slots can be used for other things.

Good thought, but I don’t think that is the case. I found this schematic in Framework’s knowledge base that specifies where you can have display out cards…

I have my HDMI expansion card in slot 4.