Prerequisites
-
Linux Distro: Arch Linux
-
Release Version: Rolling release (no specific version)
-
Last Updated: Regularly updated, last full system update:
sudo pacman -Syuon 2025-01-18 -
Kernel:
6.18.5-arch1-1(also tested with6.17.0-arch1-1with same results) -
BIOS Version:
03.09(latest as of 2025-01-19) -
Framework Laptop 13 Model: AMD Ryzen™ 300 Series (Framework Laptop 13 - AMD Ryzen 5 AI 340)
Issue Description
The Goodix fingerprint sensor (ID 27c6:609c) works correctly on a fresh boot but disappears completely after suspend/resume cycles. The sensor is not detected by lsusb, fprintd, or the system until a USB controller reset is performed.
Steps to Reproduce
-
Fresh boot system
-
Verify fingerprint works:
fprintd-enrollorfprintd-verify -
Suspend system:
systemctl suspend -
Resume system (press power button)
-
Attempt to use fingerprint - fails
-
Check sensor status:
lsusb | grep -i goodix- no output
Debug Information
dmesg shows critical errors:
text
[41637.641560] xhci_hcd 0000:c1:00.4: xHCI host controller not responding, assume dead
[41637.641588] xhci_hcd 0000:c1:00.4: HC died; cleaning up
[41637.641652] usb 1-1: PM: dpm_run_callback(): usb_dev_resume returns -22
[41637.641669] usb 1-1: PM: failed to resume async: error -22
[41637.645899] usb 1-1: USB disconnect, device number 2
Sensor hardware details:
-
USB ID: 27c6:609c
-
Product: Goodix USB2.0 MISC
-
Manufacturer: Goodix Technology Co., Ltd.
-
Serial: UID39C0152B_XXXX_MOC_B0
-
USB Path: usb1 → port 1-1 (bus 1, port 1)
Hardware/Software Context
-
USB Controller: AMD XHCI at 0000:c1:00.4 (USB 3.2 Gen 2)
-
Kernel modules involved:
xhci_hcd,xhci_pci,goodix -
Power states: Device appears to go to D3cold and fails to resume to D0
-
BIOS settings tried:
-
XHCI Hand-off: Enabled/Disabled (no difference)
-
USB Power Delivery: Various settings tested
-
Fingerprint Reader: Enabled
-
Testing Performed
-
Kernal(s)
-
6.17.x series: Fails
-
6.18.x series: Fails
-
-
Power management tests:
-
Setting
usbcore.autosuspend=-1in kernel parameters: Helps but doesn’t fix -
Disabling USB autosuspend system-wide: Prevents issue but increases power consumption
-
-
Sensor behavior:
-
Boot: ✓ Detected and working
-
First suspend/resume: ✗ Not detected
-
After USB reset: ✓ Working again
-
Subsequent suspend/resume: ✗ Not detected
-
Root Cause Analysis
Based on debugging, the issue appears to be a power sequencing problem during resume:
-
The XHCI USB controller (0000:c1:00.4) fails to properly reinitialize after suspend
-
Port 1 (where fingerprint is connected) doesn’t receive power or enumeration signal
-
Goodix sensor remains in low-power state (D3cold) and isn’t woken
-
USB disconnect events indicate ACPI power state transition failure
Request
-
BIOS/EC firmware investigation: Could there be incorrect power state tables for this USB port?
-
ACPI table review: Are the D3cold→D0 transitions defined correctly?
-
Hardware design check: Is the fingerprint sensor on a power rail that needs special handling?
-
Coordination with Linux maintainers: This may need kernel patches for proper AMD XHCI resume handling