From 2b100a912b9d4d6264bdd5036938d8848df175c5 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Wed, 23 Jul 2025 19:34:45 +0300 Subject: [PATCH 1/8] ci: Pin the version of the Flatpak template In [1] the template broke due to the inclusion of a sub-include which doesn't resolve across different gitlab instances without the same group setup. Pin the template for now to the previous working commit [1] https://gitlab.gnome.org/GNOME/citemplates/-/merge_requests/104#note_2501085 --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4f9afac3..689e58b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ include: - project: 'freedesktop/ci-templates' ref: master file: '/templates/fedora.yml' - - remote: 'https://gitlab.gnome.org/GNOME/citemplates/-/raw/master/flatpak/flatpak_ci_initiative.yml' + - remote: 'https://gitlab.gnome.org/GNOME/citemplates/-/raw/71e636e012ae0ab04c5e0fe40ca73ada91ae6bde/flatpak/flatpak_ci_initiative.yml' default: # Auto-retry jobs in case of infra failures From d83a7852600190954ea2dc03e7f23b360431f8ca Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Wed, 23 Jul 2025 19:09:54 +0200 Subject: [PATCH 2/8] ci: permit coverage failures for now gcovr seems to fail for unclear reasons. Permit failures to not block merge requests. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 689e58b7..bcdb1b55 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,7 +88,7 @@ test: script: - meson setup _build --werror -Ddrivers=all -Db_coverage=true - meson test -C _build --print-errorlogs --no-stdsplit --timeout-multiplier 3 - - ninja -C _build coverage + - ninja -C _build coverage || true - cat _build/meson-logs/coverage.txt || true artifacts: reports: From da42268911c3fc9f591783e0c3cdd4511930612a Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Thu, 24 Jul 2025 08:39:54 +0200 Subject: [PATCH 3/8] goodixmoc: fix crash in exit callback handler If the button shield command cannot be executed due to an underlying error then resp is NULL. Avoid the crash by adding the appropriate check. Closes: #694 --- libfprint/drivers/goodixmoc/goodix.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libfprint/drivers/goodixmoc/goodix.c b/libfprint/drivers/goodixmoc/goodix.c index 33e137f4..659722ae 100644 --- a/libfprint/drivers/goodixmoc/goodix.c +++ b/libfprint/drivers/goodixmoc/goodix.c @@ -1483,9 +1483,7 @@ gx_fp_exit_cb (FpiDeviceGoodixMoc *self, gxfp_cmd_response_t *resp, GError *error) { - - - if (resp->result >= GX_FAILED) + if (resp && resp->result >= GX_FAILED) fp_dbg ("Setting power button shield failed, result: 0x%x", resp->result); self->is_power_button_shield_on = false; gx_fp_release_interface (self, error); From f84ab3d10458aa5dd4817554611abe4ddddf3807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Fri, 1 Aug 2025 01:42:01 +0200 Subject: [PATCH 4/8] gcovr: Add gcovr project configuration And mark suspicious hits as warnings instead of failures --- gcovr.cfg | 1 + 1 file changed, 1 insertion(+) create mode 100644 gcovr.cfg diff --git a/gcovr.cfg b/gcovr.cfg new file mode 100644 index 00000000..dc61cc16 --- /dev/null +++ b/gcovr.cfg @@ -0,0 +1 @@ +gcov-ignore-parse-errors = suspicious_hits.warn From a7448fbb4a4197f178f5c6da2eb2ca1f5ec26038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Fri, 1 Aug 2025 01:47:17 +0200 Subject: [PATCH 5/8] ci: Only run pages step on push events --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bcdb1b55..af7733a8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -293,4 +293,4 @@ pages: paths: - public rules: - - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH + - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push" From bde868f05e022ce3657a0fb5e49869c04f281d64 Mon Sep 17 00:00:00 2001 From: Aris Lin Date: Thu, 5 Jun 2025 11:20:12 +0800 Subject: [PATCH 6/8] synaptics: add usb reset in probe to recover stall condition --- libfprint/drivers/synaptics/synaptics.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libfprint/drivers/synaptics/synaptics.c b/libfprint/drivers/synaptics/synaptics.c index c0228fbd..705a3c2d 100644 --- a/libfprint/drivers/synaptics/synaptics.c +++ b/libfprint/drivers/synaptics/synaptics.c @@ -1254,6 +1254,12 @@ dev_probe (FpDevice *device) return; } + if (!g_usb_device_reset (usb_dev, &error)) + { + fp_dbg ("%s g_usb_device_reset failed %s", G_STRFUNC, error->message); + goto err_close; + } + if (!g_usb_device_claim_interface (usb_dev, 0, 0, &error)) goto err_close; From 7f5304d6eec37955c8d462e571c3d72af0be4684 Mon Sep 17 00:00:00 2001 From: Aris Lin Date: Mon, 14 Jul 2025 11:52:56 +0800 Subject: [PATCH 7/8] synaptics: add new PID 0x019F, 0x109 and 0x10A --- data/autosuspend.hwdb | 3 +++ libfprint/drivers/synaptics/synaptics.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/data/autosuspend.hwdb b/data/autosuspend.hwdb index 9115fb01..9c82d383 100644 --- a/data/autosuspend.hwdb +++ b/data/autosuspend.hwdb @@ -255,6 +255,8 @@ usb:v06CBp0104* usb:v06CBp0106* usb:v06CBp0107* usb:v06CBp0108* +usb:v06CBp0109* +usb:v06CBp010A* usb:v06CBp0123* usb:v06CBp0124* usb:v06CBp0126* @@ -265,6 +267,7 @@ usb:v06CBp016C* usb:v06CBp0173* usb:v06CBp0174* usb:v06CBp019D* +usb:v06CBp019F* ID_AUTOSUSPEND=1 ID_PERSIST=0 diff --git a/libfprint/drivers/synaptics/synaptics.c b/libfprint/drivers/synaptics/synaptics.c index 705a3c2d..8b130937 100644 --- a/libfprint/drivers/synaptics/synaptics.c +++ b/libfprint/drivers/synaptics/synaptics.c @@ -45,6 +45,8 @@ static const FpIdEntry id_table[] = { { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x0106, }, { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x0107, }, { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x0108, }, + { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x0109, }, + { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x010A, }, { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x0123, }, { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x0124, }, { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x0126, }, @@ -55,6 +57,7 @@ static const FpIdEntry id_table[] = { { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x0173, }, { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x0174, }, { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x019D, }, + { .vid = SYNAPTICS_VENDOR_ID, .pid = 0x019F, }, { .vid = 0, .pid = 0, .driver_data = 0 }, /* terminating entry */ }; From 596b5f803238dd877c2c262833a7dfcf14f4ed91 Mon Sep 17 00:00:00 2001 From: Danny Date: Fri, 8 Aug 2025 21:30:32 +0200 Subject: [PATCH 8/8] fpcmoc: add 10a5:a306 fingerprint reader --- data/autosuspend.hwdb | 1 + libfprint/drivers/fpcmoc/fpc.c | 2 ++ tests/fpcmoc/device | 14 +++++++------- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/data/autosuspend.hwdb b/data/autosuspend.hwdb index 9c82d383..b0804b66 100644 --- a/data/autosuspend.hwdb +++ b/data/autosuspend.hwdb @@ -184,6 +184,7 @@ usb:v2808pA78A* # Supported by libfprint driver fpcmoc usb:v10A5pFFE0* usb:v10A5pA305* +usb:v10A5pA306* usb:v10A5pDA04* usb:v10A5pD805* usb:v10A5pD205* diff --git a/libfprint/drivers/fpcmoc/fpc.c b/libfprint/drivers/fpcmoc/fpc.c index e2e89e38..b67c4ff2 100644 --- a/libfprint/drivers/fpcmoc/fpc.c +++ b/libfprint/drivers/fpcmoc/fpc.c @@ -65,6 +65,7 @@ typedef struct static const FpIdEntry id_table[] = { { .vid = 0x10A5, .pid = 0xFFE0, }, { .vid = 0x10A5, .pid = 0xA305, }, + { .vid = 0x10A5, .pid = 0xA306, }, { .vid = 0x10A5, .pid = 0xDA04, }, { .vid = 0x10A5, .pid = 0xD805, }, { .vid = 0x10A5, .pid = 0xD205, }, @@ -1638,6 +1639,7 @@ fpc_dev_probe (FpDevice *device) { case 0xFFE0: case 0xA305: + case 0xA306: case 0xD805: case 0xDA04: case 0xD205: diff --git a/tests/fpcmoc/device b/tests/fpcmoc/device index 32194633..2334ca42 100644 --- a/tests/fpcmoc/device +++ b/tests/fpcmoc/device @@ -3,7 +3,7 @@ N: bus/usb/001/019=1201000200000040A510E0FF10000102000109021900010104A0320904000 E: DEVNAME=/dev/bus/usb/001/019 E: DEVTYPE=usb_device E: DRIVER=usb -E: PRODUCT=10a5/ffe0/10 +E: PRODUCT=10a5/a306/10 E: TYPE=0/0/0 E: BUSNUM=001 E: DEVNUM=019 @@ -13,11 +13,11 @@ E: SUBSYSTEM=usb E: ID_VENDOR=FPC E: ID_VENDOR_ENC=FPC E: ID_VENDOR_ID=10a5 -E: ID_MODEL=FPC_L:0001_FW:127010 -E: ID_MODEL_ENC=FPC\x20L:0001\x20FW:127010 -E: ID_MODEL_ID=ffe0 +E: ID_MODEL=FPC_L:0001_FW:222709 +E: ID_MODEL_ENC=FPC\x20L:0001\x20FW:222709 +E: ID_MODEL_ID=a306 E: ID_REVISION=0010 -E: ID_SERIAL=FPC_FPC_L:0001_FW:127010 +E: ID_SERIAL=FPC_FPC_L:0001_FW:222709 E: ID_BUS=usb E: ID_USB_INTERFACES=:ffffff: E: ID_PATH=pci-0000:00:14.0-usb-0:1 @@ -45,7 +45,7 @@ A: devnum=19\n A: devpath=1\n L: driver=../../../../../bus/usb/drivers/usb L: firmware_node=../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c/device:1d/device:1e -A: idProduct=ffe0\n +A: idProduct=a306\n A: idVendor=10a5\n A: ltm_capable=no\n A: manufacturer=FPC\n @@ -74,7 +74,7 @@ A: power/wakeup_expire_count=\n A: power/wakeup_last_time_ms=\n A: power/wakeup_max_time_ms=\n A: power/wakeup_total_time_ms=\n -A: product=FPC L:0001 FW:127010\n +A: product=FPC L:0001 FW:222709\n A: quirks=0x0\n A: removable=removable\n A: rx_lanes=1\n