Commit Graph
1909 Commits
Author SHA1 Message Date
Marco Trevisan (Treviño) a4eb3013da mafpmoc: Init the device enroll stage at class init 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 77b73b04b4 mafpmoc: Allow listing non-fprint prints
It's then up to the upper levels to handle them differently, and fprintd
is already strong enough to ignore them.
2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 5a2762fe17 mafpmoc: Cleanup handling of identify and matching prints
Make clearer the ownership of the prints we're tracking
2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 147f3db814 mafpmoc: Ensure the current task SSM reference is always cleaned up 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 3cbeb34d36 libfprint/fprint-list-udev-hwdb: Drop mafpmoc from unsupported list 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 4be0fc60a4 mafpmoc: Init print id value 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 893003799d mafpmoc: Ignore prints not enrolled by FPrint when listing them 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) b25cbff9be mafpmoc: Do not compare differently signed values 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) b141eca270 mafpmoc: Handle cancellation without overriding the error 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 95ecaa156d mafpmoc: Improve creation and destruction of templates list 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 3ce345b876 mafpmoc: Do not pack templates structure
Otherwise undefined sanitizer would fail for unaligned memory access
2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) b3ad630fb4 mafpmoc: Steal errors when forwarding their ownerships 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 8d81299743 mafpmoc: Clear errors when they are not forwarded 2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) 67649a0efd pafpmoc: Drop check on fprintd templates
It's not up to the drivers do do this check
2026-06-18 15:47:34 +02:00
Marco Trevisan (Treviño) bbd4ca2fdf mafpmoc: Cleanup code 2026-06-18 15:47:34 +02:00
‘王毅’andMarco Trevisan (Treviño) e1caa3de3b formatting 2026-06-18 15:47:34 +02:00
王毅andMarco Trevisan (Treviño) beab941894 Modify debugging print interface, modify comments 2026-06-18 15:47:34 +02:00
王毅andMarco Trevisan (Treviño) 7cf358d42a mafpmoc: Support Microarray Inc. series fingerprint sensor PID 8012 2026-06-18 15:47:34 +02:00
lichenggangandMarco Trevisan (Treviño) 4610f2285e elan: Add support for 0x0c58 sensor response codes
The Elan 04f3:0c58 sensor returns 0xaf during capture which indicates
finger removed or sensor busy. Also 0x00 can occur meaning not ready.
These responses should trigger a retry instead of failing.

To avoid changing behavior for other Elan devices, limit the new retry
logic to the 0x0c58 device type and add a small 10ms delay between
retries.

Additionally, increase calibration attempts from 10 to 30 for 0x0c58
as this sensor needs more time to complete calibration.

Source: https://gitlab.freedesktop.org/libfprint/libfprint/-/work_items/763

Signed-off-by: lichenggang <lichenggang@uniontech.com>

Co-Authored-By: Marco Trevisan (Treviño) <mail@3v1n0.net>
2026-06-17 20:05:02 +02:00
Marco Trevisan (Treviño) 5b01f0b7c1 secugen: Do image processing inside GTask threads
Do not block the main loop to process image data
2026-06-17 19:47:24 +02:00
Marco Trevisan (Treviño) 4a7842347e secugen: Use autopointers 2026-06-17 19:47:24 +02:00
Marco Trevisan (Treviño) 0c34a2b888 secugen: Use device timeout rather than a custom one 2026-06-17 19:47:23 +02:00
Marco Trevisan (Treviño) 3af57e3483 secugen: Check transfers have a minimal lengths 2026-06-17 19:47:23 +02:00
Marco Trevisan (Treviño) 726cf8a515 secugen: Protect against invalid fw_data
This fixes an issue detected by scan build
2026-06-17 19:47:23 +02:00
Jared VacantiandMarco Trevisan (Treviño) 5b34908a21 Add driver for SecuGen Hamster Pro 20
Add support for the SecuGen Hamster Pro 20 (1162:2200), a 500 DPI
press-type optical scanner built around the SIDO020A sensor.

The protocol was reverse-engineered from USB packet captures. The
sensor is configured over I2C-tunneled vendor control transfers and
streams 956x688 raw frames over the bulk endpoint, read in 64KB
chunks so the standard pcap-based test tooling can record full
frames (the kernel usbmon interface truncates single URBs at
ring_size/5). Frames are processed with band compensation, an
edge-aware unsharp mask, a fixed-point bilinear downsample to
300x400, flat-field blending and directional sharpening, driven by
per-device factory calibration data read from the device firmware.
The fixed-point pipeline keeps the output bit-identical across
compilers and architectures for the image comparison test.

The sensor has no proximity hardware and its GET_STATUS request
always returns zeros, so finger presence is detected by polling
preview frames and comparing the mean brightness of the central
region against a calibration background frame.

Includes a umockdev capture/replay test with a reference image.

Closes: https://gitlab.freedesktop.org/libfprint/libfprint/-/work_items/353
2026-06-17 19:47:23 +02:00
Marco Trevisan (Treviño) 732dbe855e fprint-list-metainfo: Update the bug tracker URI 2026-06-17 19:36:59 +02:00
Mikko NymanandMarco Trevisan (Treviño) 0dc384b90e focaltech_moc: add new pid:0xA97A 2026-06-11 19:08:52 +02:00
Harshith GokaandMarco Trevisan (Treviño) e43137c760 feat: Add support for Goodix device 0x27C6:0x6984
It includes autosuspend configuration.
2026-06-11 18:08:30 +02:00
Daniel SchaeferandMarco Trevisan 20f5ce682e tests: /usr/bin/env shebang
Not all distros have /usr/bin/python3. Using env is more portable.

Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2026-06-11 15:47:32 +00:00
Daniel SchaeferandMarco Trevisan 8a2123ce6a fpcmoc: Avoid dead-store
Fixes the CI test_scan_build

libfprint/drivers/fpcmoc/fpc.c:275 — [deadcode.DeadStores]
warning: Value stored to 'data' during its initialization is never read
  CommandData *data = fpi_ssm_get_data (ssm);

Signed-off-by: Daniel Schaefer <dhs@frame.work>
2026-06-11 15:40:46 +00:00
Marco Trevisan (Treviño) 7111218427 docs: Address various issues leading to wrong docs 2026-06-11 15:15:48 +02:00
Marco Trevisan (Treviño) 58a40bb4a3 ci/scan-build: Exclude the full path of the build dir
The tool runs in the build dir as cwd, but let' make this clearer
2026-06-11 15:10:36 +02:00
Marco Trevisan (Treviño) 7c5d1b454d ci: Do pages job also on new tag 2026-06-11 15:10:30 +02:00
Marco Trevisan (Treviño) e40f9825fd ci: Also export docs in pages 2026-06-11 15:10:24 +02:00
Marco Trevisan (Treviño) ed1b18e687 ci: Use upstream image all the times 2026-06-11 15:10:16 +02:00
Daniel SchaeferandDaniel Schaefer 710735efdd examples/clear-storage: Clarify default as N
Pressing enter, selects N(o), make that obvious by capitalizing N
instead of Y.

Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2026-06-11 14:24:56 +08:00
Daniel SchaeferandMarco Trevisan c0a4626a3b focal: Add PID 5158
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2026-06-10 08:36:48 +00:00
Daniel SchaeferandMarco Trevisan bad930503c focal: Add clear_storage
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2026-06-10 08:23:00 +00:00
Marco Trevisan (Treviño) 6a71e039a1 egis_etu905: Double-check that the identified ID is part of the enrolled list 2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) 06ad44bc1d egis_etu905: Improve the identify callback data reading 2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) c0a9811053 egis_etu905: Do not try to continue a failed SSM 2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) 5b51f9c8cc egis_etu905: Sanitize print data parsing 2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) 65c3dcb1eb egis_etu905: Avoid potential wrong memory accesses 2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) c6f9f094af egis_etu905: drop unused sid field
We read it but we never use it
2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) 4b8f46f1f9 egis_etu905: Use fpi-bytes-reader to get the firmware string 2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) 42f0b96c10 egis_etu905: Rely on default device cancellable for all the actions
I don't see a reason why we should rely on a different cancellable for
interrupts, but happy to learn more about this
2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) 12af25d43b egis_etu905: Set short error using function 2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) f5806825de egis_etu905: Remove unused variable 2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) fdbc9ee655 egis_etu905: Remove unused transfer 2026-06-10 10:14:51 +02:00
Marco Trevisan (Treviño) c216f04dd1 egis_etu905: Do not leak the transfer buffer
The buffer is now owned by the data, so we should not steal it when
passing it around or we'll leak.
2026-06-10 10:14:51 +02:00