Commit Graph

1226 Commits

Author SHA1 Message Date
Marco Trevisan (Treviño) 3ea2ee8a76 tod: Change namespace of internal functions to tod_*
In this way we don't have the risk of them being exported because
starting with `fpi_*`.
2022-10-13 20:42:31 +02:00
Marco Trevisan (Treviño) 18ca916c4d tod: Add fpi_device_suspend and fpi_device_resume to 1.94 version 2022-10-13 20:12:14 +02:00
Marco Trevisan (Treviño) 082b335300 Merge tag 'v1.94.5' into tod
v1.94.5

 * New driver: fpcmoc, supporting various FPC MOC Fingerprint Sensors
 * goodixmoc: New PIDs 0x6014, 0x6094, 0x631C, 0x634C, 0x6384, 0x659A.
 * goodixmoc: Support resetting device on firmware failure due to corrupted DB.
 * elanmoc: New PIDs 0x0c88, 0x0c8c, 0x0c8d.
 * synaptics: New PID 0x0104.
 * upektc: New PID 0x2017.
 * Fixed various memory leaks
 * More tests

Git-EVTag-v0-SHA512: a36e4b627ffc830a78932266119b73e53921965990bd1b6cae6fd8d166b1b8e62f5a538151a74b82a2a2d83a4ab7399ed17cb2bef39441f881a38a24252e4efa
2022-10-13 20:08:10 +02:00
Marco Trevisan (Treviño) 2e79e6f353 tod-goodix-wrapper: Fix syntax as per uncrustify 2022-10-13 20:06:13 +02:00
Marco Trevisan (Treviño) 2f3d9240b7 tod-symbols: Define other macros that could be useful in future 2022-10-13 19:46:26 +02:00
Marco Trevisan (Treviño) c36310fed1 tod: Force libfprint-tod to be a shared library and link whole with private
Also unset the private library if set and make libfprint to only link
with the tod one.

This fixes the issue we had with wrong symbols shared by multiple
libraries
2022-10-13 19:45:17 +02:00
Marco Trevisan (Treviño) c04d15bbf1 fp-device: Move FpDevice private functions to public library
This these functions are not really needed by anything else than
FpDevice, so move them back to the cpp file, so that we don't expose
them in the private library, given that we don't need them
2022-10-13 19:42:50 +02:00
Marco Trevisan (Treviño) 8e7e5bf710 tests: Add tests to ensure that we don't duplicate symbols in libraries
We have an issue where some symbols are exposed by both the tod library
and the public one, and this may lead to big issues like GType's being
defined multiple times.

So add a test checking whether this is working

See: 3v1n0/libfprint#1
2022-10-13 19:41:39 +02:00
Marco Trevisan (Treviño) 4824380f79 Revert "fpi-device: Avoid using device action strings"
This reverts commit fbffb62ecb.
2022-10-13 14:09:25 +02:00
Marco Trevisan (Treviño) 2718dc02e0 vfs0050: Initialize the usb transfer buffer when allocating it
Ensure that the memory that we're going to populate via USB transfer is
initialized, otherwise valgrind may complain about (even if that's not
really an issue).
2022-10-13 05:04:03 +02:00
Marco Trevisan (Treviño) abd7c66833 fp-device: Do not setup current action before updating temperature
At every action we update the device temperature, and this can
potentially lead to a failure, if the temperature is too hot.

However in such case we were failing a task that we had just stolen,
causing an error, tasks never returning and the device was left in an
undefined state.

So, just return early in case temperature is too hot, as we don't really
need to have the current task or action set at this point because
there's no active action to cancel yet.

This was causing random errors when running tests under valgrind
2022-10-13 05:04:03 +02:00
Marco Trevisan (Treviño) 8716ddb07a fp-print: Fix a typo in documentation 2022-10-13 05:04:03 +02:00
Marco Trevisan (Treviño) fd7d93e619 fpi-device: Do not leak suspend/resume tasks
We kept suspend/resume GTask's around but at the moment of completing
them we didn't unref them, leading to leaks.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) 0592c0e5ad uru4000: Cleanup cancelled error before early return 2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) 684e3c460a uru4000: Shutdown NSS on device close
We were allocating NSS during device opening but never closing it,
causing many leaks.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) 4278668c8f egis0570: Cleanup the received image that is going to be resized
It's just temporary for us as we're providing the resized one instead.
2022-10-13 05:04:02 +02:00
Marco Trevisan (Treviño) 669e091b03 virtual-device: Use an autoptr to handle the new scan print
We may not use this print, so let's use an autoptr to handle its life
cycle to clean it up when not used.
2022-10-13 05:04:02 +02:00
Haowei Lo cca2b6a624 fpcmoc: Support FPC moc devices
Supported PID: 0xFFE0/A305/D805/DA04/D205
2022-10-11 08:11:38 +00:00
Lv Ying 6395228bb8 goodixmoc: add PID 0x6014
Signed-off-by: Lv Ying <lvying.system.thoughts@gmail.com>
2022-10-09 10:45:18 +08:00
Marco Trevisan (Treviño) 5d9fc8b3c8 fpi-device: Do not leak USB devices while iterating
To compute the device ports we walked up through the devices using
g_usb_device_get_parent(), but this is supposed to return a device with
transfer full, so we need to unref it when done with it.

To handle this nicely, use a mixture of autopointer's and g_set_object
to ensure we're doing the right thing when passing the ownership around.
2022-09-27 18:21:20 +02:00
Marco Trevisan (Treviño) 62f2f34655 fpi-device: Fix a small leak when configuring the wakeup 2022-09-27 17:38:51 +02:00
Marco Trevisan (Treviño) 171e65f73f libfprint: Use g_memdup2 everywhere
It's just safer when available.
2022-09-27 17:10:33 +02:00
Marco Trevisan (Treviño) 446cedbcfc fpi-compat: Add definition for g_memdup2 when not available or deprecated
It's suggested to use g_memdup2 everywhere, but since we've a max-glib
version set we'd get a "deprecation" warning.

Avoid it this by re-defininig it through a macro in both cases.
2022-09-27 17:10:33 +02:00
Marco Trevisan (Treviño) 4012a4fe6f fpi-device: Clarify identify prints gallery usage in drivers docs 2022-09-27 16:43:33 +02:00
Marco Trevisan (Treviño) 70dc61d647 libfprint: Add top-level sync-udev-hwdb target for updating DB 2022-09-27 16:32:09 +02:00
Marco Trevisan (Treviño) ca481cce50 fprint-list-udev-hwdb: Update devices from wiki 2022-09-27 16:32:09 +02:00
mbv06 06abc256a4 upek: add PID 0x2017 2022-09-27 09:01:58 +00:00
Paulo E. Castro c74a1ab6d1 goodixmoc: add PID 6094 2022-09-06 07:59:57 +00:00
hermanlin beac7f934d elanmoc: Fixed unreachable code
ISSUE=503

Signed-off-by: hermanlin <herman.lin@emc.com.tw>
2022-08-26 18:44:22 +08:00
mahaosen 151551b52b goodixmoc: add PID 0x634C 2022-08-26 16:46:16 +08:00
Aris Lin 89a0d5f958 synaptics: Add new PID 0x0104 2022-08-16 15:45:13 +00:00
mahaosen 3a82991586 goodixmoc: add PID 0x631C 2022-08-16 15:30:47 +00:00
Bastien Nocera c3e88f6e46 context: Fix race when shutting down context
Fix possible race which would happen when freeing the devices array
before cancelling the initialisation:
(/builds/libfprint/libfprint/_build/tests/test-fp-context:1449): GLib-CRITICAL **: 14:00:19.640: g_ptr_array_add: assertion 'rarray' failed
2022-08-16 17:14:07 +02:00
Bastien Nocera ac3b0d07ba hwdb: Add FT9201Fingerprint reader
To the unsupported list.
2022-08-16 15:58:53 +02:00
Bastien Nocera 9ca1564e2d hwdb: Add Lenovo ThinkPad E15 fingerprint reader
To the unsupported list.
2022-08-16 15:58:53 +02:00
Johnny Li fb63c39750 elanmoc: add PID 0x0c8c & 0x0c8d 2022-07-25 14:11:37 +08:00
Marcus Pfeffer f007161bcd goodixmoc: add PID 0x6384
Closes: #489
2022-07-21 11:37:40 +02:00
yangdi 489332c07d goodixmoc: add PID 0x659A 2022-07-19 11:37:46 +08:00
Marco Trevisan (Treviño) fbffb62ecb fpi-device: Avoid using device action strings
It may cause initializing a type twice in some cases, and thus some
hard-locking, let's just avoid it since we don't care about full debug
strings here.
2022-07-17 17:34:23 +02:00
Marco Trevisan (Treviño) 0d5c897b3d tod: Add wrapper for goodix-tod not handling identification with no prints
Newer fprintd supports duplicate-detection, this implies sending to the
device an empty prints gallery, expecting the device to give us a
matched print against its storage.

In case the device has no storage we're doing this anyway, but goodix
doesn't handle this properly, so let's just ignore the case if no prints
are passed.
2022-07-17 17:34:23 +02:00
Marco Trevisan (Treviño) 7f6ab61292 fp-device: Return an error if prints are invalid
We'd crash later otherwise, while it's better to return an error.
2022-07-14 21:14:29 +02:00
Marco Trevisan (Treviño) f03d9361e3 fpi-device: Improve documentation for identify/verify report and complete
We still mentioned variables that are not accepted anymore since we
switched to match reporting API.
2022-07-14 21:13:35 +02:00
hermanlin 24e7e1f100 elanmoc: Make sure sensor in the right mode at identity
Signed-off-by: hermanlin <herman.lin@emc.com.tw>
2022-07-11 15:39:11 +00:00
Sam James 61f0f86904 nbis: fix build on musl
Drop re-definition of stderr. There's no need for this anywhere
(including glibc). This breaks in particular on musl because
stderr (and stdin) are both const, and macros unlike in glibc.

Bug: https://bugs.gentoo.org/853811
2022-07-03 02:36:55 +01:00
Benjamin Berg 08da0eb1e1 goodix: Make fingerlist parse error non-fatal
Otherwise we cannot recover from the error by doing a device reset.
2022-06-22 15:40:12 +00:00
Benjamin Berg 8552290bec goodix: Reset device if storage listing fails
When opening the device, query the stored prints. This should usually
always succeed (and it should be fast). If it fails, then we are very
likely dealing with a corrupted template storage on the device. In that
case, emit the command to clear the storage in order to reset the device
and get it back into a usable state.
2022-06-22 15:40:12 +00:00
Benjamin Berg 42c9003f49 goodix: Lower poor capture warnings to debug message
It is completely fine for a capture to have a low quality or fail. No
need to warn about this. Main reason to remove it though is so that
recordings that contain such a message do not trigger a failure.
2022-06-22 15:40:12 +00:00
ArronYen 7899bf4240 elanmoc: add PID 0x0c88 2022-06-20 14:03:05 +08:00
Benjamin Berg 9c12b762a7 print: Fix indentation 2022-06-09 15:36:10 +02:00
Benjamin Berg 8b8dc0fec2 hwdb: Sync with wiki to add more unknown devices 2022-05-24 14:38:10 +02:00