goodixmoc: Fix missing "enroll create" state

After the driver internal duplicate check had been removed in
46669e9f53, all templates were saved with
an all-zeroes template ID.

By going through FP_ENROLL_CREATE before starting to capture, the
template ID returned from the device is taken into account again.

Signed-off-by: Enrik Berkhan <Enrik.Berkhan@inka.de>
This commit is contained in:
Enrik Berkhan
2023-01-19 20:28:33 +01:00
parent 7080a5ff8b
commit 86566e8d0b
3 changed files with 81 additions and 70 deletions

View File

@@ -631,7 +631,7 @@ fp_enroll_enum_cb (FpiDeviceGoodixMoc *self,
return; return;
} }
fpi_ssm_jump_to_state (self->task_ssm, FP_ENROLL_CAPTURE); fpi_ssm_jump_to_state (self->task_ssm, FP_ENROLL_CREATE);
} }
static void static void

Binary file not shown.

View File

@@ -1,31 +1,30 @@
P: /devices/pci0000:00/0000:00:14.0/usb1/1-3 P: /devices/pci0000:00/0000:00:14.0/usb3/3-9
N: bus/usb/001/023=12010002EF000040C627966400010102030109022000010103A0320904000002FF0000040705830240000007050102400000 N: bus/usb/003/004=12010002EF000040C627AC6300010102030109022000010103A0320904000002FF0000040705830240000007050102400000
E: DEVNAME=/dev/bus/usb/001/023 E: DEVNAME=/dev/bus/usb/003/004
E: DEVTYPE=usb_device E: DEVTYPE=usb_device
E: DRIVER=usb E: DRIVER=usb
E: PRODUCT=27c6/6496/100 E: PRODUCT=27c6/63ac/100
E: TYPE=239/0/0 E: TYPE=239/0/0
E: BUSNUM=001 E: BUSNUM=003
E: DEVNUM=023 E: DEVNUM=004
E: MAJOR=189 E: MAJOR=189
E: MINOR=22 E: MINOR=259
E: SUBSYSTEM=usb E: SUBSYSTEM=usb
E: ID_VENDOR=Goodix_Technology_Co.__Ltd. E: ID_VENDOR=Goodix_Technology_Co.__Ltd.
E: ID_VENDOR_ENC=Goodix\x20Technology\x20Co.\x2c\x20Ltd. E: ID_VENDOR_ENC=Goodix\x20Technology\x20Co.\x2c\x20Ltd.
E: ID_VENDOR_ID=27c6 E: ID_VENDOR_ID=27c6
E: ID_MODEL=Goodix_USB2.0_MISC E: ID_MODEL=Goodix_USB2.0_MISC
E: ID_MODEL_ENC=Goodix\x20USB2.0\x20MISC E: ID_MODEL_ENC=Goodix\x20USB2.0\x20MISC
E: ID_MODEL_ID=6496 E: ID_MODEL_ID=63ac
E: ID_REVISION=0100 E: ID_REVISION=0100
E: ID_SERIAL=Goodix_Technology_Co.__Ltd._Goodix_USB2.0_MISC_XXXX_MOC_B0 E: ID_SERIAL=Goodix_Technology_Co.__Ltd._Goodix_USB2.0_MISC_UID4C77C784_XXXX_MOC_B0
E: ID_SERIAL_SHORT=XXXX_MOC_B0 E: ID_SERIAL_SHORT=UID4C77C784_XXXX_MOC_B0
E: ID_BUS=usb E: ID_BUS=usb
E: ID_USB_INTERFACES=:ff0000: E: ID_USB_INTERFACES=:ff0000:
E: ID_VENDOR_FROM_DATABASE=Shenzhen Goodix Technology Co.,Ltd. E: ID_VENDOR_FROM_DATABASE=Shenzhen Goodix Technology Co.,Ltd.
E: ID_AUTOSUSPEND=1 E: ID_AUTOSUSPEND=1
E: ID_PERSIST=0 E: ID_PATH=pci-0000:00:14.0-usb-0:9
E: ID_PATH=pci-0000:00:14.0-usb-0:3 E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_9
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_3
A: authorized=1\n A: authorized=1\n
A: avoid_reset_quirk=0\n A: avoid_reset_quirk=0\n
A: bConfigurationValue=1\n A: bConfigurationValue=1\n
@@ -38,30 +37,34 @@ A: bNumConfigurations=1\n
A: bNumInterfaces= 1\n A: bNumInterfaces= 1\n
A: bcdDevice=0100\n A: bcdDevice=0100\n
A: bmAttributes=a0\n A: bmAttributes=a0\n
A: busnum=1\n A: busnum=3\n
A: configuration=XXXX_MOC_B0\n A: configuration=UID4C77C784_XXXX_MOC_B0\n
H: descriptors=12010002EF000040C627966400010102030109022000010103A0320904000002FF0000040705830240000007050102400000 H: descriptors=12010002EF000040C627AC6300010102030109022000010103A0320904000002FF0000040705830240000007050102400000
A: dev=189:22\n A: dev=189:259\n
A: devnum=23\n A: devnum=4\n
A: devpath=3\n A: devpath=9\n
L: driver=../../../../../bus/usb/drivers/usb L: driver=../../../../../bus/usb/drivers/usb
L: firmware_node=../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c/device:1d/device:20 L: firmware_node=../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:13/device:14/device:1f
A: idProduct=6496\n A: idProduct=63ac\n
A: idVendor=27c6\n A: idVendor=27c6\n
A: ltm_capable=no\n A: ltm_capable=no\n
A: manufacturer=Goodix Technology Co., Ltd.\n A: manufacturer=Goodix Technology Co., Ltd.\n
A: maxchild=0\n A: maxchild=0\n
L: port=../1-0:1.0/usb1-port3 L: port=../3-0:1.0/usb3-port9
A: power/active_duration=22667\n A: power/active_duration=702588\n
A: power/async=enabled\n
A: power/autosuspend=2\n A: power/autosuspend=2\n
A: power/autosuspend_delay_ms=2000\n A: power/autosuspend_delay_ms=2000\n
A: power/connected_duration=917616\n A: power/connected_duration=78973756\n
A: power/control=auto\n A: power/control=auto\n
A: power/level=auto\n A: power/level=auto\n
A: power/persist=1\n A: power/persist=1\n
A: power/runtime_active_time=22809\n A: power/runtime_active_kids=0\n
A: power/runtime_active_time=707156\n
A: power/runtime_enabled=enabled\n
A: power/runtime_status=active\n A: power/runtime_status=active\n
A: power/runtime_suspended_time=894564\n A: power/runtime_suspended_time=78265226\n
A: power/runtime_usage=0\n
A: power/wakeup=disabled\n A: power/wakeup=disabled\n
A: power/wakeup_abort_count=\n A: power/wakeup_abort_count=\n
A: power/wakeup_active=\n A: power/wakeup_active=\n
@@ -73,34 +76,34 @@ A: power/wakeup_max_time_ms=\n
A: power/wakeup_total_time_ms=\n A: power/wakeup_total_time_ms=\n
A: product=Goodix USB2.0 MISC\n A: product=Goodix USB2.0 MISC\n
A: quirks=0x0\n A: quirks=0x0\n
A: removable=removable\n A: removable=fixed\n
A: rx_lanes=1\n A: rx_lanes=1\n
A: serial=XXXX_MOC_B0\n A: serial=UID4C77C784_XXXX_MOC_B0\n
A: speed=12\n A: speed=12\n
A: tx_lanes=1\n A: tx_lanes=1\n
A: urbnum=298\n A: urbnum=5759\n
A: version= 2.00\n A: version= 2.00\n
P: /devices/pci0000:00/0000:00:14.0/usb1 P: /devices/pci0000:00/0000:00:14.0/usb3
N: bus/usb/001/001=12010002090001406B1D020017050302010109021900010100E0000904000001090000000705810304000C N: bus/usb/003/001=12010002090001406B1D020015050302010109021900010100E0000904000001090000000705810304000C
E: DEVNAME=/dev/bus/usb/001/001 E: DEVNAME=/dev/bus/usb/003/001
E: DEVTYPE=usb_device E: DEVTYPE=usb_device
E: DRIVER=usb E: DRIVER=usb
E: PRODUCT=1d6b/2/517 E: PRODUCT=1d6b/2/515
E: TYPE=9/0/1 E: TYPE=9/0/1
E: BUSNUM=001 E: BUSNUM=003
E: DEVNUM=001 E: DEVNUM=001
E: MAJOR=189 E: MAJOR=189
E: MINOR=0 E: MINOR=256
E: SUBSYSTEM=usb E: SUBSYSTEM=usb
E: ID_VENDOR=Linux_5.17.12-300.fc36.x86_64_xhci-hcd E: ID_VENDOR=Linux_5.15.0-57-generic_xhci-hcd
E: ID_VENDOR_ENC=Linux\x205.17.12-300.fc36.x86_64\x20xhci-hcd E: ID_VENDOR_ENC=Linux\x205.15.0-57-generic\x20xhci-hcd
E: ID_VENDOR_ID=1d6b E: ID_VENDOR_ID=1d6b
E: ID_MODEL=xHCI_Host_Controller E: ID_MODEL=xHCI_Host_Controller
E: ID_MODEL_ENC=xHCI\x20Host\x20Controller E: ID_MODEL_ENC=xHCI\x20Host\x20Controller
E: ID_MODEL_ID=0002 E: ID_MODEL_ID=0002
E: ID_REVISION=0517 E: ID_REVISION=0515
E: ID_SERIAL=Linux_5.17.12-300.fc36.x86_64_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 E: ID_SERIAL=Linux_5.15.0-57-generic_xhci-hcd_xHCI_Host_Controller_0000:00:14.0
E: ID_SERIAL_SHORT=0000:00:14.0 E: ID_SERIAL_SHORT=0000:00:14.0
E: ID_BUS=usb E: ID_BUS=usb
E: ID_USB_INTERFACES=:090000: E: ID_USB_INTERFACES=:090000:
@@ -123,31 +126,35 @@ A: bMaxPacketSize0=64\n
A: bMaxPower=0mA\n A: bMaxPower=0mA\n
A: bNumConfigurations=1\n A: bNumConfigurations=1\n
A: bNumInterfaces= 1\n A: bNumInterfaces= 1\n
A: bcdDevice=0517\n A: bcdDevice=0515\n
A: bmAttributes=e0\n A: bmAttributes=e0\n
A: busnum=1\n A: busnum=3\n
A: configuration=\n A: configuration=
H: descriptors=12010002090001406B1D020017050302010109021900010100E0000904000001090000000705810304000C H: descriptors=12010002090001406B1D020015050302010109021900010100E0000904000001090000000705810304000C
A: dev=189:0\n A: dev=189:256\n
A: devnum=1\n A: devnum=1\n
A: devpath=0\n A: devpath=0\n
L: driver=../../../../bus/usb/drivers/usb L: driver=../../../../bus/usb/drivers/usb
L: firmware_node=../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c/device:1d L: firmware_node=../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:13/device:14
A: idProduct=0002\n A: idProduct=0002\n
A: idVendor=1d6b\n A: idVendor=1d6b\n
A: interface_authorized_default=1\n A: interface_authorized_default=1\n
A: ltm_capable=no\n A: ltm_capable=no\n
A: manufacturer=Linux 5.17.12-300.fc36.x86_64 xhci-hcd\n A: manufacturer=Linux 5.15.0-57-generic xhci-hcd\n
A: maxchild=12\n A: maxchild=12\n
A: power/active_duration=164289796\n A: power/active_duration=78971960\n
A: power/async=enabled\n
A: power/autosuspend=0\n A: power/autosuspend=0\n
A: power/autosuspend_delay_ms=0\n A: power/autosuspend_delay_ms=0\n
A: power/connected_duration=164360220\n A: power/connected_duration=78974992\n
A: power/control=auto\n A: power/control=auto\n
A: power/level=auto\n A: power/level=auto\n
A: power/runtime_active_time=164331876\n A: power/runtime_active_kids=2\n
A: power/runtime_active_time=78973899\n
A: power/runtime_enabled=enabled\n
A: power/runtime_status=active\n A: power/runtime_status=active\n
A: power/runtime_suspended_time=0\n A: power/runtime_suspended_time=0\n
A: power/runtime_usage=0\n
A: power/wakeup=disabled\n A: power/wakeup=disabled\n
A: power/wakeup_abort_count=\n A: power/wakeup_abort_count=\n
A: power/wakeup_active=\n A: power/wakeup_active=\n
@@ -164,48 +171,52 @@ A: rx_lanes=1\n
A: serial=0000:00:14.0\n A: serial=0000:00:14.0\n
A: speed=480\n A: speed=480\n
A: tx_lanes=1\n A: tx_lanes=1\n
A: urbnum=2097\n A: urbnum=1824\n
A: version= 2.00\n A: version= 2.00\n
P: /devices/pci0000:00/0000:00:14.0 P: /devices/pci0000:00/0000:00:14.0
E: DRIVER=xhci_hcd E: DRIVER=xhci_hcd
E: PCI_CLASS=C0330 E: PCI_CLASS=C0330
E: PCI_ID=8086:9DED E: PCI_ID=8086:51ED
E: PCI_SUBSYS_ID=17AA:2292 E: PCI_SUBSYS_ID=1028:0B00
E: PCI_SLOT_NAME=0000:00:14.0 E: PCI_SLOT_NAME=0000:00:14.0
E: MODALIAS=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30 E: MODALIAS=pci:v00008086d000051EDsv00001028sd00000B00bc0Csc03i30
E: SUBSYSTEM=pci E: SUBSYSTEM=pci
E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI
E: ID_VENDOR_FROM_DATABASE=Intel Corporation E: ID_VENDOR_FROM_DATABASE=Intel Corporation
E: ID_AUTOSUSPEND=1
E: ID_MODEL_FROM_DATABASE=Cannon Point-LP USB 3.1 xHCI Controller
A: ari_enabled=0\n A: ari_enabled=0\n
A: broken_parity_status=0\n A: broken_parity_status=0\n
A: class=0x0c0330\n A: class=0x0c0330\n
H: config=8680ED9D060490021130030C00008000040022EA000000000000000000000000000000000000000000000000AA179222000000007000000000000000FF010000FD0134808FC6FF8300000000000000007F6DDC0F00000000F507312600000000316000000000000000000000000000000180C2C1080000000000000000000000059087001803E0FE0000000000000000090014F01000400100000000C10A080000080E00001800008F40020000010000000000000000000008000000040000000000000000000000000000000000000000000000000000000800000004000000000000000000000000000000000000000000000000000000B50F320112000000 H: config=8680ED51060490020130030C0000800004002A8F6200000000000000000000000000000000000000000000002810000B000000007000000000000000FF010000FD0134A089C27F8000000000000000003F6DD80F000000000000000000000000316000000000000000000000000000000180C2C1080000000000000000000000059087003808E0FE000000000000000009B014F01000400100000000C10A080000080E00001800008F50020000010000090000018680C00009001014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B50F100112000000
A: consistent_dma_mask_bits=64\n A: consistent_dma_mask_bits=64\n
A: d3cold_allowed=1\n A: d3cold_allowed=1\n
A: dbc=disabled\n A: dbc=disabled\n
A: device=0x9ded\n A: device=0x51ed\n
A: dma_mask_bits=64\n A: dma_mask_bits=64\n
L: driver=../../../bus/pci/drivers/xhci_hcd L: driver=../../../bus/pci/drivers/xhci_hcd
A: driver_override=(null)\n A: driver_override=(null)\n
A: enable=1\n A: enable=1\n
L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:13
A: irq=128\n L: iommu=../../virtual/iommu/dmar1
A: local_cpulist=0-7\n L: iommu_group=../../../kernel/iommu_groups/13
A: local_cpus=ff\n A: irq=167\n
A: modalias=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30\n A: local_cpulist=0-19\n
A: local_cpus=fffff\n
A: modalias=pci:v00008086d000051EDsv00001028sd00000B00bc0Csc03i30\n
A: msi_bus=1\n A: msi_bus=1\n
A: msi_irqs/128=msi\n A: msi_irqs/167=msi\n
A: numa_node=-1\n A: numa_node=-1\n
A: pools=poolinfo - 0.1\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 0 0 128 0\nbuffer-32 0 0 32 0\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 11 12 2112 12\nxHCI ring segments 46 50 4096 50\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 6 32 128 1\nbuffer-32 0 0 32 0\n A: pools=poolinfo - 0.1\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 13 14 2112 14\nxHCI ring segments 38 42 4096 42\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 0 0 128 0\nbuffer-32 0 0 32 0\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 3 32 128 1\nbuffer-32 0 0 32 0\n
A: power/async=enabled\n
A: power/control=auto\n A: power/control=auto\n
A: power/runtime_active_time=164332777\n A: power/runtime_active_kids=1\n
A: power/runtime_active_time=78974886\n
A: power/runtime_enabled=enabled\n
A: power/runtime_status=active\n A: power/runtime_status=active\n
A: power/runtime_suspended_time=0\n A: power/runtime_suspended_time=0\n
A: power/runtime_usage=0\n
A: power/wakeup=enabled\n A: power/wakeup=enabled\n
A: power/wakeup_abort_count=0\n A: power/wakeup_abort_count=0\n
A: power/wakeup_active=0\n A: power/wakeup_active=0\n
@@ -216,9 +227,9 @@ A: power/wakeup_last_time_ms=0\n
A: power/wakeup_max_time_ms=0\n A: power/wakeup_max_time_ms=0\n
A: power/wakeup_total_time_ms=0\n A: power/wakeup_total_time_ms=0\n
A: power_state=D0\n A: power_state=D0\n
A: resource=0x00000000ea220000 0x00000000ea22ffff 0x0000000000140204\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n A: resource=0x000000628f2a0000 0x000000628f2affff 0x0000000000140204\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n
A: revision=0x11\n A: revision=0x01\n
A: subsystem_device=0x2292\n A: subsystem_device=0x0b00\n
A: subsystem_vendor=0x17aa\n A: subsystem_vendor=0x1028\n
A: vendor=0x8086\n A: vendor=0x8086\n