diff --git a/debian/patches/series b/debian/patches/series index 390bc7aa..8125d149 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,6 +1,8 @@ # Upstream backports u7e1646c-uru4000-fix-race-condition-on-waiting-power-up-irq.patch u8a87ba4-uru4000-fix-cancelling-of-imaging-from-error-callbac.patch +u0b2d33c-imgdev-fix-cancelling-of-enrollment-from-stage_completed-callback.patch +u3b3679c-upeke2-Add-support-for-147e-2020-ID.patch # Debian specifics kFreeBSD_FTBFS_add_ETIME_definition.patch diff --git a/debian/patches/u0b2d33c-imgdev-fix-cancelling-of-enrollment-from-stage_completed-callback.patch b/debian/patches/u0b2d33c-imgdev-fix-cancelling-of-enrollment-from-stage_completed-callback.patch new file mode 100644 index 00000000..fe38a4c5 --- /dev/null +++ b/debian/patches/u0b2d33c-imgdev-fix-cancelling-of-enrollment-from-stage_completed-callback.patch @@ -0,0 +1,29 @@ +From 0b2d33c712d6917ed71068188788a258a4dce61e Mon Sep 17 00:00:00 2001 +From: Timo Teräs +Date: Mon, 03 Dec 2012 07:57:25 +0000 +Subject: imgdev: fix cancelling of enrollment from stage_completed callback + +Re-check device state after fpi_drvcb_enroll_stage_completed(). +If enrollment was cancelled after non-completing stage, we must +not restart acquire as it would confuse the internal state machine. + +https://bugs.freedesktop.org/show_bug.cgi?id=57829 +--- +diff --git a/libfprint/imgdev.c b/libfprint/imgdev.c +index 14e41ae..1ed3f6d 100644 +--- a/libfprint/imgdev.c ++++ b/libfprint/imgdev.c +@@ -145,7 +145,10 @@ void fpi_imgdev_report_finger_status(struct fp_img_dev *imgdev, + case IMG_ACTION_ENROLL: + fp_dbg("reporting enroll result"); + fpi_drvcb_enroll_stage_completed(imgdev->dev, r, data, img); +- if (r > 0 && r != FP_ENROLL_COMPLETE && r != FP_ENROLL_FAIL) { ++ /* the callback can cancel enrollment, so recheck current ++ * action and the status to see if retry is needed */ ++ if (imgdev->action == IMG_ACTION_ENROLL && ++ r > 0 && r != FP_ENROLL_COMPLETE && r != FP_ENROLL_FAIL) { + imgdev->action_result = 0; + imgdev->action_state = IMG_ACQUIRE_STATE_AWAIT_FINGER_ON; + dev_change_state(imgdev, IMG_ACQUIRE_STATE_AWAIT_FINGER_ON); +-- +cgit v0.9.0.2-2-gbebe diff --git a/debian/patches/u3b3679c-upeke2-Add-support-for-147e-2020-ID.patch b/debian/patches/u3b3679c-upeke2-Add-support-for-147e-2020-ID.patch new file mode 100644 index 00000000..b11ec1c2 --- /dev/null +++ b/debian/patches/u3b3679c-upeke2-Add-support-for-147e-2020-ID.patch @@ -0,0 +1,52 @@ +From 3b3679c900f6739f7067f8d720e15d548bb39be9 Mon Sep 17 00:00:00 2001 +From: Vasily Khoruzhick +Date: Sun, 13 Jan 2013 16:43:38 +0300 +Subject: [PATCH 5/6] upeke2: Add support for 147e:2020 ID + +https://bugs.freedesktop.org/show_bug.cgi?id=59320 +--- + libfprint/drivers/upeke2.c | 14 +++++++++++--- + 1 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/libfprint/drivers/upeke2.c b/libfprint/drivers/upeke2.c +index ed8f43d..a7db54d 100644 +--- a/libfprint/drivers/upeke2.c ++++ b/libfprint/drivers/upeke2.c +@@ -46,6 +46,11 @@ + #define MSG_READ_BUF_SIZE 0x40 + #define MAX_DATA_IN_READ_BUF (MSG_READ_BUF_SIZE - 9) + ++enum { ++ UPEKE2_2016, ++ UPEKE2_2020, ++}; ++ + struct upeke2_dev { + gboolean enroll_passed; + gboolean first_verify_iteration; +@@ -848,8 +853,10 @@ static struct fpi_ssm *deinitsm_new(struct fp_dev *dev) + + static int discover(struct libusb_device_descriptor *dsc, uint32_t *devtype) + { +- /* Revision 2 is what we're interested in */ +- if (dsc->bcdDevice == 2) ++ if (dsc->idProduct == 0x2016 && dsc->bcdDevice == 2) ++ return 1; ++ ++ if (dsc->idProduct == 0x2020 && dsc->bcdDevice == 1) + return 1; + + return 0; +@@ -1453,7 +1460,8 @@ static int verify_stop(struct fp_dev *dev, gboolean iterating) + } + + static const struct usb_id id_table[] = { +- { .vendor = 0x147e, .product = 0x2016 }, ++ { .vendor = 0x147e, .product = 0x2016, .driver_data = UPEKE2_2016 }, ++ { .vendor = 0x147e, .product = 0x2020, .driver_data = UPEKE2_2020 }, + { 0, 0, 0, }, /* terminating entry */ + }; + +-- +1.7.2.5 +