From d6b4adec737b193bc0efb42adda83c2701acb7c7 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Mon, 12 Jul 2021 17:06:12 +0200 Subject: [PATCH] tests: Add upektc_img test --- tests/meson.build | 1 + tests/upektc_img/capture.pcapng | Bin 0 -> 92644 bytes tests/upektc_img/capture.png | Bin 0 -> 27307 bytes tests/upektc_img/device | 319 ++++++++++++++++++++++++++++++++ 4 files changed, 320 insertions(+) create mode 100644 tests/upektc_img/capture.pcapng create mode 100644 tests/upektc_img/capture.png create mode 100644 tests/upektc_img/device diff --git a/tests/meson.build b/tests/meson.build index a64936a..5ad3d59 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -27,6 +27,7 @@ drivers_tests = [ 'elanmoc', 'elanspi', 'synaptics', + 'upektc_img', 'vfs0050', 'vfs301', 'vfs5011', diff --git a/tests/upektc_img/capture.pcapng b/tests/upektc_img/capture.pcapng new file mode 100644 index 0000000000000000000000000000000000000000..aa959e8e5faa48eaaf1a32d85e47d980e4cd7dae GIT binary patch literal 92644 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 EKU2t)Gynhq literal 0 HcmV?d00001 diff --git a/tests/upektc_img/capture.png b/tests/upektc_img/capture.png new file mode 100644 index 0000000000000000000000000000000000000000..7d32689e1d5476232eadb3b4a96485d720f4197a GIT binary patch literal 27307 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 Vx51IW(Sj)qb!Ba(8U@Sn{{gSQ&HexY literal 0 HcmV?d00001 diff --git a/tests/upektc_img/device b/tests/upektc_img/device new file mode 100644 index 0000000..4f804a0 --- /dev/null +++ b/tests/upektc_img/device @@ -0,0 +1,319 @@ +P: /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.3 +N: bus/usb/001/003=12010101000000087E14162002000102000109022700010100A0320904000003FF000000070581024000000705020240000007058303040014 +E: DEVNAME=/dev/bus/usb/001/003 +E: DEVTYPE=usb_device +E: DRIVER=usb +E: PRODUCT=147e/2016/2 +E: TYPE=0/0/0 +E: BUSNUM=001 +E: DEVNUM=003 +E: MAJOR=189 +E: MINOR=2 +E: SUBSYSTEM=usb +E: ID_VENDOR=UPEK +E: ID_VENDOR_ENC=UPEK +E: ID_VENDOR_ID=147e +E: ID_MODEL=Biometric_Coprocessor +E: ID_MODEL_ENC=Biometric\x20Coprocessor +E: ID_MODEL_ID=2016 +E: ID_REVISION=0002 +E: ID_SERIAL=UPEK_Biometric_Coprocessor +E: ID_BUS=usb +E: ID_USB_INTERFACES=:ff0000: +E: ID_VENDOR_FROM_DATABASE=Upek +E: ID_MODEL_FROM_DATABASE=Biometric Touchchip/Touchstrip Fingerprint Sensor +E: ID_PATH=pci-0000:00:1a.0-usb-0:1.3 +E: ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_3 +E: LIBFPRINT_DRIVER=Upek TouchChip Fingerprint Coprocessor +E: ID_FOR_SEAT=usb-pci-0000_00_1a_0-usb-0_1_3 +E: TAGS=:seat: +E: CURRENT_TAGS=:seat: +A: authorized=1\n +A: avoid_reset_quirk=0\n +A: bConfigurationValue=1\n +A: bDeviceClass=00\n +A: bDeviceProtocol=00\n +A: bDeviceSubClass=00\n +A: bMaxPacketSize0=8\n +A: bMaxPower=100mA\n +A: bNumConfigurations=1\n +A: bNumInterfaces= 1\n +A: bcdDevice=0002\n +A: bmAttributes=a0\n +A: busnum=1\n +A: configuration= +H: descriptors=12010101000000087E14162002000102000109022700010100A0320904000003FF000000070581024000000705020240000007058303040014 +A: dev=189:2\n +A: devnum=3\n +A: devpath=1.3\n +L: driver=../../../../../../bus/usb/drivers/usb +L: firmware_node=../../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2d/device:2e/device:2f/device:32 +A: idProduct=2016\n +A: idVendor=147e\n +A: ltm_capable=no\n +A: manufacturer=UPEK\n +A: maxchild=0\n +L: port=../1-1:1.0/1-1-port3 +A: power/active_duration=757220\n +A: power/async=enabled\n +A: power/autosuspend=2\n +A: power/autosuspend_delay_ms=2000\n +A: power/connected_duration=857556\n +A: power/control=auto\n +A: power/level=auto\n +A: power/persist=1\n +A: power/runtime_active_kids=0\n +A: power/runtime_active_time=762579\n +A: power/runtime_enabled=enabled\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=94791\n +A: power/runtime_usage=0\n +A: power/wakeup=disabled\n +A: power/wakeup_abort_count=\n +A: power/wakeup_active=\n +A: power/wakeup_active_count=\n +A: power/wakeup_count=\n +A: power/wakeup_expire_count=\n +A: power/wakeup_last_time_ms=\n +A: power/wakeup_max_time_ms=\n +A: power/wakeup_total_time_ms=\n +A: product=Biometric Coprocessor\n +A: quirks=0x0\n +A: removable=fixed\n +A: rx_lanes=1\n +A: speed=12\n +A: tx_lanes=1\n +A: urbnum=620\n +A: version= 1.01\n + +P: /devices/pci0000:00/0000:00:1a.0/usb1/1-1 +N: bus/usb/001/002=12010002090001408780200000000000000109021900010100E0000904000001090000000705810301000C +E: DEVNAME=/dev/bus/usb/001/002 +E: DEVTYPE=usb_device +E: DRIVER=usb +E: PRODUCT=8087/20/0 +E: TYPE=9/0/1 +E: BUSNUM=001 +E: DEVNUM=002 +E: MAJOR=189 +E: MINOR=1 +E: SUBSYSTEM=usb +E: ID_VENDOR=8087 +E: ID_VENDOR_ENC=8087 +E: ID_VENDOR_ID=8087 +E: ID_MODEL=0020 +E: ID_MODEL_ENC=0020 +E: ID_MODEL_ID=0020 +E: ID_REVISION=0000 +E: ID_SERIAL=8087_0020 +E: ID_BUS=usb +E: ID_USB_INTERFACES=:090000: +E: ID_VENDOR_FROM_DATABASE=Intel Corp. +E: ID_MODEL_FROM_DATABASE=Integrated Rate Matching Hub +E: ID_PATH=pci-0000:00:1a.0-usb-0:1 +E: ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1 +E: ID_FOR_SEAT=usb-pci-0000_00_1a_0-usb-0_1 +E: TAGS=:seat: +E: CURRENT_TAGS=:seat: +A: authorized=1\n +A: avoid_reset_quirk=0\n +A: bConfigurationValue=1\n +A: bDeviceClass=09\n +A: bDeviceProtocol=01\n +A: bDeviceSubClass=00\n +A: bMaxPacketSize0=64\n +A: bMaxPower=0mA\n +A: bNumConfigurations=1\n +A: bNumInterfaces= 1\n +A: bcdDevice=0000\n +A: bmAttributes=e0\n +A: busnum=1\n +A: configuration= +H: descriptors=12010002090001408780200000000000000109021900010100E0000904000001090000000705810301000C +A: dev=189:1\n +A: devnum=2\n +A: devpath=1\n +L: driver=../../../../../bus/usb/drivers/usb +L: firmware_node=../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2d/device:2e/device:2f +A: idProduct=0020\n +A: idVendor=8087\n +A: ltm_capable=no\n +A: maxchild=6\n +L: port=../1-0:1.0/usb1-port1 +A: power/active_duration=776368\n +A: power/async=enabled\n +A: power/autosuspend=0\n +A: power/autosuspend_delay_ms=0\n +A: power/connected_duration=858060\n +A: power/control=auto\n +A: power/level=auto\n +A: power/runtime_active_kids=3\n +A: power/runtime_active_time=779955\n +A: power/runtime_enabled=enabled\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=77820\n +A: power/runtime_usage=0\n +A: power/wakeup=disabled\n +A: power/wakeup_abort_count=\n +A: power/wakeup_active=\n +A: power/wakeup_active_count=\n +A: power/wakeup_count=\n +A: power/wakeup_expire_count=\n +A: power/wakeup_last_time_ms=\n +A: power/wakeup_max_time_ms=\n +A: power/wakeup_total_time_ms=\n +A: quirks=0x0\n +A: removable=fixed\n +A: rx_lanes=1\n +A: speed=480\n +A: tx_lanes=1\n +A: urbnum=2620\n +A: version= 2.00\n + +P: /devices/pci0000:00/0000:00:1a.0/usb1 +N: bus/usb/001/001=12010002090000406B1D020010050302010109021900010100E0000904000001090000000705810304000C +E: DEVNAME=/dev/bus/usb/001/001 +E: DEVTYPE=usb_device +E: DRIVER=usb +E: PRODUCT=1d6b/2/510 +E: TYPE=9/0/0 +E: BUSNUM=001 +E: DEVNUM=001 +E: MAJOR=189 +E: MINOR=0 +E: SUBSYSTEM=usb +E: ID_VENDOR=Linux_5.10.0-8-amd64_ehci_hcd +E: ID_VENDOR_ENC=Linux\x205.10.0-8-amd64\x20ehci_hcd +E: ID_VENDOR_ID=1d6b +E: ID_MODEL=EHCI_Host_Controller +E: ID_MODEL_ENC=EHCI\x20Host\x20Controller +E: ID_MODEL_ID=0002 +E: ID_REVISION=0510 +E: ID_SERIAL=Linux_5.10.0-8-amd64_ehci_hcd_EHCI_Host_Controller_0000:00:1a.0 +E: ID_SERIAL_SHORT=0000:00:1a.0 +E: ID_BUS=usb +E: ID_USB_INTERFACES=:090000: +E: ID_VENDOR_FROM_DATABASE=Linux Foundation +E: ID_AUTOSUSPEND=1 +E: ID_MODEL_FROM_DATABASE=2.0 root hub +E: ID_PATH=pci-0000:00:1a.0 +E: ID_PATH_TAG=pci-0000_00_1a_0 +E: ID_FOR_SEAT=usb-pci-0000_00_1a_0 +E: TAGS=:seat: +E: CURRENT_TAGS=:seat: +A: authorized=1\n +A: authorized_default=1\n +A: avoid_reset_quirk=0\n +A: bConfigurationValue=1\n +A: bDeviceClass=09\n +A: bDeviceProtocol=00\n +A: bDeviceSubClass=00\n +A: bMaxPacketSize0=64\n +A: bMaxPower=0mA\n +A: bNumConfigurations=1\n +A: bNumInterfaces= 1\n +A: bcdDevice=0510\n +A: bmAttributes=e0\n +A: busnum=1\n +A: configuration= +H: descriptors=12010002090000406B1D020010050302010109021900010100E0000904000001090000000705810304000C +A: dev=189:0\n +A: devnum=1\n +A: devpath=0\n +L: driver=../../../../bus/usb/drivers/usb +L: firmware_node=../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2d/device:2e +A: idProduct=0002\n +A: idVendor=1d6b\n +A: interface_authorized_default=1\n +A: ltm_capable=no\n +A: manufacturer=Linux 5.10.0-8-amd64 ehci_hcd\n +A: maxchild=3\n +A: power/active_duration=780512\n +A: power/async=enabled\n +A: power/autosuspend=0\n +A: power/autosuspend_delay_ms=0\n +A: power/connected_duration=858228\n +A: power/control=auto\n +A: power/level=auto\n +A: power/runtime_active_kids=1\n +A: power/runtime_active_time=780500\n +A: power/runtime_enabled=enabled\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=77697\n +A: power/runtime_usage=0\n +A: power/wakeup=disabled\n +A: power/wakeup_abort_count=\n +A: power/wakeup_active=\n +A: power/wakeup_active_count=\n +A: power/wakeup_count=\n +A: power/wakeup_expire_count=\n +A: power/wakeup_last_time_ms=\n +A: power/wakeup_max_time_ms=\n +A: power/wakeup_total_time_ms=\n +A: product=EHCI Host Controller\n +A: quirks=0x0\n +A: removable=unknown\n +A: rx_lanes=1\n +A: serial=0000:00:1a.0\n +A: speed=480\n +A: tx_lanes=1\n +A: urbnum=1071\n +A: version= 2.00\n + +P: /devices/pci0000:00/0000:00:1a.0 +E: DRIVER=ehci-pci +E: PCI_CLASS=C0320 +E: PCI_ID=8086:3B3C +E: PCI_SUBSYS_ID=17AA:2163 +E: PCI_SLOT_NAME=0000:00:1a.0 +E: MODALIAS=pci:v00008086d00003B3Csv000017AAsd00002163bc0Csc03i20 +E: SUBSYSTEM=pci +E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller +E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller +E: ID_PCI_INTERFACE_FROM_DATABASE=EHCI +E: ID_VENDOR_FROM_DATABASE=Intel Corporation +E: ID_MODEL_FROM_DATABASE=5 Series/3400 Series Chipset USB2 Enhanced Host Controller +A: ari_enabled=0\n +A: broken_parity_status=0\n +A: class=0x0c0320\n +A: companion= +H: config=86803C3B060190020620030C00000000008072F2000000000000000000000000000000000000000000000000AA1763210000000050000000000000000B040000000000000000000000000000000000000158C2C9000000000A98A020000000002020A7070000000001000001000008C00000DF3F0000000000000000000000000000800011890C13A000000000000000000000000000000013000603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AAFF00000000000000000000000000000000000000000004F340BB0000000088858000870F060828171B30 +A: consistent_dma_mask_bits=32\n +A: d3cold_allowed=1\n +A: device=0x3b3c\n +A: dma_mask_bits=32\n +L: driver=../../../bus/pci/drivers/ehci-pci +A: driver_override=(null)\n +A: enable=1\n +L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:2d +A: irq=23\n +A: local_cpulist=0-3\n +A: local_cpus=f\n +A: modalias=pci:v00008086d00003B3Csv000017AAsd00002163bc0Csc03i20\n +A: msi_bus=1\n +A: numa_node=-1\n +A: pools=poolinfo - 0.1\nehci_sitd 0 0 96 0\nehci_itd 0 0 192 0\nehci_qh 9 42 96 1\nehci_qtd 13 42 96 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\n +A: power/async=enabled\n +A: power/control=on\n +A: power/runtime_active_kids=1\n +A: power/runtime_active_time=859876\n +A: power/runtime_enabled=forbidden\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=0\n +A: power/runtime_usage=1\n +A: power/wakeup=enabled\n +A: power/wakeup_abort_count=0\n +A: power/wakeup_active=0\n +A: power/wakeup_active_count=0\n +A: power/wakeup_count=0\n +A: power/wakeup_expire_count=0\n +A: power/wakeup_last_time_ms=0\n +A: power/wakeup_max_time_ms=0\n +A: power/wakeup_total_time_ms=0\n +A: resource=0x00000000f2728000 0x00000000f27283ff 0x0000000000040200\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=0x06\n +A: subsystem_device=0x2163\n +A: subsystem_vendor=0x17aa\n +A: uframe_periodic_max=100\n +A: vendor=0x8086\n +