From e71f3de786c9dab87ee270725e89e2cf4bbec4a2 Mon Sep 17 00:00:00 2001 From: haoweilo Date: Wed, 27 Mar 2024 15:23:05 +0800 Subject: [PATCH] fpcmoc: add error handling to evt_finger_dwn Redo the current task state if we got failed status from evt_finger_dwn --- libfprint/drivers/fpcmoc/fpc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libfprint/drivers/fpcmoc/fpc.c b/libfprint/drivers/fpcmoc/fpc.c index 0a7bc14c..0b11d63f 100644 --- a/libfprint/drivers/fpcmoc/fpc.c +++ b/libfprint/drivers/fpcmoc/fpc.c @@ -445,10 +445,16 @@ fpc_evt_cb (FpiDeviceFpcMoc *self, break; case FPC_EVT_FINGER_DWN: - fp_dbg ("%s Got finger down event", G_STRFUNC); + fp_dbg ("%s Got finger down event (%d)", G_STRFUNC, presp->evt_hdr.status); fpi_device_report_finger_status_changes (FP_DEVICE (self), FP_FINGER_STATUS_PRESENT, FP_FINGER_STATUS_NONE); + if (presp->evt_hdr.status != 0) + { + /* Redo the current task state if capture failed */ + fpi_ssm_jump_to_state (self->task_ssm, fpi_ssm_get_cur_state (self->task_ssm)); + return; + } break; case FPC_EVT_IMG: