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
‘王毅’
e1caa3de3b formatting 2026-06-18 15:47:34 +02:00
王毅
beab941894 Modify debugging print interface, modify comments 2026-06-18 15:47:34 +02:00
王毅
7cf358d42a mafpmoc: Support Microarray Inc. series fingerprint sensor PID 8012 2026-06-18 15:47:34 +02:00
lichenggang
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 Vacanti
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 Nyman
0dc384b90e focaltech_moc: add new pid:0xA97A 2026-06-11 19:08:52 +02:00
Harshith Goka
e43137c760 feat: Add support for Goodix device 0x27C6:0x6984
It includes autosuspend configuration.
2026-06-11 18:08:30 +02:00
Daniel Schaefer
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 Schaefer
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 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 Schaefer
c0a4626a3b focal: Add PID 5158
Signed-off-by: Daniel Schaefer <git@danielschaefer.me>
2026-06-10 08:36:48 +00:00
Daniel Schaefer
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