Support for capture during suspend (including automatic wakeup)
The following is the windows lock and unlock behavior with sleep enabled for the devices. The same behavior is expected in linux too to save power.
Windows (Host PC) <-> Device <-> FP Sensor
- When windows lock happens, windows sends a command to start capture and waits for the interrupt indefinitely.
- Device gets the start capture command and notifies the sensor that be ready for the capture, enables the capture complete callback, and device sleeps.
- Now Windows is locked, waiting for the capture interrupt from the device and device is sleeping and maybe sensor also sleeping waiting for the finger event (depends on firmware)
- Now user places finger on the sensor for unlocking (without hitting any button or something).
- This event triggers the sensor, it captures the finger, wakes up the device and calls the capture complete callback of the device.
- Device notifies (or interrupts) the Windows host which is waiting for the capture interrupt indefinitely.
- Windows then sends the Identify command and gets the result.
- Finger matching happens in device, it sends the finger OK/NOT OK result, then the Windows unlocks depending on the result.
So here if you see, the device need not be active always, it can go to sleep to save the power, but still does the job!!