diff --git a/libfprint/drivers/egismoc/egis_etu905.c b/libfprint/drivers/egismoc/egis_etu905.c index 649360a6..7ae973fb 100644 --- a/libfprint/drivers/egismoc/egis_etu905.c +++ b/libfprint/drivers/egismoc/egis_etu905.c @@ -31,8 +31,10 @@ struct _FpiDeviceEgisEtu905 { FpDevice parent; FpiSsm *task_ssm; + FpiSsm *identify_cancel_ssm; GPtrArray *enrolled_ids; gint max_enroll_stages; + gboolean identify_started; /* TRUE after cmd_sensor_identify is sent */ }; G_DEFINE_TYPE (FpiDeviceEgisEtu905, fpi_device_egis_etu905, FP_TYPE_DEVICE); @@ -80,6 +82,11 @@ static void egis_etu905_exec_cmd_full (FpDevice *device, static void egis_etu905_cancel (FpDevice *device); +static void egis_etu905_cancel_cb (FpDevice *device, + guchar *buffer_in, + gsize length_in, + GError *error); + static void egis_etu905_finger_on_sensor_cb (FpiUsbTransfer *transfer, FpDevice *device, @@ -1324,22 +1331,86 @@ egis_etu905_identify_check_cb (FpDevice *device, fpi_ssm_next_state (self->task_ssm); } +static void egis_etu905_identify_cancel_run_state (FpiSsm *ssm, + FpDevice *device); + static void -egis_etu905_identify_send_cancel_result_cb (FpDevice *device, - guchar *buffer_in, - gsize length_in, - GError *error) +egis_etu905_identify_cancel_ssm_done (FpiSsm *ssm, + FpDevice *device, + GError *error) +{ + FpiDeviceEgisEtu905 *self = FPI_DEVICE_EGIS_ETU905 (device); + + self->identify_cancel_ssm = NULL; + + egis_etu905_cancel_cb (device, NULL, 0, error); +} + +static void +egis_etu905_identify_cancel_next_state_cb (FpDevice *device, + guchar *buffer_in, + gsize length_in, + GError *error) { FpiDeviceEgisEtu905 *self = FPI_DEVICE_EGIS_ETU905 (device); if (error) - { - fpi_ssm_mark_failed (self->task_ssm, error); - return; - } + fpi_ssm_mark_failed (self->identify_cancel_ssm, error); + else + fpi_ssm_next_state (self->identify_cancel_ssm); +} - /* Advance to complete state */ - fpi_ssm_next_state (self->task_ssm); +static void +egis_etu905_identify_cancel_run_state (FpiSsm *ssm, + FpDevice *device) +{ + FpiDeviceEgisEtu905 *self = FPI_DEVICE_EGIS_ETU905 (device); + + switch (fpi_ssm_get_cur_state (ssm)) + { + case CANCEL_SENSOR_RESET: + /* Reset sensor to ensure device is in a clean state. + * Use NULL cancellable to ensure this command reaches the device. */ + egis_etu905_exec_cmd_full (device, cmd_sensor_reset, + G_N_ELEMENTS (cmd_sensor_reset), + egis_etu905_identify_cancel_next_state_cb, + NULL); + break; + + case CANCEL_SEND_CANCEL: + /* Send cmd_identify_cancel to trigger firmware template update. + * Only send if identify was actually started (cmd_sensor_identify was sent). + * Use NULL cancellable to ensure this command reaches the device. */ + if (self->identify_started) + { + egis_etu905_exec_cmd_full (device, cmd_identify_cancel, + G_N_ELEMENTS (cmd_identify_cancel), + egis_etu905_identify_cancel_next_state_cb, + NULL); + } + else + { + fpi_ssm_next_state (ssm); + } + break; + + case CANCEL_SEND_CANCEL_RESULT: + /* Retrieve the cancel result after template update is triggered. + * Only send if identify was actually started. + * Use NULL cancellable to ensure this command reaches the device. */ + if (self->identify_started) + { + egis_etu905_exec_cmd_full (device, cmd_identify_cancel_result, + G_N_ELEMENTS (cmd_identify_cancel_result), + egis_etu905_identify_cancel_next_state_cb, + NULL); + } + else + { + fpi_ssm_next_state (ssm); + } + break; + } } static void @@ -1374,6 +1445,7 @@ egis_etu905_identify_run_state (FpiSsm *ssm, break; case IDENTIFY_SENSOR_IDENTIFY: + self->identify_started = TRUE; egis_etu905_exec_cmd (device, cmd_sensor_identify, G_N_ELEMENTS (cmd_sensor_identify), egis_etu905_task_ssm_next_state_cb); break; @@ -1393,16 +1465,10 @@ egis_etu905_identify_run_state (FpiSsm *ssm, egis_etu905_identify_check_cb); break; - case IDENTIFY_SEND_CANCEL_RESULT: - egis_etu905_exec_cmd (device, - cmd_identify_cancel_result, - G_N_ELEMENTS (cmd_identify_cancel_result), - egis_etu905_identify_send_cancel_result_cb); - break; - case IDENTIFY_COMPLETE_SENSOR_RESET: - egis_etu905_exec_cmd (device, cmd_sensor_reset, G_N_ELEMENTS (cmd_sensor_reset), - egis_etu905_task_ssm_next_state_cb); + egis_etu905_exec_cmd_full (device, cmd_sensor_reset, G_N_ELEMENTS (cmd_sensor_reset), + egis_etu905_task_ssm_next_state_cb, + NULL); break; /* @@ -1429,6 +1495,7 @@ egis_etu905_identify (FpDevice *device) FpiDeviceEgisEtu905 *self = FPI_DEVICE_EGIS_ETU905 (device); g_assert (self->task_ssm == NULL); + self->identify_started = FALSE; self->task_ssm = fpi_ssm_new (device, egis_etu905_identify_run_state, IDENTIFY_STATES); fpi_ssm_start (self->task_ssm, egis_etu905_task_ssm_done); } @@ -1712,11 +1779,14 @@ egis_etu905_cancel (FpDevice *device) } else if (action == FPI_DEVICE_ACTION_IDENTIFY) { - egis_etu905_exec_cmd_full (device, - cmd_identify_cancel, - G_N_ELEMENTS (cmd_identify_cancel), - egis_etu905_cancel_cb, - NULL); + FpiDeviceEgisEtu905 *self = FPI_DEVICE_EGIS_ETU905 (device); + + g_assert (self->identify_cancel_ssm == NULL); + + self->identify_cancel_ssm = fpi_ssm_new (device, + egis_etu905_identify_cancel_run_state, + CANCEL_STATES); + fpi_ssm_start (self->identify_cancel_ssm, egis_etu905_identify_cancel_ssm_done); } else { diff --git a/libfprint/drivers/egismoc/egis_etu905.h b/libfprint/drivers/egismoc/egis_etu905.h index c4403478..43dad367 100644 --- a/libfprint/drivers/egismoc/egis_etu905.h +++ b/libfprint/drivers/egismoc/egis_etu905.h @@ -141,7 +141,6 @@ typedef enum { IDENTIFY_WAIT_FINGER, IDENTIFY_SENSOR_CHECK, IDENTIFY_CHECK, - IDENTIFY_SEND_CANCEL_RESULT, IDENTIFY_COMPLETE_SENSOR_RESET, IDENTIFY_COMPLETE, IDENTIFY_STATES, @@ -180,3 +179,10 @@ typedef enum { DELETE_DELETE, DELETE_STATES, } DeleteStates; + +typedef enum { + CANCEL_SENSOR_RESET, + CANCEL_SEND_CANCEL, + CANCEL_SEND_CANCEL_RESULT, + CANCEL_STATES, +} CancelStates; diff --git a/tests/egis_etu905/custom.pcapng b/tests/egis_etu905/custom.pcapng index 730a7ad4..e6f00b3b 100644 Binary files a/tests/egis_etu905/custom.pcapng and b/tests/egis_etu905/custom.pcapng differ diff --git a/tests/egis_etu905/custom.py b/tests/egis_etu905/custom.py index 39f83b8d..22f0baa2 100644 --- a/tests/egis_etu905/custom.py +++ b/tests/egis_etu905/custom.py @@ -39,7 +39,8 @@ def identify_done(dev, res): identified = True identify_match, identify_print = dev.identify_finish(res) print("MATCH FOUND!" if identify_match else "NO MATCH FOUND") - assert identify_match.equal(identify_print) + if identify_match: + assert identify_match.equal(identify_print) # List print("--- LISTING ---") @@ -64,6 +65,28 @@ prints2 = len(stored) print(f"--- LIST DONE: Found {prints2} prints after enroll---") assert (prints2 - prints1) == 1 +# Verify +print("--- VERIFYING ---") +assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE +verify_res, verify_print = d.verify_sync(p) +assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE +print(f"--- VERIFY DONE: Result {verify_res} ---") + +# Identify +print("--- ASYNC IDENTIFYING ---") +identified = False +deserialized_prints = [] +for sp in stored: + deserialized_prints.append(FPrint.Print.deserialize(sp.serialize())) + assert deserialized_prints[-1].equal(p) + +d.identify(deserialized_prints, callback=identify_done) +del deserialized_prints + +while not identified: + ctx.iteration(True) +print("--- IDENTIFY DONE ---") + # Cancel test - start async identify and cancel it print("--- TESTING CANCELLATION ---") deserialized_prints = [] @@ -92,27 +115,11 @@ while not identify_cancelled: print(f"--- CANCELLATION TEST DONE, result: {cancel_result} ---") del deserialized_prints -# Verify -print("--- VERIFYING ---") -assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE -verify_res, verify_print = d.verify_sync(p) -assert d.get_finger_status() == FPrint.FingerStatusFlags.NONE -print(f"--- VERIFY DONE: Result {verify_res} ---") - -# Identify -print("--- ASYNC IDENTIFYING ---") -identified = False -deserialized_prints = [] -for p in stored: - deserialized_prints.append(FPrint.Print.deserialize(p.serialize())) - assert deserialized_prints[-1].equal(p) - -d.identify(deserialized_prints, callback=identify_done) -del deserialized_prints - -while not identified: - ctx.iteration(True) -print("--- IDENTIFY DONE ---") +# Close and reopen device to ensure clean state after cancellation +print("--- REOPENING DEVICE ---") +d.close_sync() +d.open_sync() +print("--- DEVICE REOPENED ---") # Delete print("--- DELETING ---") @@ -135,3 +142,4 @@ d.close_sync() del d del c + diff --git a/tests/egis_etu905/device b/tests/egis_etu905/device index 8cc1d7f2..71d7c2ec 100644 --- a/tests/egis_etu905/device +++ b/tests/egis_etu905/device @@ -1,27 +1,28 @@ -P: /devices/pci0000:00/0000:00:08.1/0000:05:00.4/usb3/3-3 -N: bus/usb/003/005=12010002FF0000407A1CAE0545530102030109022700010100A0320904000003FFFFFF00070581024000000705020240000007058303400001 +P: /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.1 +N: bus/usb/003/064=12010002FF0000407A1CAE0542990102030109022700010100A0320904000003FFFFFF00070581024000000705020240000007058303400001 E: BUSNUM=003 -E: DEVNAME=/dev/bus/usb/003/005 -E: DEVNUM=005 +E: CURRENT_TAGS=:snap_cups_ippeveprinter:snap_cups_cupsd: +E: DEVNAME=/dev/bus/usb/003/064 +E: DEVNUM=064 E: DEVTYPE=usb_device E: DRIVER=usb E: ID_BUS=usb E: ID_MODEL=ETU905Axx-E E: ID_MODEL_ENC=ETU905Axx-E E: ID_MODEL_ID=05ae -E: ID_PATH=pci-0000:05:00.4-usb-0:3 -E: ID_PATH_TAG=pci-0000_05_00_4-usb-0_3 -E: ID_PATH_WITH_USB_REVISION=pci-0000:05:00.4-usbv2-0:3 -E: ID_REVISION=5345 -E: ID_SERIAL=EGIS_ETU905Axx-E_0A8606PNA357 -E: ID_SERIAL_SHORT=0A8606PNA357 +E: ID_PATH=pci-0000:00:14.0-usb-0:2.1 +E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1 +E: ID_PATH_WITH_USB_REVISION=pci-0000:00:14.0-usbv2-0:2.1 +E: ID_REVISION=9942 +E: ID_SERIAL=EGIS_ETU905Axx-E_0A8615PNA357 +E: ID_SERIAL_SHORT=0A8615PNA357 E: ID_USB_INTERFACES=:ffffff: E: ID_USB_MODEL=ETU905Axx-E E: ID_USB_MODEL_ENC=ETU905Axx-E E: ID_USB_MODEL_ID=05ae -E: ID_USB_REVISION=5345 -E: ID_USB_SERIAL=EGIS_ETU905Axx-E_0A8606PNA357 -E: ID_USB_SERIAL_SHORT=0A8606PNA357 +E: ID_USB_REVISION=9942 +E: ID_USB_SERIAL=EGIS_ETU905Axx-E_0A8615PNA357 +E: ID_USB_SERIAL_SHORT=0A8615PNA357 E: ID_USB_VENDOR=EGIS E: ID_USB_VENDOR_ENC=EGIS E: ID_USB_VENDOR_ID=1c7a @@ -30,9 +31,10 @@ E: ID_VENDOR_ENC=EGIS E: ID_VENDOR_FROM_DATABASE=LighTuning Technology Inc. E: ID_VENDOR_ID=1c7a E: MAJOR=189 -E: MINOR=260 -E: PRODUCT=1c7a/5ae/5345 +E: MINOR=319 +E: PRODUCT=1c7a/5ae/9942 E: SUBSYSTEM=usb +E: TAGS=:snap_cups_ippeveprinter:snap_cups_cupsd: E: TYPE=255/0/0 A: authorized=1\n A: avoid_reset_quirk=0\n @@ -44,37 +46,31 @@ A: bMaxPacketSize0=64\n A: bMaxPower=100mA\n A: bNumConfigurations=1\n A: bNumInterfaces= 1\n -A: bcdDevice=5345\n +A: bcdDevice=9942\n A: bmAttributes=a0\n A: busnum=3\n A: configuration= -H: descriptors=12010002FF0000407A1CAE0545530102030109022700010100A0320904000003FFFFFF00070581024000000705020240000007058303400001 -A: dev=189:260\n -A: devnum=5\n -A: devpath=3\n +H: descriptors=12010002FF0000407A1CAE0542990102030109022700010100A0320904000003FFFFFF00070581024000000705020240000007058303400001 +A: dev=189:319\n +A: devnum=64\n +A: devpath=2.1\n L: driver=../../../../../../bus/usb/drivers/usb -L: firmware_node=../../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0c/device:1b/device:1c/device:1f A: idProduct=05ae\n A: idVendor=1c7a\n A: ltm_capable=no\n A: manufacturer=EGIS\n A: maxchild=0\n -A: physical_location/dock=no\n -A: physical_location/horizontal_position=left\n -A: physical_location/lid=no\n -A: physical_location/panel=top\n -A: physical_location/vertical_position=upper\n -L: port=../3-0:1.0/usb3-port3 -A: power/active_duration=3828402\n +L: port=../3-2:1.0/3-2-port1 +A: power/active_duration=68970\n A: power/async=enabled\n A: power/autosuspend=2\n A: power/autosuspend_delay_ms=2000\n -A: power/connected_duration=3828402\n +A: power/connected_duration=68970\n A: power/control=on\n A: power/level=on\n A: power/persist=1\n A: power/runtime_active_kids=0\n -A: power/runtime_active_time=3828158\n +A: power/runtime_active_time=68807\n A: power/runtime_enabled=forbidden\n A: power/runtime_status=active\n A: power/runtime_suspended_time=0\n @@ -90,41 +86,142 @@ A: power/wakeup_max_time_ms=\n A: power/wakeup_total_time_ms=\n A: product=ETU905Axx-E\n A: quirks=0x0\n -A: removable=fixed\n +A: removable=removable\n A: rx_lanes=1\n -A: serial=0A8606PNA357\n +A: serial=0A8615PNA357\n A: speed=12\n A: tx_lanes=1\n -A: urbnum=1021\n +A: urbnum=21\n A: version= 2.00\n -P: /devices/pci0000:00/0000:00:08.1/0000:05:00.4/usb3 +P: /devices/pci0000:00/0000:00:14.0/usb3/3-2 +N: bus/usb/003/012=1201100209000240DA0B115430610102000109022900010100E0000904000001090001000705810301000C0904000101090002000705810301000C +E: BUSNUM=003 +E: CURRENT_TAGS=:snap_cups_cupsd:seat:snap_cups_ippeveprinter: +E: DEVNAME=/dev/bus/usb/003/012 +E: DEVNUM=012 +E: DEVTYPE=usb_device +E: DRIVER=usb +E: ID_BUS=usb +E: ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_2 +E: ID_MODEL=4-Port_USB_2.0_Hub +E: ID_MODEL_ENC=4-Port\x20USB\x202.0\x20Hub +E: ID_MODEL_FROM_DATABASE=RTS5411 Hub +E: ID_MODEL_ID=5411 +E: ID_PATH=pci-0000:00:14.0-usb-0:2 +E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2 +E: ID_PATH_WITH_USB_REVISION=pci-0000:00:14.0-usbv2-0:2 +E: ID_REVISION=6130 +E: ID_SERIAL=Generic_4-Port_USB_2.0_Hub +E: ID_USB_INTERFACES=:090001:090002: +E: ID_USB_MODEL=4-Port_USB_2.0_Hub +E: ID_USB_MODEL_ENC=4-Port\x20USB\x202.0\x20Hub +E: ID_USB_MODEL_ID=5411 +E: ID_USB_REVISION=6130 +E: ID_USB_SERIAL=Generic_4-Port_USB_2.0_Hub +E: ID_USB_VENDOR=Generic +E: ID_USB_VENDOR_ENC=Generic +E: ID_USB_VENDOR_ID=0bda +E: ID_VENDOR=Generic +E: ID_VENDOR_ENC=Generic +E: ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Corp. +E: ID_VENDOR_ID=0bda +E: MAJOR=189 +E: MINOR=267 +E: PRODUCT=bda/5411/6130 +E: SUBSYSTEM=usb +E: TAGS=:snap_cups_cupsd:seat:snap_cups_ippeveprinter: +E: TYPE=9/0/2 +A: authorized=1\n +A: avoid_reset_quirk=0\n +A: bConfigurationValue=1\n +A: bDeviceClass=09\n +A: bDeviceProtocol=02\n +A: bDeviceSubClass=00\n +A: bMaxPacketSize0=64\n +A: bMaxPower=0mA\n +A: bNumConfigurations=1\n +A: bNumInterfaces= 1\n +A: bcdDevice=6130\n +A: bmAttributes=e0\n +H: bos_descriptors=050F2A00030710021EF400000A1003000E00010AFF0314100400F1ADF5EC1150054091EC71CA7101B6A2 +A: busnum=3\n +A: configuration= +H: descriptors=1201100209000240DA0B115430610102000109022900010100E0000904000001090001000705810301000C0904000101090002000705810301000C +A: dev=189:267\n +A: devnum=12\n +A: devpath=2\n +L: driver=../../../../../bus/usb/drivers/usb +L: firmware_node=../../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:11/device:12/device:14 +A: idProduct=5411\n +A: idVendor=0bda\n +A: ltm_capable=no\n +A: manufacturer=Generic\n +A: maxchild=4\n +A: physical_location/dock=no\n +A: physical_location/horizontal_position=left\n +A: physical_location/lid=no\n +A: physical_location/panel=unknown\n +A: physical_location/vertical_position=center\n +L: port=../3-0:1.0/usb3-port2 +A: power/active_duration=15037612\n +A: power/async=enabled\n +A: power/autosuspend=0\n +A: power/autosuspend_delay_ms=0\n +A: power/connected_duration=15944019\n +A: power/control=auto\n +A: power/level=auto\n +A: power/runtime_active_kids=1\n +A: power/runtime_active_time=15037501\n +A: power/runtime_enabled=enabled\n +A: power/runtime_status=active\n +A: power/runtime_suspended_time=906274\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=4-Port USB 2.0 Hub\n +A: quirks=0x0\n +A: removable=removable\n +A: rx_lanes=1\n +A: speed=480\n +A: tx_lanes=1\n +A: urbnum=2116\n +A: version= 2.10\n + +P: /devices/pci0000:00/0000:00:14.0/usb3 N: bus/usb/003/001=12010002090001406B1D020017060302010109021900010100E0000904000001090000000705810304000C E: BUSNUM=003 -E: CURRENT_TAGS=:seat: +E: CURRENT_TAGS=:snap_cups_cupsd:seat:snap_cups_ippeveprinter: E: DEVNAME=/dev/bus/usb/003/001 E: DEVNUM=001 E: DEVTYPE=usb_device E: DRIVER=usb E: ID_AUTOSUSPEND=1 E: ID_BUS=usb -E: ID_FOR_SEAT=usb-pci-0000_05_00_4 +E: ID_FOR_SEAT=usb-pci-0000_00_14_0 E: ID_MODEL=xHCI_Host_Controller E: ID_MODEL_ENC=xHCI\x20Host\x20Controller E: ID_MODEL_FROM_DATABASE=2.0 root hub E: ID_MODEL_ID=0002 -E: ID_PATH=pci-0000:05:00.4 -E: ID_PATH_TAG=pci-0000_05_00_4 +E: ID_PATH=pci-0000:00:14.0 +E: ID_PATH_TAG=pci-0000_00_14_0 E: ID_REVISION=0617 -E: ID_SERIAL=Linux_6.17.0-35-generic_xhci-hcd_xHCI_Host_Controller_0000:05:00.4 -E: ID_SERIAL_SHORT=0000:05:00.4 +E: ID_SERIAL=Linux_6.17.0-35-generic_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 +E: ID_SERIAL_SHORT=0000:00:14.0 E: ID_USB_INTERFACES=:090000: E: ID_USB_MODEL=xHCI_Host_Controller E: ID_USB_MODEL_ENC=xHCI\x20Host\x20Controller E: ID_USB_MODEL_ID=0002 E: ID_USB_REVISION=0617 -E: ID_USB_SERIAL=Linux_6.17.0-35-generic_xhci-hcd_xHCI_Host_Controller_0000:05:00.4 -E: ID_USB_SERIAL_SHORT=0000:05:00.4 +E: ID_USB_SERIAL=Linux_6.17.0-35-generic_xhci-hcd_xHCI_Host_Controller_0000:00:14.0 +E: ID_USB_SERIAL_SHORT=0000:00:14.0 E: ID_USB_VENDOR=Linux_6.17.0-35-generic_xhci-hcd E: ID_USB_VENDOR_ENC=Linux\x206.17.0-35-generic\x20xhci-hcd E: ID_USB_VENDOR_ID=1d6b @@ -136,7 +233,7 @@ E: MAJOR=189 E: MINOR=256 E: PRODUCT=1d6b/2/617 E: SUBSYSTEM=usb -E: TAGS=:seat: +E: TAGS=:snap_cups_cupsd:seat:snap_cups_ippeveprinter: E: TYPE=9/0/1 A: authorized=1\n A: authorized_default=1\n @@ -157,26 +254,26 @@ H: descriptors=12010002090001406B1D020017060302010109021900010100E00009040000010 A: dev=189:256\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:0c/device:1b/device:1c +L: driver=../../../../bus/usb/drivers/usb +L: firmware_node=../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:11/device:12 A: idProduct=0002\n A: idVendor=1d6b\n A: interface_authorized_default=1\n A: ltm_capable=no\n A: manufacturer=Linux 6.17.0-35-generic xhci-hcd\n -A: maxchild=4\n -A: power/active_duration=40424267\n +A: maxchild=12\n +A: power/active_duration=20106721\n A: power/async=enabled\n A: power/autosuspend=0\n A: power/autosuspend_delay_ms=0\n -A: power/connected_duration=40424455\n +A: power/connected_duration=20167456\n A: power/control=auto\n A: power/level=auto\n -A: power/runtime_active_kids=1\n -A: power/runtime_active_time=40424257\n +A: power/runtime_active_kids=3\n +A: power/runtime_active_time=20108025\n A: power/runtime_enabled=enabled\n A: power/runtime_status=active\n -A: power/runtime_suspended_time=50\n +A: power/runtime_suspended_time=58290\n A: power/runtime_usage=0\n A: power/wakeup=disabled\n A: power/wakeup_abort_count=\n @@ -191,34 +288,32 @@ A: product=xHCI Host Controller\n A: quirks=0x0\n A: removable=unknown\n A: rx_lanes=1\n -A: serial=0000:05:00.4\n +A: serial=0000:00:14.0\n A: speed=480\n A: tx_lanes=1\n -A: urbnum=421\n +A: urbnum=1083\n A: version= 2.00\n -P: /devices/pci0000:00/0000:00:08.1/0000:05:00.4 +P: /devices/pci0000:00/0000:00:14.0 E: DRIVER=xhci_hcd -E: ID_MODEL_FROM_DATABASE=Renoir/Cezanne USB 3.1 -E: ID_PATH=pci-0000:05:00.4 -E: ID_PATH_TAG=pci-0000_05_00_4 +E: ID_MODEL_FROM_DATABASE=Meteor Lake-P USB 3.2 Gen 2x1 xHCI Host Controller +E: ID_PATH=pci-0000:00:14.0 +E: ID_PATH_TAG=pci-0000_00_14_0 E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller -E: ID_VENDOR_FROM_DATABASE=Advanced Micro Devices, Inc. [AMD] -E: MODALIAS=pci:v00001022d00001639sv000017AAsd0000382Fbc0Csc03i30 +E: ID_VENDOR_FROM_DATABASE=Intel Corporation +E: MODALIAS=pci:v00008086d00007E7Dsv00001028sd00000CB2bc0Csc03i30 E: PCI_CLASS=C0330 -E: PCI_ID=1022:1639 -E: PCI_SLOT_NAME=0000:05:00.4 -E: PCI_SUBSYS_ID=17AA:382F +E: PCI_ID=8086:7E7D +E: PCI_SLOT_NAME=0000:00:14.0 +E: PCI_SUBSYS_ID=1028:0CB2 E: SUBSYSTEM=pci A: ari_enabled=0\n A: broken_parity_status=0\n A: class=0x0c0330\n -H: config=22103916070410000030030C10008000040040D0000000000000000000000000000000000000000000000000AA172F38000000004800000000000000FF010000000000000000000009500800AA172F38016403C80000000000000000000000003120000010A00200A18F000010290000030D400040000311000000000000000000000000000000001F007100000000001E00800100000100000000000000000005C08600000000000000000000000000000000000000000000000000000000001100078000E00F0000F00F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000B00012A010001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000D000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +H: config=86807D7E060490022030030C1000800004002A195000000000000000000000000000000000000000000000002810B20C000000007000000000000000FF010000FD0134C08FC2FF8300000000000000003F6DDE0F000000000000000000000000326000000000000000000000000000000180C3C10800000000000000000000000590B7001804E0FE000000000000000009B014F01000400100000000C10A080000080E00001800008F50020000030000090000018680C00009001014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F200012000000 A: consistent_dma_mask_bits=64\n -A: current_link_speed=8.0 GT/s PCIe\n -A: current_link_width=16\n A: d3cold_allowed=1\n A: dbc=disabled\n A: dbc_bInterfaceProtocol=01\n @@ -226,123 +321,50 @@ A: dbc_bcdDevice=0010\n A: dbc_idProduct=0010\n A: dbc_idVendor=1d6b\n A: dbc_poll_interval_ms=64\n -A: device=0x1639\n +A: device=0x7e7d\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: enable=1\n -L: firmware_node=../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0c/device:1b -L: iommu=../../0000:00:00.2/iommu/ivhd0 -L: iommu_group=../../../../kernel/iommu_groups/19 -A: irq=44\n -A: link/l0s_aspm=0\n -A: link/l1_aspm=0\n -A: local_cpulist=0-11\n -A: local_cpus=fff\n -A: max_link_speed=8.0 GT/s PCIe\n -A: max_link_width=16\n -A: modalias=pci:v00001022d00001639sv000017AAsd0000382Fbc0Csc03i30\n +L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:11 +L: iommu=../../virtual/iommu/dmar1 +L: iommu_group=../../../kernel/iommu_groups/11 +A: irq=133\n +A: local_cpulist=0-13\n +A: local_cpus=3fff\n +A: modalias=pci:v00008086d00007E7Dsv00001028sd00000CB2bc0Csc03i30\n A: msi_bus=1\n -A: msi_irqs/45=msix\n -A: msi_irqs/46=msix\n -A: msi_irqs/47=msix\n -A: msi_irqs/48=msix\n -A: msi_irqs/49=msix\n -A: msi_irqs/50=msix\n -A: msi_irqs/51=msix\n -A: msi_irqs/52=msix\n +A: msi_irqs/133=msi\n +A: msi_irqs/134=msi\n +A: msi_irqs/135=msi\n +A: msi_irqs/136=msi\n +A: msi_irqs/137=msi\n +A: msi_irqs/138=msi\n +A: msi_irqs/139=msi\n +A: msi_irqs/140=msi\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 256 port bw ctx arrays 0 0 256 0\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 4 5 2112 5\nxHCI ring segments 23 23 4096 23\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: 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 256 port bw ctx arrays 0 0 256 0\nxHCI 1KB stream ctx arrays 0 0 1024 0\nxHCI 256 byte stream ctx arrays 0 0 256 0\nxHCI input/output contexts 22 23 2112 23\nxHCI ring segments 75 75 4096 75\nbuffer-2048 0 0 2048 0\nbuffer-512 3 8 512 1\nbuffer-128 18 32 128 1\nbuffer-32 0 0 32 0\n A: power/async=enabled\n -A: power/control=on\n +A: power/control=auto\n A: power/runtime_active_kids=1\n -A: power/runtime_active_time=40424587\n -A: power/runtime_enabled=forbidden\n +A: power/runtime_active_time=20108444\n +A: power/runtime_enabled=enabled\n A: power/runtime_status=active\n -A: power/runtime_suspended_time=0\n -A: power/runtime_usage=1\n +A: power/runtime_suspended_time=58214\n +A: power/runtime_usage=0\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_active_count=1\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: power/wakeup_expire_count=1\n +A: power/wakeup_last_time_ms=4189999\n +A: power/wakeup_max_time_ms=106\n +A: power/wakeup_total_time_ms=106\n A: power_state=D0\n -A: reset_method=pm\n -A: resource=0x00000000d0400000 0x00000000d04fffff 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=0x00\n -A: subsystem_device=0x382f\n -A: subsystem_vendor=0x17aa\n -A: vendor=0x1022\n - -P: /devices/pci0000:00/0000:00:08.1 -E: DRIVER=pcieport -E: ID_MODEL_FROM_DATABASE=Renoir Internal PCIe GPP Bridge to Bus -E: ID_PATH=pci-0000:00:08.1 -E: ID_PATH_TAG=pci-0000_00_08_1 -E: ID_PCI_CLASS_FROM_DATABASE=Bridge -E: ID_PCI_INTERFACE_FROM_DATABASE=Normal decode -E: ID_PCI_SUBCLASS_FROM_DATABASE=PCI bridge -E: ID_VENDOR_FROM_DATABASE=Advanced Micro Devices, Inc. [AMD] -E: MODALIAS=pci:v00001022d00001635sv00001022sd00001635bc06sc04i00 -E: PCI_CLASS=60400 -E: PCI_ID=1022:1635 -E: PCI_SLOT_NAME=0000:00:08.1 -E: PCI_SUBSYS_ID=1022:1635 -E: SUBSYSTEM=pci -A: ari_enabled=0\n -A: broken_parity_status=0\n -A: class=0x060400\n -H: config=221035160704100000000406100081000000000000000000000505001111000030D060D001E011F0FC000000FC000000000000005000000000000000FF01020000000000000000000000000000000000015803C80000000010A042002280000010290000030D7000400C03310000000000004000180001000000000000003100000000001E00800143001F00000000000000000000000000000000000000000005C081000000E0FE0000000000000000000000000000000000000000000000000D00000022103516000000000000000000000000000000000000000000000000000000007CA006000000000000000000000000000000000000000000000000000B000127010001010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001900012A00000000000000007F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F000000000D0001405F001D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000250001410100008001000080000000002600014400000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2700010000000000389C0000389C0000389C0000389C0000389C0000389C0000389C0000389C0000389C0000389C0000389C0000389C0000389C0000389C0000389C0000389C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -A: consistent_dma_mask_bits=32\n -A: current_link_speed=8.0 GT/s PCIe\n -A: current_link_width=16\n -A: d3cold_allowed=1\n -A: device=0x1635\n -A: dma_mask_bits=32\n -L: driver=../../../bus/pci/drivers/pcieport -A: driver_override=(null)\n -A: enable=2\n -L: firmware_node=../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0c -L: iommu=../0000:00:00.2/iommu/ivhd0 -L: iommu_group=../../../kernel/iommu_groups/7 -A: irq=33\n -A: local_cpulist=0-11\n -A: local_cpus=fff\n -A: max_link_speed=8.0 GT/s PCIe\n -A: max_link_width=16\n -A: modalias=pci:v00001022d00001635sv00001022sd00001635bc06sc04i00\n -A: msi_bus=1\n -A: msi_irqs/33=msi\n -A: numa_node=-1\n -A: power/async=enabled\n -A: power/autosuspend_delay_ms=100\n -A: power/control=auto\n -A: power/runtime_active_kids=5\n -A: power/runtime_active_time=40424606\n -A: power/runtime_enabled=enabled\n -A: power/runtime_status=active\n -A: power/runtime_suspended_time=0\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: power_state=D0\n -A: reset_method=pm\n -A: resource=0x0000000000000000 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\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n0x0000000000001000 0x0000000000001fff 0x0000000000000101\n0x00000000d0300000 0x00000000d06fffff 0x0000000000000200\n0x000000fce0000000 0x000000fcf01fffff 0x0000000000102201\n0x0000000000000000 0x0000000000000000 0x0000000000000000\n -A: revision=0x00\n -A: secondary_bus_number=5\n -A: subordinate_bus_number=5\n -A: subsystem_device=0x1635\n -A: subsystem_vendor=0x1022\n -A: vendor=0x1022\n +A: resource=0x00000050192a0000 0x00000050192affff 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=0x20\n +A: subsystem_device=0x0cb2\n +A: subsystem_vendor=0x1028\n +A: vendor=0x8086\n