summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-05-17print: Reject enroll images that can't be matchedbenzea/self-match-checkBenjamin Berg3-5/+22
If the score of a print matching itself is too low to match, then reject it. It can never match and it is therefore completely useless. Also change this into a non-fatal error, the user is free to retry the enroll step in the hope that more minutiae is found (e.g. longer swipe).
2022-05-17device: Fully re-evaluate suspend/resume logic when delayedBenjamin Berg3-89/+108
If we delayed the suspend(/resume) call, then the circumstances may have changed. In particular, an active action may have completed already which means that the driver handler should not be called anymore.
2022-05-17device: Run critical section flushing with a high priorityBenjamin Berg1-0/+1
These delayed calls are pushed into the mainloop for consistency. However, they should run immediately and not be delayed, as such, it makes sense to run them at a higher priority. This actually solves an issue inside the CI where an URB reply is played back even though it should be cancelled by the client.
2022-05-17synaptics: Correctly handle critical section during interrupt resubmitBenjamin Berg1-0/+1
We re-aquire the critical section at the start of the callback, however, it needs to be dropped again (or not taken) if the interrupt transfer is resubmitted.
2022-05-17tests: Test suspend/resume and sysfs attributes in synapticsBenjamin Berg3-149/+186
2022-05-17tests: Reset the USB device before testingBenjamin Berg1-0/+5
The kernel caches URBs to get descriptor values. Doing a reset before starting the record ensures that we will see any descriptor reads in the usbmon trace and can therefore correctly replay them (possibly not true if they happen multiple times).
2022-05-17device: Do not update sysfs attributes if value is correctBenjamin Berg1-30/+48
This avoids spurious warnings on e.g. SELinux enabled systems.
2022-05-08elanspi: add 04f3:241fMatthew Mirvish1-0/+1
Reported as working with this config in https://github.com/mincrmatt12/elan-spi-fingerprint/issues/11.
2022-04-14elan: add PID 0x0c4bJosh Chen3-2/+2
2022-04-11synaptics: Add new PID 0x0168Aris Lin2-0/+2
2022-04-10context: Log version number at startupBenjamin Berg2-0/+3
Having this should at least give us a slightly better idea about the version that the user has installed. Obviously it is still not very accurate (maybe a git hash would be good if available?), but it should still be helpful overall.
2022-03-02elanmoc: add PID 0x0c82ArronYen2-0/+2
2022-02-17device: Clear the critical section source on destructionBenjamin Berg1-0/+1
2022-02-14tests: Avoid -Wdangling-pointer warningBenjamin Berg1-0/+6
The code is correct, but gcc thinks the pointer is still NULL after the call. As obvious workaround don't seem to work, just disable the warning for now.
2022-02-11Release 1.94.3v1.94.3Benjamin Berg2-1/+11
2022-02-11udev-hwdb: Update unsupported device listBenjamin Berg2-2/+16
2022-02-11Convert README to markdowndoomsdayrs1-2/+5
Just a minor change, but makes the file a bit more readable.
2022-02-11Delete TODODoomsdayrs1-30/+0
2022-02-11goodixmoc: support for clear_storageDevyn Cairns2-1/+41
The internal storage of this device can get messed up by other operating systems, so it's handy to be able to clear it. I'm not 100% sure whether the commands I've sent to the device are exactly what is supposed to be used (just a guess), but it did seem to work, and it even fixed another issue I had.
2022-02-03goodixmoc: Report recognized print after a match failureBenjamin Berg1-32/+17
The API should return the recognized print, even if none of the prints given in the gallery (or the one passed to verify) matched. Without this the garbage-collection of left-over prints does not work, causing issues after reinstall. Fixes: #444
2022-02-03goodixmoc: Log which the ID that produced the duplicateBenjamin Berg1-1/+6
2022-02-03examples: Check whether the returned date is validBenjamin Berg3-5/+9
Prints may have an invalid date. Extend the checks so that this is also caught in addition to a NULL date.
2022-02-03goodixmoc: Change error message for corrupted headersBenjamin Berg1-1/+1
Otherwise you can't tell from the log whether parsing the body or header failed.
2022-02-03goodixmoc: Further template parsing fixesBenjamin Berg1-8/+15
In commit 5c28654d9 ("goodixmoc: Fix print template parsing") the length check for the verify and duplicate check responses by requiring two extra bytes at the end of the message. There were also issues in other places where the length was not checked correctly, including a scenario that could cause a read beyond the end of the buffer. Related: #444
2022-01-28synaptics: Remove PID 0xC9Aris Lin3-2/+2
2021-12-23elanspi: Try to avoid cancellation problemsmincrmatt12/elanspi-fix-cancelmincrmatt121-1/+8
2021-12-22elanspi: Adjust register tables (fixes #438)mincrmatt122-4/+41
New values taken from a newer version of the official driver.
2021-12-16Allow FpPrint data to be extended on enrollment.Dmitrii Shcherbakov9-52/+305
* Allow FPI_PRINT_NBIS to be extended rather than overridden if a user supplies an existing FpPrint template with data; * Prints will only be extended if a device has the required feature. For image-based devices this feature is added by default since they typically do not have storage (this can be overridden at the child class level). Extending an existing FpPrint requires passing a template print with existing data during the enrollment process. This is done because the caller is responsible for maintaining the fingerprint database and doing the necessary deserialization operations if needed. The existing example program is updated to show how to do that.
2021-12-02elanspi: Silence some SSMs that may log excessively otherwiseBenjamin Berg1-0/+5
2021-12-02ssm: Add API to silence most state change debug messagesBenjamin Berg3-7/+28
Otherwise tightly looping SSMs (primarily SPI transfers), will flood the logs in inappropriate ways.
2021-12-02elanspi: Move debug print so that it contains all informationBenjamin Berg1-2/+2
Two of the printed variables were only calculated after the message was printed, making the logged information less useful than it could be.
2021-12-01context: Ensure mainloop is idle before enumeration completesBenjamin Berg1-2/+14
This ensures that we have processed all hotplug events before considering enumeration to be complete. This is important due to USB persist being turned off. At resume time, devices will disappear and immediately re-appear. In this situatoin, enumerate could first see the old state with a removed device resulting in it to not be discovered. As a hotplug event is semingly emitted by the kernel immediately, we can simply make sure to process this hotplug event before returning from enumerate. Closes: fprintd#119
2021-11-15doc: Fix broken documentation for FpiDeviceUdevSubtypeFlags enumMatthew Mirvish1-1/+3
Added description and fixed incorrect name in comment, so now gtkdoc actually shows useful information.
2021-11-02Release 1.94.2v1.94.2Benjamin Berg2-1/+8
2021-11-02udev-hwdb: Update unsupported device listBenjamin Berg2-0/+2
2021-10-28doc: Add missing Drivers API SSM functionsMarco Trevisan (Treviño)1-0/+3
2021-10-28doc: Include missing types (SPI) and functions to the Drivers APIMarco Trevisan (Treviño)2-1/+20
2021-10-27goodixmoc: Fix template struct for required length calculationBenjamin Berg1-2/+4
The length is only a single byte in the transfer. However, the struct had a uint32_t in that place, breaking the sizeof() calculation and seemingly creating issues for certain lengths of user id strings (which depend on the username). Fix this by changing the type to uint8_t. Also add the initial 0x43 prefix byte and a byte of apparent padding that the struct contains. Leave the two reserved bytes at the end, as they seem to actually have a meaning (i.e. they are seemingly send in listings). This effectively makes the struct one byte smaller, bringing it down to 127 bytes from 128 bytes. Closes: #428, #404
2021-10-27tests: Add missing trailing new lines on devices attributesMarco Trevisan (Treviño)3-436/+436
This as per the same reasons of commit 63bfaf4, and without trailing new lines such attributes aren't picked by umockdev in ubuntu and debian.
2021-10-20goodixmoc: add PID 63CCboger2-0/+3
63CC: Dell Latitude series fingerprint sensor
2021-10-12elanmoc: add PID 0x0c7dhermanlin2-0/+2
Signed-off-by: hermanlin <herman.lin@emc.com.tw>
2021-09-24Release 1.94.1v1.94.1Benjamin Berg2-1/+11
2021-09-24NEWS: Fix 1.94.0 release dateBenjamin Berg1-1/+1
2021-09-24goodixmoc: Do not run identify step during enrollBenjamin Berg4-316/+106
While useful, there are advantages for this to be done by the surrounding code (i.e. fprintd). As such, remove the identify stage from the goodix driver and rely on fprintd doing it for us. One can probably argue that neither solution is perfect. Ideally, we would probably return the information required to delete the old print to the upper stack and let the driver/device handle the duplicate checking. However, for now this works well. We may need to reconsider this if we get devices that do the duplicate checking transparently and just throw an enroll error. NOTE: The driver did not report any progress for the identify step. As such, the number of enroll steps reported by the device remain the same. Closes: #415
2021-09-21goodixmoc: Returned device print matched by verify/identifyBenjamin Berg1-44/+46
This is needed for the fprintd duplicate checking code. The information is needed to delete stale prints automatically from the device. Related: #415
2021-09-21tests: Run custom.py from test creation helper when availableBenjamin Berg2-11/+22
This allows creating tests both for image and non-image devices using the same script.
2021-09-17goodixmoc: add PID 63BCboger2-0/+3
63BC: Dell XPS series fingerprint sensor
2021-09-17udev-hwdb: Update unsupported device listBenjamin Berg2-0/+2
2021-09-17udev-hwdb: Set ID_PERSIST=0 in hwdbBenjamin Berg2-1/+29
See https://github.com/systemd/systemd/pull/20756
2021-09-17synaptics: add new PID 0x0123, 0x0126, and 0x0129Aris Lin2-0/+6