From 3dd06634d55bd22f95296fcc0594ca1d0369f420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 13 Oct 2022 13:27:08 +0200 Subject: [PATCH] elanmoc: Add support for more supported PIDs And include more tests for specific cases. LP: #1989314 --- ...sensor-in-the-right-mode-at-identity.patch | Bin 0 -> 51192 bytes debian/patches/elanmoc-add-PID-0x0c82.patch | 33 ++++++ debian/patches/elanmoc-add-PID-0x0c88.patch | 33 ++++++ .../elanmoc-add-PID-0x0c8c-0x0c8d.patch | 103 ++++++++++++++++++ debian/patches/series | 4 + debian/source/include-binaries | 2 + 6 files changed, 175 insertions(+) create mode 100644 debian/patches/elanmoc-Make-sure-sensor-in-the-right-mode-at-identity.patch create mode 100644 debian/patches/elanmoc-add-PID-0x0c82.patch create mode 100644 debian/patches/elanmoc-add-PID-0x0c88.patch create mode 100644 debian/patches/elanmoc-add-PID-0x0c8c-0x0c8d.patch create mode 100644 debian/source/include-binaries diff --git a/debian/patches/elanmoc-Make-sure-sensor-in-the-right-mode-at-identity.patch b/debian/patches/elanmoc-Make-sure-sensor-in-the-right-mode-at-identity.patch new file mode 100644 index 0000000000000000000000000000000000000000..0c53311dc42d5891aef7237d82c61a800627abb8 GIT binary patch literal 51192 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 +Date: Wed, 2 Mar 2022 10:43:20 +0800 +Subject: elanmoc: add PID 0x0c82 + +--- + data/autosuspend.hwdb | 1 + + libfprint/drivers/elanmoc/elanmoc.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/data/autosuspend.hwdb b/data/autosuspend.hwdb +index 91a14eb..d55ed3e 100644 +--- a/data/autosuspend.hwdb ++++ b/data/autosuspend.hwdb +@@ -144,6 +144,7 @@ usb:v04F3p0C58* + # Supported by libfprint driver elanmoc + usb:v04F3p0C7D* + usb:v04F3p0C7E* ++usb:v04F3p0C82* + ID_AUTOSUSPEND=1 + ID_PERSIST=0 + +diff --git a/libfprint/drivers/elanmoc/elanmoc.c b/libfprint/drivers/elanmoc/elanmoc.c +index 69700a0..3185ee7 100644 +--- a/libfprint/drivers/elanmoc/elanmoc.c ++++ b/libfprint/drivers/elanmoc/elanmoc.c +@@ -27,6 +27,7 @@ G_DEFINE_TYPE (FpiDeviceElanmoc, fpi_device_elanmoc, FP_TYPE_DEVICE) + static const FpIdEntry id_table[] = { + { .vid = 0x04f3, .pid = 0x0c7d, }, + { .vid = 0x04f3, .pid = 0x0c7e, }, ++ { .vid = 0x04f3, .pid = 0x0c82, }, + { .vid = 0, .pid = 0, .driver_data = 0 }, /* terminating entry */ + }; + diff --git a/debian/patches/elanmoc-add-PID-0x0c88.patch b/debian/patches/elanmoc-add-PID-0x0c88.patch new file mode 100644 index 00000000..a58e7ae7 --- /dev/null +++ b/debian/patches/elanmoc-add-PID-0x0c88.patch @@ -0,0 +1,33 @@ +From: ArronYen +Date: Mon, 20 Jun 2022 14:03:05 +0800 +Subject: elanmoc: add PID 0x0c88 + +--- + data/autosuspend.hwdb | 1 + + libfprint/drivers/elanmoc/elanmoc.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/data/autosuspend.hwdb b/data/autosuspend.hwdb +index d55ed3e..725c602 100644 +--- a/data/autosuspend.hwdb ++++ b/data/autosuspend.hwdb +@@ -145,6 +145,7 @@ usb:v04F3p0C58* + usb:v04F3p0C7D* + usb:v04F3p0C7E* + usb:v04F3p0C82* ++usb:v04F3p0C88* + ID_AUTOSUSPEND=1 + ID_PERSIST=0 + +diff --git a/libfprint/drivers/elanmoc/elanmoc.c b/libfprint/drivers/elanmoc/elanmoc.c +index 3185ee7..ad23e93 100644 +--- a/libfprint/drivers/elanmoc/elanmoc.c ++++ b/libfprint/drivers/elanmoc/elanmoc.c +@@ -28,6 +28,7 @@ static const FpIdEntry id_table[] = { + { .vid = 0x04f3, .pid = 0x0c7d, }, + { .vid = 0x04f3, .pid = 0x0c7e, }, + { .vid = 0x04f3, .pid = 0x0c82, }, ++ { .vid = 0x04f3, .pid = 0x0c88, }, + { .vid = 0, .pid = 0, .driver_data = 0 }, /* terminating entry */ + }; + diff --git a/debian/patches/elanmoc-add-PID-0x0c8c-0x0c8d.patch b/debian/patches/elanmoc-add-PID-0x0c8c-0x0c8d.patch new file mode 100644 index 00000000..ae079e19 --- /dev/null +++ b/debian/patches/elanmoc-add-PID-0x0c8c-0x0c8d.patch @@ -0,0 +1,103 @@ +From: Johnny Li +Date: Mon, 25 Jul 2022 14:11:37 +0800 +Subject: elanmoc: add PID 0x0c8c & 0x0c8d + +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libfprint/+bug/1989314 +--- + data/autosuspend.hwdb | 2 ++ + libfprint/drivers/elanmoc/elanmoc.c | 27 ++++++++++++++++++++++++--- + libfprint/drivers/elanmoc/elanmoc.h | 1 + + 3 files changed, 27 insertions(+), 3 deletions(-) + +diff --git a/data/autosuspend.hwdb b/data/autosuspend.hwdb +index 6e53964..5977aa8 100644 +--- a/data/autosuspend.hwdb ++++ b/data/autosuspend.hwdb +@@ -147,6 +147,8 @@ usb:v04F3p0C7D* + usb:v04F3p0C7E* + usb:v04F3p0C82* + usb:v04F3p0C88* ++usb:v04F3p0C8C* ++usb:v04F3p0C8D* + ID_AUTOSUSPEND=1 + ID_PERSIST=0 + +diff --git a/libfprint/drivers/elanmoc/elanmoc.c b/libfprint/drivers/elanmoc/elanmoc.c +index 5bcfce2..77e22f2 100644 +--- a/libfprint/drivers/elanmoc/elanmoc.c ++++ b/libfprint/drivers/elanmoc/elanmoc.c +@@ -29,6 +29,8 @@ static const FpIdEntry id_table[] = { + { .vid = 0x04f3, .pid = 0x0c7e, }, + { .vid = 0x04f3, .pid = 0x0c82, }, + { .vid = 0x04f3, .pid = 0x0c88, }, ++ { .vid = 0x04f3, .pid = 0x0c8c, }, ++ { .vid = 0x04f3, .pid = 0x0c8d, }, + { .vid = 0, .pid = 0, .driver_data = 0 }, /* terminating entry */ + }; + +@@ -377,9 +379,9 @@ elanmoc_enroll_cb (FpiDeviceElanmoc *self, + enroll_status_report (self, ENROLL_RSP_RETRY, self->num_frames, NULL); + } + +- if (self->num_frames == ELAN_MOC_ENROLL_TIMES && buffer_in[1] == ELAN_MSG_OK) ++ if (self->num_frames == self->max_moc_enroll_time && buffer_in[1] == ELAN_MSG_OK) + fpi_ssm_next_state (self->task_ssm); +- else if (self->num_frames < ELAN_MOC_ENROLL_TIMES) ++ else if (self->num_frames < self->max_moc_enroll_time) + fpi_ssm_jump_to_state (self->task_ssm, MOC_ENROLL_WAIT_FINGER); + else + fpi_ssm_mark_failed (self->task_ssm, error); +@@ -442,7 +444,7 @@ elan_enroll_run_state (FpiSsm *ssm, FpDevice *dev) + case MOC_ENROLL_WAIT_FINGER: + cmd_buf = elanmoc_compose_cmd (&elanmoc_enroll_cmd); + cmd_buf[3] = self->curr_enrolled; +- cmd_buf[4] = ELAN_MOC_ENROLL_TIMES; ++ cmd_buf[4] = self->max_moc_enroll_time; + cmd_buf[5] = self->num_frames; + elanmoc_get_cmd (dev, cmd_buf, elanmoc_enroll_cmd.cmd_len, elanmoc_enroll_cmd.resp_len, 1, elanmoc_enroll_cb); + break; +@@ -1069,6 +1071,7 @@ elanmoc_open (FpDevice *device) + { + FpiDeviceElanmoc *self = FPI_DEVICE_ELANMOC (device); + GError *error = NULL; ++ gint productid = 0; + + if (!g_usb_device_reset (fpi_device_get_usb_device (device), &error)) + goto error; +@@ -1076,6 +1079,24 @@ elanmoc_open (FpDevice *device) + if (!g_usb_device_claim_interface (fpi_device_get_usb_device (device), 0, 0, &error)) + goto error; + ++ productid = g_usb_device_get_pid (fpi_device_get_usb_device (device)); ++ switch (productid) ++ { ++ case 0x0c8c: ++ self->max_moc_enroll_time = 11; ++ break; ++ ++ case 0x0c8d: ++ self->max_moc_enroll_time = 17; ++ break; ++ ++ default: ++ self->max_moc_enroll_time = ELAN_MOC_ENROLL_TIMES; ++ break; ++ } ++ ++ fpi_device_set_nr_enroll_stages (device, self->max_moc_enroll_time); ++ + self->task_ssm = fpi_ssm_new (FP_DEVICE (self), dev_init_handler, DEV_INIT_STATES); + fpi_ssm_start (self->task_ssm, task_ssm_init_done); + return; +diff --git a/libfprint/drivers/elanmoc/elanmoc.h b/libfprint/drivers/elanmoc/elanmoc.h +index 312a4b4..a948d40 100644 +--- a/libfprint/drivers/elanmoc/elanmoc.h ++++ b/libfprint/drivers/elanmoc/elanmoc.h +@@ -188,6 +188,7 @@ struct _FpiDeviceElanmoc + unsigned char y_trace; + int num_frames; + int curr_enrolled; ++ int max_moc_enroll_time; + int cancel_result; + int cmd_retry_cnt; + int list_index; diff --git a/debian/patches/series b/debian/patches/series index 6cf19c04..dad26c29 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,6 @@ tod-Add-wrapper-for-goodix-tod-not-handling-identificatio.patch fpi-device-Avoid-using-device-action-strings.patch +elanmoc-add-PID-0x0c82.patch +elanmoc-add-PID-0x0c88.patch +elanmoc-Make-sure-sensor-in-the-right-mode-at-identity.patch +elanmoc-add-PID-0x0c8c-0x0c8d.patch diff --git a/debian/source/include-binaries b/debian/source/include-binaries new file mode 100644 index 00000000..607c2384 --- /dev/null +++ b/debian/source/include-binaries @@ -0,0 +1,2 @@ +# This is a patch that includes tests recordings in pcapng format +debian/patches/elanmoc-Make-sure-sensor-in-the-right-mode-at-identity.patch