Hi there, not sure if this is related to your problems, but I was having similar issues which were related to power management. I am on Omarchy / Arch Linux on Framework 13, AMD Ryzen AI 5 340. Dmesg is showing that Goodix fingerprint reader failed to resume from sleep. I tried to disable power management for reader (via udev rule), also did USB quirks in kernel cmd line, without luck.
Finally it got “resolved”, well workarounded, by unbinding and rebinding USB xHCI controller, which is hosting the reader. Now it works, but is is ugly way of restarting a device, which is unable to weak up from sleep.
I used this script, which I placed in systemd: /usr/lib/systemd/system-sleep/95-xhci-c1-reset.sh
#!/bin/sh
# Rebind USB controller 0000:c1:00.4 after resume to restore Goodix fingerprint reader.
PCI_FUNC="0000:c1:00.4"
GOODIX_ID="27c6:609c"
DRIVER_PATH="/sys/bus/pci/drivers/xhci_hcd"
case "$1" in
post)
# Give the system a moment to resume normally
sleep 2
# Check if the fingerprint reader is missing
if ! lsusb -d "$GOODIX_ID" >/dev/null 2>&1; then
logger -t fp-rebind "Goodix missing after resume, resetting xHCI controller $PCI_FUNC"
# Unbind and rebind only that PCI function
echo "$PCI_FUNC" > "$DRIVER_PATH/unbind"
sleep 1
echo "$PCI_FUNC" > "$DRIVER_PATH/bind"
sleep 2
# Restart fprintd so it picks up the reader again
systemctl try-restart fprintd.service
fi
;;
esac
Dont forget to chmod+x the file.
Original error in dmesg:
[ 1576.335739] usb 1-1: PM: dpm_run_callback(): usb_dev_resume returns -22
[ 1576.335752] usb 1-1: PM: failed to resume async: error -22
[ 1576.339433] usb 1-1: USB disconnect, device number 2
After trying to disable power management just for reader, I also got:
usb 1-1: device not accepting address
usb 1-1: reset failed, -110
usb 1-1: device descriptor read/64, error -71
Hope this helps anyone.
Also worth mentioning that I am on kernel 6.17.1-arch1-1 and I have updated all firmwares in my Framework to latest versions as of this day.