Public bug reported:

**Description:**

On Lenovo P15v Gen 1 running Ubuntu Unity 24.04, the fingerprint reader
(Synaptics `06cb:00bd`) disconnects during PAM authentication after
resuming from suspend. The root cause is that the integrated camera (IMC
Networks `13d3:56fb`, driver `uvcvideo`) triggers a USB hub reset (`usb
1-8: reset high-speed USB device`) which causes the fingerprint reader
on the same internal USB hub to disconnect and reconnect with a new
device number.

This makes fingerprint authentication fail on the first attempt after
every resume from suspend. The user must press Enter to restart the PAM
authentication cycle, at which point the fingerprint reader has
reconnected and works correctly.

**Steps to reproduce:**
1. Suspend the system (`systemctl suspend`)
2. Resume from suspend
3. The lock screen appears and requests fingerprint authentication
4. Place finger on reader → no response, authentication fails with 
`verify-unknown-error`
5. Press Enter → fingerprint authentication works correctly on second attempt

**Expected behavior:**
Fingerprint authentication works on first attempt after resume from suspend.

**Actual behavior:**
Camera (`usb 1-8`) resets during authentication, causing fingerprint reader 
(`usb 1-9`) to disconnect mid-authentication:
```
kernel: usb 1-8: reset high-speed USB device number 3 using xhci_hcd
kernel: usb 1-9: USB disconnect, device number 14
fprintd: Device reported an error during verify: device was disconnected
compiz: pam_fprintd(unity:auth): Verify result: verify-unknown-error (done: 1)
kernel: usb 1-9: New USB device found, idVendor=06cb, idProduct=00bd
```

**System information:**
- **Machine:** Lenovo ThinkPad P15v Gen 1
- **OS:** Ubuntu Unity 24.04
- **Kernel:** 6.8.0-106-generic
- **Fingerprint reader:** Synaptics Prometheus MIS `06cb:00bd`, driver `[none]`
- **Camera:** IMC Networks / Azurewave Integrated Camera `13d3:56fb`, driver 
`uvcvideo`
- **Display manager:** LightDM with Compiz/Unity
- **fprintd version:** 1.94.3-1

**Additional information:**
The camera and fingerprint reader share the same internal USB hub (Bus 001, 
xhci_hcd). The camera has `power/control=auto` and `autosuspend_delay_ms=2000` 
by default, causing it to reset after resume which disrupts the fingerprint 
reader.

Setting `power/control=on` for the camera via udev rules does not
prevent the reset at resume time as the rule is applied too late.

**Additional contributing factor — fwupd:**

`fwupd` (firmware update daemon) also accesses the fingerprint reader
immediately after resume, causing additional disconnect/reconnect
cycles:

```
kernel: usb 1-9: usbfs: process XXXX (fwupd) did not claim interface 0 before 
use
kernel: usb 1-9: USB disconnect
kernel: usb 1-9: New USB device found, idVendor=06cb, idProduct=00bd
```

**Workaround applied:** A systemd-sleep script stops `fwupd` before
suspend and restarts it 5 seconds after resume, preventing it from
accessing the fingerprint reader during the critical authentication
window.

```bash
# /lib/systemd/system-sleep/fwupd-sleep.sh
if [ "$1" = "pre" ]; then
    systemctl stop fwupd
elif [ "$1" = "post" ]; then
    sleep 5
    systemctl start fwupd
fi
```

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2145186

Title:
  Fingerprint reader disconnects during authentication after suspend due
  to camera USB hub reset

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2145186/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to