elanmoc: Adjustments to protocol change (passing an empty user ID)

This commit is contained in:
hermanlin 2021-08-10 16:22:54 +08:00
parent 874513e79a
commit 62448492af
4 changed files with 170 additions and 168 deletions

View file

@ -431,7 +431,7 @@ elan_enroll_run_state (FpiSsm *ssm, FpDevice *dev)
case MOC_ENROLL_REENROLL_CHECK: case MOC_ENROLL_REENROLL_CHECK:
data = fpi_ssm_get_data (ssm); data = fpi_ssm_get_data (ssm);
cmd_buf = elanmoc_compose_cmd (&elanmoc_check_reenroll_cmd); cmd_buf = elanmoc_compose_cmd (&elanmoc_check_reenroll_cmd);
cmd_buf[4] = data[16]; memcpy (cmd_buf + 3, data, ELAN_USERDATE_SIZE);
elanmoc_get_cmd (dev, cmd_buf, elanmoc_check_reenroll_cmd.cmd_len, elanmoc_check_reenroll_cmd.resp_len, 0, elanmoc_reenroll_cb); elanmoc_get_cmd (dev, cmd_buf, elanmoc_check_reenroll_cmd.cmd_len, elanmoc_check_reenroll_cmd.resp_len, 0, elanmoc_reenroll_cb);
break; break;

View file

@ -135,7 +135,7 @@ static const struct elanmoc_cmd elanmoc_set_mod_cmd = {
static const struct elanmoc_cmd elanmoc_check_reenroll_cmd = { static const struct elanmoc_cmd elanmoc_check_reenroll_cmd = {
.cmd_header = {0x40, 0xff, 0x22}, .cmd_header = {0x40, 0xff, 0x22},
.cmd_len = 5, .cmd_len = 3 + ELAN_USERDATE_SIZE,
.resp_len = 2, .resp_len = 2,
}; };

Binary file not shown.

View file

@ -1,14 +1,14 @@
P: /devices/pci0000:00/0000:00:14.0/usb1/1-3 P: /devices/pci0000:00/0000:00:14.0/usb1/1-1
N: bus/usb/001/017=1201000200000040F3047E0C06030102000109025300010100A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001 N: bus/usb/001/010=1201000200000040F3047E0C05030102000109025300010103A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001
E: DEVNAME=/dev/bus/usb/001/017 E: DEVNAME=/dev/bus/usb/001/010
E: DEVTYPE=usb_device E: DEVTYPE=usb_device
E: DRIVER=usb E: DRIVER=usb
E: PRODUCT=4f3/c7e/306 E: PRODUCT=4f3/c7e/305
E: TYPE=0/0/0 E: TYPE=0/0/0
E: BUSNUM=001 E: BUSNUM=001
E: DEVNUM=017 E: DEVNUM=010
E: MAJOR=189 E: MAJOR=189
E: MINOR=16 E: MINOR=9
E: SUBSYSTEM=usb E: SUBSYSTEM=usb
E: ID_VENDOR=ELAN E: ID_VENDOR=ELAN
E: ID_VENDOR_ENC=ELAN E: ID_VENDOR_ENC=ELAN
@ -16,208 +16,210 @@ E: ID_VENDOR_ID=04f3
E: ID_MODEL=ELAN:ARM-M4 E: ID_MODEL=ELAN:ARM-M4
E: ID_MODEL_ENC=ELAN:ARM-M4 E: ID_MODEL_ENC=ELAN:ARM-M4
E: ID_MODEL_ID=0c7e E: ID_MODEL_ID=0c7e
E: ID_REVISION=0306 E: ID_REVISION=0305
E: ID_SERIAL=ELAN_ELAN:ARM-M4 E: ID_SERIAL=ELAN_ELAN:ARM-M4
E: ID_BUS=usb E: ID_BUS=usb
E: ID_USB_INTERFACES=:ff0000: E: ID_USB_INTERFACES=:ff0000:
E: ID_VENDOR_FROM_DATABASE=Elan Microelectronics Corp. E: ID_VENDOR_FROM_DATABASE=Elan Microelectronics Corp.
E: ID_PATH=pci-0000:00:14.0-usb-0:3 E: ID_PATH=pci-0000:00:14.0-usb-0:1
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_3 E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_1
E: ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_3 A: authorized=1
E: TAGS=:seat: A: avoid_reset_quirk=0
E: CURRENT_TAGS=:seat: A: bConfigurationValue=1
A: authorized=1\n A: bDeviceClass=00
A: avoid_reset_quirk=0\n A: bDeviceProtocol=00
A: bConfigurationValue=1\n A: bDeviceSubClass=00
A: bDeviceClass=00\n A: bMaxPacketSize0=64
A: bDeviceProtocol=00\n A: bMaxPower=100mA
A: bDeviceSubClass=00\n A: bNumConfigurations=1
A: bMaxPacketSize0=64\n A: bNumInterfaces= 1
A: bMaxPower=100mA\n A: bcdDevice=0305
A: bNumConfigurations=1\n A: bmAttributes=a0
A: bNumInterfaces= 1\n A: busnum=1
A: bcdDevice=0306\n A: configuration=add909c9-e67e-4126-a6f7-1e31179e27d9
A: bmAttributes=a0\n H: descriptors=1201000200000040F3047E0C05030102000109025300010103A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001
A: busnum=1\n A: dev=189:9
A: configuration= A: devnum=10
H: descriptors=1201000200000040F3047E0C06030102000109025300010100A0320904000008FF0000000921100100012215000705810240000107050102400001070582024000010705020240000107058302400001070503024000010705840240000107050402400001 A: devpath=1
A: dev=189:16\n
A: devnum=17\n
A: devpath=3\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 A: idProduct=0c7e
A: idProduct=0c7e\n A: idVendor=04f3
A: idVendor=04f3\n A: ltm_capable=no
A: ltm_capable=no\n A: manufacturer=ELAN
A: manufacturer=ELAN\n A: maxchild=0
A: maxchild=0\n L: port=../1-0:1.0/usb1-port1
L: port=../1-0:1.0/usb1-port3 A: power/active_duration=94712
A: power/active_duration=2748\n A: power/async=enabled
A: power/autosuspend=2\n A: power/autosuspend=2
A: power/autosuspend_delay_ms=2000\n A: power/autosuspend_delay_ms=2000
A: power/connected_duration=18266\n A: power/connected_duration=94712
A: power/control=auto\n A: power/control=on
A: power/level=auto\n A: power/level=on
A: power/persist=1\n A: power/persist=1
A: power/runtime_active_time=2603\n A: power/runtime_active_kids=0
A: power/runtime_status=active\n A: power/runtime_active_time=94436
A: power/runtime_suspended_time=15422\n A: power/runtime_enabled=forbidden
A: power/wakeup=disabled\n A: power/runtime_status=active
A: power/wakeup_abort_count=\n A: power/runtime_suspended_time=0
A: power/wakeup_active=\n A: power/runtime_usage=1
A: power/wakeup_active_count=\n A: power/wakeup=disabled
A: power/wakeup_count=\n A: power/wakeup_abort_count=
A: power/wakeup_expire_count=\n A: power/wakeup_active=
A: power/wakeup_last_time_ms=\n A: power/wakeup_active_count=
A: power/wakeup_max_time_ms=\n A: power/wakeup_count=
A: power/wakeup_total_time_ms=\n A: power/wakeup_expire_count=
A: product=ELAN:ARM-M4\n A: power/wakeup_last_time_ms=
A: quirks=0x0\n A: power/wakeup_max_time_ms=
A: removable=removable\n A: power/wakeup_total_time_ms=
A: rx_lanes=1\n A: product=ELAN:ARM-M4
A: speed=12\n A: quirks=0x0
A: tx_lanes=1\n A: removable=removable
A: urbnum=12\n A: rx_lanes=1
A: version= 2.00\n A: speed=12
A: tx_lanes=1
A: urbnum=12
A: version= 2.00
P: /devices/pci0000:00/0000:00:14.0/usb1 P: /devices/pci0000:00/0000:00:14.0/usb1
N: bus/usb/001/001=12010002090001406B1D020012050302010109021900010100E0000904000001090000000705810304000C N: bus/usb/001/001=12010002090001406B1D020004050302010109021900010100E0000904000001090000000705810304000C
E: DEVNAME=/dev/bus/usb/001/001 E: DEVNAME=/dev/bus/usb/001/001
E: DEVTYPE=usb_device E: DEVTYPE=usb_device
E: DRIVER=usb E: DRIVER=usb
E: PRODUCT=1d6b/2/512 E: PRODUCT=1d6b/2/504
E: TYPE=9/0/1 E: TYPE=9/0/1
E: BUSNUM=001 E: BUSNUM=001
E: DEVNUM=001 E: DEVNUM=001
E: MAJOR=189 E: MAJOR=189
E: MINOR=0 E: MINOR=0
E: SUBSYSTEM=usb E: SUBSYSTEM=usb
E: ID_VENDOR=Linux_5.12.12-300.fc34.x86_64_xhci-hcd E: ID_VENDOR=Linux_5.4.0-42-generic_xhci-hcd
E: ID_VENDOR_ENC=Linux\x205.12.12-300.fc34.x86_64\x20xhci-hcd E: ID_VENDOR_ENC=Linux\x205.4.0-42-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=0512 E: ID_REVISION=0504
E: ID_SERIAL=Linux_5.12.12-300.fc34.x86_64_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 E: ID_SERIAL=Linux_5.4.0-42-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:
E: ID_VENDOR_FROM_DATABASE=Linux Foundation E: ID_VENDOR_FROM_DATABASE=Linux Foundation
E: ID_AUTOSUSPEND=1
E: ID_MODEL_FROM_DATABASE=2.0 root hub E: ID_MODEL_FROM_DATABASE=2.0 root hub
E: ID_PATH=pci-0000:00:14.0 E: ID_PATH=pci-0000:00:14.0
E: ID_PATH_TAG=pci-0000_00_14_0 E: ID_PATH_TAG=pci-0000_00_14_0
E: ID_FOR_SEAT=usb-pci-0000_00_14_0 E: ID_FOR_SEAT=usb-pci-0000_00_14_0
E: TAGS=:seat: E: TAGS=:seat:
E: CURRENT_TAGS=:seat: A: authorized=1
A: authorized=1\n A: authorized_default=1
A: authorized_default=1\n A: avoid_reset_quirk=0
A: avoid_reset_quirk=0\n A: bConfigurationValue=1
A: bConfigurationValue=1\n A: bDeviceClass=09
A: bDeviceClass=09\n A: bDeviceProtocol=01
A: bDeviceProtocol=01\n A: bDeviceSubClass=00
A: bDeviceSubClass=00\n A: bMaxPacketSize0=64
A: bMaxPacketSize0=64\n A: bMaxPower=0mA
A: bMaxPower=0mA\n A: bNumConfigurations=1
A: bNumConfigurations=1\n A: bNumInterfaces= 1
A: bNumInterfaces= 1\n A: bcdDevice=0504
A: bcdDevice=0512\n A: bmAttributes=e0
A: bmAttributes=e0\n A: busnum=1
A: busnum=1\n
A: configuration= A: configuration=
H: descriptors=12010002090001406B1D020012050302010109021900010100E0000904000001090000000705810304000C H: descriptors=12010002090001406B1D020004050302010109021900010100E0000904000001090000000705810304000C
A: dev=189:0\n A: dev=189:0
A: devnum=1\n A: devnum=1
A: devpath=0\n A: devpath=0
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 A: idProduct=0002
A: idProduct=0002\n A: idVendor=1d6b
A: idVendor=1d6b\n A: interface_authorized_default=1
A: interface_authorized_default=1\n A: ltm_capable=no
A: ltm_capable=no\n A: manufacturer=Linux 5.4.0-42-generic xhci-hcd
A: manufacturer=Linux 5.12.12-300.fc34.x86_64 xhci-hcd\n A: maxchild=12
A: maxchild=12\n A: power/active_duration=74604360
A: power/active_duration=187216979\n A: power/async=enabled
A: power/autosuspend=0\n A: power/autosuspend=0
A: power/autosuspend_delay_ms=0\n A: power/autosuspend_delay_ms=0
A: power/connected_duration=187239996\n A: power/connected_duration=74606456
A: power/control=auto\n A: power/control=auto
A: power/level=auto\n A: power/level=auto
A: power/runtime_active_time=187220224\n A: power/runtime_active_kids=4
A: power/runtime_status=active\n A: power/runtime_active_time=74605838
A: power/runtime_suspended_time=0\n A: power/runtime_enabled=enabled
A: power/wakeup=disabled\n A: power/runtime_status=active
A: power/wakeup_abort_count=\n A: power/runtime_suspended_time=0
A: power/wakeup_active=\n A: power/runtime_usage=0
A: power/wakeup_active_count=\n A: power/wakeup=disabled
A: power/wakeup_count=\n A: power/wakeup_abort_count=
A: power/wakeup_expire_count=\n A: power/wakeup_active=
A: power/wakeup_last_time_ms=\n A: power/wakeup_active_count=
A: power/wakeup_max_time_ms=\n A: power/wakeup_count=
A: power/wakeup_total_time_ms=\n A: power/wakeup_expire_count=
A: product=xHCI Host Controller\n A: power/wakeup_last_time_ms=
A: quirks=0x0\n A: power/wakeup_max_time_ms=
A: removable=unknown\n A: power/wakeup_total_time_ms=
A: rx_lanes=1\n A: product=xHCI Host Controller
A: serial=0000:00:14.0\n A: quirks=0x0
A: speed=480\n A: removable=unknown
A: tx_lanes=1\n A: rx_lanes=1
A: urbnum=3372\n A: serial=0000:00:14.0
A: version= 2.00\n A: speed=480
A: tx_lanes=1
A: urbnum=490
A: version= 2.00
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:9DED
E: PCI_SUBSYS_ID=17AA:2292 E: PCI_SUBSYS_ID=103C:85EF
E: PCI_SLOT_NAME=0000:00:14.0 E: PCI_SLOT_NAME=0000:00:14.0
E: MODALIAS=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30 E: MODALIAS=pci:v00008086d00009DEDsv0000103Csd000085EFbc0Csc03i30
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 E: ID_MODEL_FROM_DATABASE=Cannon Point-LP USB 3.1 xHCI Controller
A: ari_enabled=0\n A: ari_enabled=0
A: broken_parity_status=0\n A: broken_parity_status=0
A: class=0x0c0330\n A: class=0x0c0330
H: config=8680ED9D060490021130030C00008000040022EA000000000000000000000000000000000000000000000000AA179222000000007000000000000000FF010000 H: config=8680ED9D060490023030030C00008000040030A10000000000000000000000000000000000000000000000003C10EF85000000007000000000000000FF010000FD0134808FC6FF8300000000000000007F6DDC0F00000000181C030400000000316000000000000000000000000000000180C2C1080000000000000000000000059087007802E0FE0000000000000000090014F01000400100000000C10A080000080E00001800008F40020000010000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000B50F300112000000
A: consistent_dma_mask_bits=64\n A: consistent_dma_mask_bits=64
A: d3cold_allowed=1\n A: d3cold_allowed=1
A: dbc=disabled\n A: dbc=disabled
A: device=0x9ded\n A: device=0x9ded
A: dma_mask_bits=64\n A: dma_mask_bits=64
L: driver=../../../bus/pci/drivers/xhci_hcd L: driver=../../../bus/pci/drivers/xhci_hcd
A: driver_override=(null)\n A: driver_override=(null)
A: enable=1\n A: enable=1
L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:1c A: irq=124
A: irq=128\n A: local_cpulist=0-3
A: local_cpulist=0-7\n A: local_cpus=f
A: local_cpus=ff\n A: modalias=pci:v00008086d00009DEDsv0000103Csd000085EFbc0Csc03i30
A: modalias=pci:v00008086d00009DEDsv000017AAsd00002292bc0Csc03i30\n A: msi_bus=1
A: msi_bus=1\n A: msi_irqs/124=msi
A: msi_irqs/128=msi\n A: numa_node=-1
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 32 128 1\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 54 54 4096 54\nbuffer-2048 0 0 2048 0\nbuffer-512 0 0 512 0\nbuffer-128 9 32 128 1\nbuffer-32 0 0 32 0
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 58 62 4096 62\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: power/async=enabled
A: power/control=on\n A: power/control=auto
A: power/runtime_active_time=187221117\n A: power/runtime_active_kids=1
A: power/runtime_status=active\n A: power/runtime_active_time=74606194
A: power/runtime_suspended_time=0\n A: power/runtime_enabled=enabled
A: power/wakeup=enabled\n A: power/runtime_status=active
A: power/wakeup_abort_count=0\n A: power/runtime_suspended_time=0
A: power/wakeup_active=0\n A: power/runtime_usage=0
A: power/wakeup_active_count=0\n A: power/wakeup=enabled
A: power/wakeup_count=0\n A: power/wakeup_abort_count=0
A: power/wakeup_expire_count=0\n A: power/wakeup_active=0
A: power/wakeup_last_time_ms=0\n A: power/wakeup_active_count=0
A: power/wakeup_max_time_ms=0\n A: power/wakeup_count=0
A: power/wakeup_total_time_ms=0\n A: power/wakeup_expire_count=0
A: power_state=D0\n A: power/wakeup_last_time_ms=0
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: power/wakeup_max_time_ms=0
A: revision=0x11\n A: power/wakeup_total_time_ms=0
A: subsystem_device=0x2292\n A: resource=0x00000000a1300000 0x00000000a130ffff 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
A: subsystem_vendor=0x17aa\n A: revision=0x30
A: vendor=0x8086\n A: subsystem_device=0x85ef
A: subsystem_vendor=0x103c
A: vendor=0x8086