Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
4cdca4d
virtual-device: Do not time out when waiting for SCAN command
Jul 26, 2021
dd476c0
elan: Add PID 0x0c58
Jul 29, 2021
96e5888
tests: Show error message in more failure cases
May 18, 2021
a2d9500
device: Add simple temperature model for devices
Apr 21, 2021
71e0c29
device: Always use an internal cancellable for tasks
Apr 21, 2021
6440a7d
device: Add new FP_DEVICE_ERROR_TOO_HOT
Apr 21, 2021
da28731
device: Add feature flag for continuous scanning support
Aug 5, 2021
5b7c5e7
device: Check for device overheating and abort when needed
Apr 21, 2021
23a4f5b
tests: Add temperature and overheating cancellation tests
Aug 9, 2021
77756e1
device: Add device critical section API
Apr 23, 2021
ff6caca
tests: Add test for critical section API
May 19, 2021
d547c00
synaptics: Use critical section API
Apr 23, 2021
968331c
tests: Add full USB device hierarchy
Aug 6, 2021
43336a2
device: Implement suspend/resume methods
Apr 23, 2021
8147372
tests: Add suspend/resume tests
May 18, 2021
5c89bda
synaptics: Implement suspend/resume methods
May 20, 2021
874513e
ci: Always expose job artifacts for tests
Aug 5, 2021
6244849
elanmoc: Adjustments to protocol change (passing an empty user ID)
hermanlinlin Aug 10, 2021
1a5df96
elanmoc: Return the correct error when the storage is full
hermanlinlin Aug 10, 2021
4edfa48
elanmoc: Fix the identify/verify error reporting in identify_status_r…
hermanlinlin Aug 10, 2021
ec42b2a
elanmoc: Increase of the timeout
hermanlinlin Aug 10, 2021
c928d7b
synaptics: Fix error handling when releasing the USB interface
Aug 10, 2021
3108ac3
virtual-device: Return empty no-match if unknown SCAN id is passed
Jul 30, 2021
2a70cd7
udev-hwdb: Update unsupported list (add synaptics PID 00e7)
Aug 19, 2021
dba5ca5
doc: Add criticial section API
Aug 18, 2021
4340be7
doc: Add public suspend/resume API
Aug 20, 2021
39333a0
doc: Add internal suspend/resume API
Aug 20, 2021
909865e
Release 1.94.0
Aug 19, 2021
88cb452
fpi-device: Do not include config.h in headers
3v1n0 Sep 2, 2021
8dfa12e
fp-context: Fix typo in API docs
hadess Sep 3, 2021
8f93aef
device: Export kernel device from FpDevice
hadess Sep 3, 2021
0dcb4be
tests: Simplify capture of driver behaviour for regression tests
hadess Sep 3, 2021
e22497d
Revert "tests: Simplify capture of driver behaviour for regression te…
hadess Sep 6, 2021
83541a2
Revert "device: Export kernel device from FpDevice"
hadess Sep 6, 2021
ec53abf
tests: Simplify multiple tests per driver code
hadess Sep 2, 2021
d7e7d8e
tests: Add aes2501 driver replay test
hadess Sep 8, 2021
40b3923
tests: Add (another) elan driver replay test
hadess Sep 8, 2021
c162b89
uru4000: Fix transfer type on interrupt endpoint
Sep 8, 2021
b3cfc40
tests: Add uru4000 test
hadess Sep 8, 2021
9515cc2
tests: Add U.are.U 4500 test
hadess Sep 9, 2021
e251109
device: Export kernel device from FpDevice
hadess Sep 3, 2021
aff063c
tests: Simplify capture of driver behaviour for regression tests
hadess Sep 3, 2021
df41ed5
meson: Use source_root() to not require meson 0.56
Sep 15, 2021
d763f8f
elanmoc: Fix warning
Sep 15, 2021
eb568a6
ci: Switch to newer CI templates
Sep 15, 2021
3c2883b
ci: Pull in diffutils
Sep 15, 2021
9356e89
ci: Reference image directly for forks
Sep 15, 2021
128d809
synaptics: add new PID 0x0123, 0x0126, and 0x0129
m9229017 Sep 17, 2021
c7650b6
udev-hwdb: Set ID_PERSIST=0 in hwdb
Sep 17, 2021
03deb30
udev-hwdb: Update unsupported device list
Sep 17, 2021
f579a77
goodixmoc: add PID 63BC
Sep 17, 2021
20e8355
tests: Run custom.py from test creation helper when available
Sep 21, 2021
a949594
goodixmoc: Returned device print matched by verify/identify
Sep 17, 2021
46669e9
goodixmoc: Do not run identify step during enroll
Sep 17, 2021
f9492d5
NEWS: Fix 1.94.0 release date
Sep 24, 2021
7efb860
Release 1.94.1
Sep 24, 2021
9fc5207
Merge tag 'v1.94.1' of https://gitlab.freedesktop.org/libfprint/libfp…
nilathedragon Oct 25, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
include:
- local: '.gitlab-ci/libfprint-templates.yaml'
- project: 'wayland/ci-templates'
- project: 'freedesktop/ci-templates'
ref: master
file: '/templates/fedora.yml'
- remote: 'https://gitlab.gnome.org/GNOME/citemplates/-/raw/master/flatpak/flatpak_ci_initiative.yml'
Expand All @@ -9,6 +9,7 @@ variables:
extends: .libfprint_common_variables
FDO_DISTRIBUTION_TAG: latest
FDO_DISTRIBUTION_VERSION: rawhide
FDO_UPSTREAM_REPO: "libfprint/$CI_PROJECT_NAME"
FEDORA_IMAGE: "$CI_REGISTRY/libfprint/$CI_PROJECT_NAME/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG"
BUNDLE: "org.freedesktop.libfprint.Demo.flatpak"
LAST_ABI_BREAK: "056ea541ddc97f5806cffbd99a12dc87e4da3546"
Expand All @@ -19,7 +20,7 @@ stages:
- test
- flatpak

image: "$FEDORA_IMAGE"
image: $FEDORA_IMAGE

.build_one_driver_template: &build_one_driver
script:
Expand Down Expand Up @@ -69,6 +70,7 @@ test:
- cat _build/meson-logs/coverage.txt
artifacts:
expose_as: 'Coverage Report'
when: always
paths:
- _build/meson-logs
- _build/meson-logs/coveragereport/index.html
Expand All @@ -86,6 +88,7 @@ test_valgrind:
- meson test -C _build --print-errorlogs --no-stdsplit --setup=valgrind
artifacts:
expose_as: 'Valgrind test logs'
when: always
paths:
- _build/meson-logs
- _build/meson-logs/testlog-valgrind.txt
Expand Down Expand Up @@ -157,6 +160,7 @@ container_fedora_build:
- $CI_PIPELINE_SOURCE == "schedule" && $CRON_TASK == "BUILD_CI_IMAGES"
variables:
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
FDO_FORCE_REBUILD: 1
# a list of packages to install
FDO_DISTRIBUTION_PACKAGES:
$LIBFPRINT_DEPENDENCIES
Expand Down
1 change: 1 addition & 0 deletions .gitlab-ci/libfprint-templates.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,4 @@
uncrustify
valgrind
clang-analyzer
diffutils
22 changes: 22 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,6 +1,28 @@
This file lists notable changes in each release. For the full history of all
changes, see ChangeLog.

2021-09-24: v1.94.1 release

Highlights:
* Ship a simple script to create new CI tests using tshark
* Added CI tests for elan, uru4000, aes2501
* goodixmoc: Remove duplicate checking during enroll and let fprintd handle it
* uru4000: Fix USB transfer type
* synaptics: Support for new PIDs
* goodixmoc: Support for new PIDs

2021-08-20: v1.94.0 release

Highlights:
* Implement suspend/resume handling including USB wakeup configuration.
This requires writing the "persist" and "wakeup" sysfs attributes.
* Add simple temperature module to prevent devices from becoming too hot
* Add feature for continuous scanning
* New internal "critical section" API to simplify driver development
* elan: new PID 0x0c58
* elanmoc: Fixes for multi-user handling and FW changes
* virtual-device: Do not time out for SCAN command

2021-06-30: v1.92.1 release

Highlights:
Expand Down
32 changes: 32 additions & 0 deletions data/autosuspend.hwdb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# Supported by libfprint driver aes1610
usb:v08FFp1600*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver aes1660
usb:v08FFp1660*
Expand All @@ -24,16 +25,19 @@ usb:v08FFp168D*
usb:v08FFp168E*
usb:v08FFp168F*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver aes2501
usb:v08FFp2500*
usb:v08FFp2580*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver aes2550
usb:v08FFp2550*
usb:v08FFp2810*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver aes2660
usb:v08FFp2660*
Expand All @@ -55,19 +59,23 @@ usb:v08FFp268E*
usb:v08FFp268F*
usb:v08FFp2691*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver aes3500
usb:v08FFp5731*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver aes4000
usb:v5501p08FF*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver egis0570
usb:v1C7Ap0570*
usb:v1C7Ap0571*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver elan
usb:v04F3p0903*
Expand Down Expand Up @@ -129,22 +137,27 @@ usb:v04F3p0C4D*
usb:v04F3p0C4F*
usb:v04F3p0C63*
usb:v04F3p0C6E*
usb:v04F3p0C58*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver elanmoc
usb:v04F3p0C7E*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver etes603
usb:v1C7Ap0603*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver goodixmoc
usb:v27C6p5840*
usb:v27C6p609C*
usb:v27C6p60A2*
usb:v27C6p639C*
usb:v27C6p63AC*
usb:v27C6p63BC*
usb:v27C6p6496*
usb:v27C6p6584*
usb:v27C6p658C*
Expand All @@ -153,6 +166,7 @@ usb:v27C6p6594*
usb:v27C6p659C*
usb:v27C6p6A94*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver goodixtls511
usb:v27c6p5110*
Expand All @@ -161,6 +175,7 @@ usb:v27c6p5110*
# Supported by libfprint driver nb1010
usb:v298Dp1010*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver synaptics
usb:v06CBp00BD*
Expand All @@ -172,22 +187,29 @@ usb:v06CBp00C9*
usb:v06CBp0100*
usb:v06CBp00F0*
usb:v06CBp0103*
usb:v06CBp0123*
usb:v06CBp0126*
usb:v06CBp0129*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver upeksonly
usb:v147Ep2016*
usb:v147Ep1000*
usb:v147Ep1001*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver upektc
usb:v0483p2015*
usb:v147Ep3001*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver upektc_img
usb:v147Ep2020*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver uru4000
usb:v045Ep00BC*
Expand All @@ -197,23 +219,28 @@ usb:v05BAp0007*
usb:v05BAp0008*
usb:v05BAp000A*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver vcom5s
usb:v061Ap0110*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver vfs0050
usb:v138Ap0050*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver vfs101
usb:v138Ap0001*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver vfs301
usb:v138Ap0005*
usb:v138Ap0008*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver vfs5011
usb:v138Ap0010*
Expand All @@ -222,10 +249,12 @@ usb:v138Ap0015*
usb:v138Ap0017*
usb:v138Ap0018*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Supported by libfprint driver vfs7552
usb:v138Ap0091*
ID_AUTOSUSPEND=1
ID_PERSIST=0

# Known unsupported devices
usb:v04F3p036B*
Expand All @@ -248,6 +277,7 @@ usb:v06CBp00C4*
usb:v06CBp00CB*
usb:v06CBp00D8*
usb:v06CBp00DA*
usb:v06CBp00E7*
usb:v06CBp00E9*
usb:v0A5Cp5801*
usb:v0A5Cp5805*
Expand All @@ -256,6 +286,7 @@ usb:v0A5Cp5840*
usb:v0A5Cp5841*
usb:v0A5Cp5842*
usb:v0A5Cp5843*
usb:v0A5Cp5844*
usb:v0A5Cp5845*
usb:v10A5p0007*
usb:v1188p9545*
Expand Down Expand Up @@ -297,3 +328,4 @@ usb:v2808p9338*
usb:v298Dp2033*
usb:v3538p0930*
ID_AUTOSUSPEND=1
ID_PERSIST=0
12 changes: 11 additions & 1 deletion doc/libfprint-2-sections.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ fp_device_capture
fp_device_delete_print
fp_device_list_prints
fp_device_clear_storage
fp_device_suspend
fp_device_resume
fp_device_open_finish
fp_device_close_finish
fp_device_enroll_finish
Expand All @@ -59,6 +61,8 @@ fp_device_capture_finish
fp_device_delete_print_finish
fp_device_list_prints_finish
fp_device_clear_storage_finish
fp_device_suspend_finish
fp_device_resume_finish
fp_device_open_sync
fp_device_close_sync
fp_device_enroll_sync
Expand All @@ -68,6 +72,8 @@ fp_device_capture_sync
fp_device_delete_print_sync
fp_device_list_prints_sync
fp_device_clear_storage_sync
fp_device_suspend_sync
fp_device_resume_sync
FpDevice
</SECTION>

Expand Down Expand Up @@ -160,6 +166,8 @@ fpi_device_add_timeout
fpi_device_set_nr_enroll_stages
fpi_device_set_scan_type
fpi_device_update_features
fpi_device_critical_enter
fpi_device_critical_leave
fpi_device_remove
fpi_device_report_finger_status
fpi_device_report_finger_status_changes
Expand All @@ -172,10 +180,12 @@ fpi_device_verify_complete
fpi_device_identify_complete
fpi_device_capture_complete
fpi_device_delete_complete
fpi_device_list_complete
fpi_device_suspend_complete
fpi_device_resume_complete
fpi_device_enroll_progress
fpi_device_verify_report
fpi_device_identify_report
fpi_device_list_complete
fpi_device_class_auto_initialize_features
</SECTION>

Expand Down
1 change: 1 addition & 0 deletions libfprint/drivers/elan.h
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ static const FpIdEntry elan_id_table[] = {
{.vid = ELAN_VEND_ID, .pid = 0x0c4f, .driver_data = ELAN_ALL_DEV},
{.vid = ELAN_VEND_ID, .pid = 0x0c63, .driver_data = ELAN_ALL_DEV},
{.vid = ELAN_VEND_ID, .pid = 0x0c6e, .driver_data = ELAN_ALL_DEV},
{.vid = ELAN_VEND_ID, .pid = 0x0c58, .driver_data = ELAN_ALL_DEV},
{.vid = 0, .pid = 0, .driver_data = 0},
};

Expand Down
13 changes: 9 additions & 4 deletions libfprint/drivers/elanmoc/elanmoc.c
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,8 @@ elanmoc_reenroll_cb (FpiDeviceElanmoc *self,
if ((self->curr_enrolled == (ELAN_MAX_ENROLL_NUM + 1)) && (buffer_in[1] == 0x00))
{
fp_warn ("elanmoc_reenroll_cb over enroll max");
fpi_ssm_mark_completed (self->task_ssm);
fpi_ssm_mark_failed (self->task_ssm,
fpi_device_error_new (FP_DEVICE_ERROR_DATA_FULL));
return;
}
if (buffer_in[1] == 0x00)
Expand Down Expand Up @@ -431,7 +432,7 @@ elan_enroll_run_state (FpiSsm *ssm, FpDevice *dev)
case MOC_ENROLL_REENROLL_CHECK:
data = fpi_ssm_get_data (ssm);
cmd_buf = elanmoc_compose_cmd (&elanmoc_check_reenroll_cmd);
cmd_buf[4] = data[16];
memcpy (cmd_buf + 3, data, ELAN_USERDATE_SIZE);
elanmoc_get_cmd (dev, cmd_buf, elanmoc_check_reenroll_cmd.cmd_len, elanmoc_check_reenroll_cmd.resp_len, 0, elanmoc_reenroll_cb);
break;

Expand Down Expand Up @@ -688,7 +689,10 @@ identify_status_report (FpiDeviceElanmoc *self, int verify_status_id,

if (error)
{
fpi_device_enroll_complete (device, NULL, error);
if (fpi_device_get_current_action (device) == FPI_DEVICE_ACTION_VERIFY)
fpi_device_verify_complete (device, error);
else
fpi_device_identify_complete (device, error);
return;
}

Expand Down Expand Up @@ -802,7 +806,7 @@ elanmoc_enroll (FpDevice *device)
FpPrint *print = NULL;
GVariant *data = NULL;
GVariant *uid = NULL;
g_autofree gchar *user_id;
g_autofree gchar *user_id = NULL;
gsize user_id_len;
guint8 *userdata = g_malloc0 (ELAN_USERDATE_SIZE);

Expand Down Expand Up @@ -1121,6 +1125,7 @@ fpi_device_elanmoc_class_init (FpiDeviceElanmocClass *klass)
dev_class->scan_type = FP_SCAN_TYPE_PRESS;
dev_class->id_table = id_table;
dev_class->nr_enroll_stages = ELAN_MOC_ENROLL_TIMES;
dev_class->temp_hot_seconds = -1;

dev_class->open = elanmoc_open;
dev_class->close = elanmoc_close;
Expand Down
4 changes: 2 additions & 2 deletions libfprint/drivers/elanmoc/elanmoc.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ G_DECLARE_FINAL_TYPE (FpiDeviceElanmoc, fpi_device_elanmoc, FPI, DEVICE_ELANMOC,
#define ELAN_EP_MOC_CMD_IN (0x4 | LIBUSB_ENDPOINT_IN)
#define ELAN_EP_IMG_IN (0x2 | LIBUSB_ENDPOINT_IN)

#define ELAN_MOC_CMD_TIMEOUT 2000
#define ELAN_MOC_CMD_TIMEOUT 5000
#define ELAN_MOC_CAL_RETRY 500
#define ELAN_MOC_ENROLL_TIMES 9
#define ELAN_MAX_USER_ID_LEN 92
Expand Down Expand Up @@ -135,7 +135,7 @@ static const struct elanmoc_cmd elanmoc_set_mod_cmd = {

static const struct elanmoc_cmd elanmoc_check_reenroll_cmd = {
.cmd_header = {0x40, 0xff, 0x22},
.cmd_len = 5,
.cmd_len = 3 + ELAN_USERDATE_SIZE,
.resp_len = 2,
};

Expand Down
Loading