diff -Nru libfprint-1.94.5+tod1/debian/changelog libfprint-1.94.5+tod1/debian/changelog --- libfprint-1.94.5+tod1/debian/changelog 2023-04-12 16:45:01.000000000 +0800 +++ libfprint-1.94.5+tod1/debian/changelog 2023-09-29 00:58:56.000000000 +0800 @@ -1,3 +1,17 @@ +libfprint (1:1.94.5+tod1-0ubuntu2.1) lunar; urgency=medium + + * debian/patches/elanmoc-add-PID-0x0c99.patch: + - Add support for PID 0c99 elan fingerprint device (LP: #2031872) + + * debian/patches/goodixmoc-Add-PID-0x633C.patch + - Add support for PID 633c goodix fingerprint device (LP: #2034121) + + * debian/patches/synaptics-fix-enroll_identify-problem-after-user-res.patch + - Fix re-enroll fail after reset fingerprint device from BIOS (HP laptop). + (LP: #2034481) + + -- Yao Wei (魏銘廷) Thu, 28 Sep 2023 18:58:56 +0200 + libfprint (1:1.94.5+tod1-0ubuntu2) lunar; urgency=medium * debian/patches/git_tests_fix.patch: diff -Nru libfprint-1.94.5+tod1/debian/patches/elanmoc-add-PID-0x0c99.patch libfprint-1.94.5+tod1/debian/patches/elanmoc-add-PID-0x0c99.patch --- libfprint-1.94.5+tod1/debian/patches/elanmoc-add-PID-0x0c99.patch 1970-01-01 08:00:00.000000000 +0800 +++ libfprint-1.94.5+tod1/debian/patches/elanmoc-add-PID-0x0c99.patch 2023-09-29 00:58:56.000000000 +0800 @@ -0,0 +1,48 @@ +From d37b255a11795f7e498997ed4a36a8c8bd2df408 Mon Sep 17 00:00:00 2001 +From: hermanlin +Date: Mon, 10 Jul 2023 11:17:27 +0800 +Subject: [PATCH] elanmoc: add PID 0x0C99 + +--- + data/autosuspend.hwdb | 1 + + libfprint/drivers/elanmoc/elanmoc.c | 5 +++++ + 2 files changed, 6 insertions(+) + +diff --git a/data/autosuspend.hwdb b/data/autosuspend.hwdb +index 39ace7b9..e26030fa 100644 +--- a/data/autosuspend.hwdb ++++ b/data/autosuspend.hwdb +@@ -149,6 +149,7 @@ usb:v04F3p0C82* + usb:v04F3p0C88* + usb:v04F3p0C8C* + usb:v04F3p0C8D* ++usb:v04F3p0C99* + ID_AUTOSUSPEND=1 + ID_PERSIST=0 + +diff --git a/libfprint/drivers/elanmoc/elanmoc.c b/libfprint/drivers/elanmoc/elanmoc.c +index 471189fd..0261bfff 100644 +--- a/libfprint/drivers/elanmoc/elanmoc.c ++++ b/libfprint/drivers/elanmoc/elanmoc.c +@@ -31,6 +31,7 @@ static const FpIdEntry id_table[] = { + { .vid = 0x04f3, .pid = 0x0c88, }, + { .vid = 0x04f3, .pid = 0x0c8c, }, + { .vid = 0x04f3, .pid = 0x0c8d, }, ++ { .vid = 0x04f3, .pid = 0x0c99, }, + { .vid = 0, .pid = 0, .driver_data = 0 }, /* terminating entry */ + }; + +@@ -1086,6 +1087,10 @@ elanmoc_open (FpDevice *device) + self->max_moc_enroll_time = 11; + break; + ++ case 0x0c99: ++ self->max_moc_enroll_time = 14; ++ break; ++ + case 0x0c8d: + self->max_moc_enroll_time = 17; + break; +-- +GitLab + diff -Nru libfprint-1.94.5+tod1/debian/patches/goodixmoc-Add-PID-0x633C.patch libfprint-1.94.5+tod1/debian/patches/goodixmoc-Add-PID-0x633C.patch --- libfprint-1.94.5+tod1/debian/patches/goodixmoc-Add-PID-0x633C.patch 1970-01-01 08:00:00.000000000 +0800 +++ libfprint-1.94.5+tod1/debian/patches/goodixmoc-Add-PID-0x633C.patch 2023-09-29 00:58:56.000000000 +0800 @@ -0,0 +1,46 @@ +From: swbgdx +Date: Thu, 7 Sep 2023 16:53:23 +0200 +Subject: goodixmoc Add PID 0x633C + +Bug: https://bugs.launchpad.net/ubuntu/+source/libfprint/+bug/2034121 + +goodixmoc add PID 0x633C +This patch is picked from 96645eaa7ae99a12e08b65e24a8610a3c57a92b3 +Bug: https://bugs.launchpad.net/ubuntu/+source/libfprint/+bug/2034121 +--- + data/autosuspend.hwdb | 1 + + libfprint/drivers/goodixmoc/goodix.c | 2 ++ + 2 files changed, 3 insertions(+) + +Index: libfprint-ubuntu/data/autosuspend.hwdb +=================================================================== +--- libfprint-ubuntu.orig/data/autosuspend.hwdb ++++ libfprint-ubuntu/data/autosuspend.hwdb +@@ -174,6 +174,7 @@ usb:v27C6p6094* + usb:v27C6p609C* + usb:v27C6p60A2* + usb:v27C6p631C* ++usb:v27C6p633C* + usb:v27C6p634C* + usb:v27C6p6384* + usb:v27C6p639C* +Index: libfprint-ubuntu/libfprint/drivers/goodixmoc/goodix.c +=================================================================== +--- libfprint-ubuntu.orig/libfprint/drivers/goodixmoc/goodix.c ++++ libfprint-ubuntu/libfprint/drivers/goodixmoc/goodix.c +@@ -1363,6 +1363,7 @@ gx_fp_probe (FpDevice *device) + case 0x6094: + case 0x609C: + case 0x631C: ++ case 0x633C: + case 0x634C: + case 0x6384: + case 0x639C: +@@ -1606,6 +1607,7 @@ static const FpIdEntry id_table[] = { + { .vid = 0x27c6, .pid = 0x609C, }, + { .vid = 0x27c6, .pid = 0x60A2, }, + { .vid = 0x27c6, .pid = 0x631C, }, ++ { .vid = 0x27c6, .pid = 0x633C, }, + { .vid = 0x27c6, .pid = 0x634C, }, + { .vid = 0x27c6, .pid = 0x6384, }, + { .vid = 0x27c6, .pid = 0x639C, }, diff -Nru libfprint-1.94.5+tod1/debian/patches/series libfprint-1.94.5+tod1/debian/patches/series --- libfprint-1.94.5+tod1/debian/patches/series 2023-04-12 16:45:01.000000000 +0800 +++ libfprint-1.94.5+tod1/debian/patches/series 2023-09-29 00:58:56.000000000 +0800 @@ -1 +1,4 @@ git_tests_fix.patch +elanmoc-add-PID-0x0c99.patch +goodixmoc-Add-PID-0x633C.patch +synaptics-fix-enroll_identify-problem-after-user-res.patch diff -Nru libfprint-1.94.5+tod1/debian/patches/synaptics-fix-enroll_identify-problem-after-user-res.patch libfprint-1.94.5+tod1/debian/patches/synaptics-fix-enroll_identify-problem-after-user-res.patch --- libfprint-1.94.5+tod1/debian/patches/synaptics-fix-enroll_identify-problem-after-user-res.patch 1970-01-01 08:00:00.000000000 +0800 +++ libfprint-1.94.5+tod1/debian/patches/synaptics-fix-enroll_identify-problem-after-user-res.patch 2023-09-29 00:58:56.000000000 +0800 @@ -0,0 +1,94 @@ +From 206e92218c0209d70f156af08a17f9d945fa1b63 Mon Sep 17 00:00:00 2001 +From: Vincent Huang +Date: Tue, 4 Jul 2023 15:45:36 +0800 +Subject: [PATCH] synaptics: fix enroll_identify problem after user reset + database + +--- + libfprint/drivers/synaptics/synaptics.c | 23 ++++++++++++++--------- + libfprint/drivers/synaptics/synaptics.h | 1 + + 2 files changed, 15 insertions(+), 9 deletions(-) + +Index: libfprint-ubuntu/libfprint/drivers/synaptics/synaptics.c +=================================================================== +--- libfprint-ubuntu.orig/libfprint/drivers/synaptics/synaptics.c ++++ libfprint-ubuntu/libfprint/drivers/synaptics/synaptics.c +@@ -106,7 +106,11 @@ cmd_receive_cb (FpiUsbTransfer *transfer + + if (self->cmd_complete_on_removal) + { +- fpi_ssm_mark_completed (transfer->ssm); ++ if (self->delay_error) ++ fpi_ssm_mark_failed (transfer->ssm, ++ g_steal_pointer (&self->delay_error)); ++ else ++ fpi_ssm_mark_completed (transfer->ssm); + return; + } + } +@@ -641,18 +645,20 @@ verify (FpDevice *device) + } + + static void +-identify_complete_after_finger_removal (FpiDeviceSynaptics *self) ++identify_complete_after_finger_removal (FpiDeviceSynaptics *self, GError *error) + { + FpDevice *device = FP_DEVICE (self); + + if (self->finger_on_sensor) + { + fp_dbg ("delaying identify report until after finger removal!"); ++ g_propagate_error (&self->delay_error, error); ++ + self->cmd_complete_on_removal = TRUE; + } + else + { +- fpi_device_identify_complete (device, NULL); ++ fpi_device_identify_complete (device, error); + } + } + +@@ -702,19 +708,18 @@ identify_msg_cb (FpiDeviceSynaptics *sel + fp_info ("Match error occurred"); + fpi_device_identify_report (device, NULL, NULL, + fpi_device_retry_new (FP_DEVICE_RETRY_GENERAL)); +- identify_complete_after_finger_removal (self); ++ identify_complete_after_finger_removal (self, NULL); + } + else if (resp->result == BMKT_FP_NO_MATCH) + { + fp_info ("Print didn't match"); + fpi_device_identify_report (device, NULL, NULL, NULL); +- identify_complete_after_finger_removal (self); ++ identify_complete_after_finger_removal (self, NULL); + } +- else if (resp->result == BMKT_FP_DATABASE_NO_RECORD_EXISTS) ++ else if (resp->result == BMKT_FP_DATABASE_NO_RECORD_EXISTS || resp->result == BMKT_FP_DATABASE_EMPTY) + { + fp_info ("Print is not in database"); +- fpi_device_identify_complete (device, +- fpi_device_error_new (FP_DEVICE_ERROR_DATA_NOT_FOUND)); ++ identify_complete_after_finger_removal (self, fpi_device_error_new (FP_DEVICE_ERROR_DATA_NOT_FOUND)); + } + else + { +@@ -750,7 +755,7 @@ identify_msg_cb (FpiDeviceSynaptics *sel + else + fpi_device_identify_report (device, NULL, print, NULL); + +- identify_complete_after_finger_removal (self); ++ identify_complete_after_finger_removal (self, NULL); + } + } + } +Index: libfprint-ubuntu/libfprint/drivers/synaptics/synaptics.h +=================================================================== +--- libfprint-ubuntu.orig/libfprint/drivers/synaptics/synaptics.h ++++ libfprint-ubuntu/libfprint/drivers/synaptics/synaptics.h +@@ -127,4 +127,5 @@ struct _FpiDeviceSynaptics + + struct syna_enroll_resp_data enroll_resp_data; + syna_state_t state; ++ GError *delay_error; + };