Linux USB
 help / color / mirror / Atom feed
* Re: [PATCH net] net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()
From: Andrew Lunn @ 2026-06-22  8:09 UTC (permalink / raw)
  To: Maoyi Xie
  Cc: Oliver Neukum, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, linux-usb, netdev, linux-kernel,
	stable
In-Reply-To: <178211531778.2216480.12637613349790980750@maoyixie.com>

On Mon, Jun 22, 2026 at 04:01:57PM +0800, Maoyi Xie wrote:
> kalmia_rx_fixup() computes usb_packet_length = skb->len - (2 *
> KALMIA_HEADER_LENGTH) as a u16, guarded only by a pre-loop check that
> skb->len is at least KALMIA_HEADER_LENGTH, which is 6. A device can
> deliver a short bulk-IN frame with skb->len in the 6 to 11 range, or
> leave a short trailing remainder on a later loop iteration. Either case
> underflows usb_packet_length to about 65530.
> 
> That bypasses the usb_packet_length < ether_packet_length truncation path.
> The device-supplied ether_packet_length, a le16 up to 65535 read from
> header_start[2], then drives a memcmp() and the following skb_trim() and
> skb_pull() past the end of the rx buffer. The rx buffer is hard_mtu * 10,
> which is 14000 bytes. That is an out of bounds read.
> 
> Require both the start and end framing headers to be present before
> subtracting them, on every loop iteration.
> 
> Fixes: d40261236e8e ("net/usb: Add Samsung Kalmia driver for Samsung GT-B3730")
> Cc: stable@vger.kernel.org
> Signed-off-by: Maoyi Xie <maoyixie.tju@gmail.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

^ permalink raw reply

* Re: [PATCH 0/2] tracing: Move trace_printk.h out of kernel.h
From: Christophe Leroy (CS GROUP) @ 2026-06-22  8:05 UTC (permalink / raw)
  To: Steven Rostedt, linux-kernel, linux-trace-kernel
  Cc: Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Andrew Morton,
	Linus Torvalds, Sebastian Andrzej Siewior, John Ogness,
	Thomas Gleixner, Peter Zijlstra, Julia Lawall, Yury Norov,
	linux-doc, linux-kbuild, linuxppc-dev, dri-devel, linux-stm32,
	linux-arm-kernel, linux-rdma, linux-usb, linux-ext4, linux-nfs,
	kvm, intel-gfx
In-Reply-To: <20260621093430.264983361@kernel.org>



Le 21/06/2026 à 11:34, Steven Rostedt a écrit :
> There's been complaints about trace_printk() being defined in kernel.h as it
> can increase the compilation time. As it is only used by some developers for
> debugging purposes, it should not be in kernel.h causing lots of wasted CPU
> cycles for those that do not ever care about it.

Do we have a measurement of the increased compilation time ?

Christophe

> 
> Instead, add a CONFIG_TRACE_PRINTK_DEBUGGING option that developers that do
> use it can set and not have to always remember to add #include <linux/trace_printk.h>
> to the files they add trace_printk() while debugging. It also means that
> those that do not have that config set will not have to worry about wasted
> CPU cycles as it is only include in the CFLAGS when the option is set, and
> its completely ignored otherwise.
> 
> Steven Rostedt (2):
>        tracing: Move non-trace_printk prototypes back to kernel.h
>        tracing: Add CONFIG_TRACE_PRINTK_DEBUGGING to clean up kernel.h
> 
> ----
>   .../driver_development_debugging_guide.rst         |  2 +-
>   Makefile                                           |  5 +++++
>   arch/powerpc/kvm/book3s_xics.c                     |  1 +
>   drivers/gpu/drm/i915/gt/intel_gtt.h                |  1 +
>   drivers/gpu/drm/i915/i915_gem.h                    |  1 +
>   drivers/hwtracing/stm/dummy_stm.c                  |  4 ++++
>   drivers/infiniband/hw/hfi1/trace_dbg.h             |  1 +
>   drivers/usb/early/xhci-dbc.c                       |  1 +
>   fs/ext4/inline.c                                   |  1 +
>   include/linux/kernel.h                             | 19 ++++++++++++++++++-
>   include/linux/sunrpc/debug.h                       |  1 +
>   include/linux/trace_printk.h                       | 22 +++-------------------
>   kernel/trace/Kconfig                               | 10 ++++++++++
>   kernel/trace/ring_buffer_benchmark.c               |  1 +
>   kernel/trace/trace.h                               |  1 +
>   samples/fprobe/fprobe_example.c                    |  1 +
>   samples/ftrace/ftrace-direct-modify.c              |  1 +
>   samples/ftrace/ftrace-direct-multi-modify.c        |  1 +
>   samples/ftrace/ftrace-direct-multi.c               |  2 +-
>   samples/ftrace/ftrace-direct-too.c                 |  2 +-
>   samples/ftrace/ftrace-direct.c                     |  2 +-
>   21 files changed, 56 insertions(+), 24 deletions(-)
> 


^ permalink raw reply

* [PATCH net] net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()
From: Maoyi Xie @ 2026-06-22  8:01 UTC (permalink / raw)
  To: Oliver Neukum
  Cc: Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, linux-usb, netdev, linux-kernel, stable

kalmia_rx_fixup() computes usb_packet_length = skb->len - (2 *
KALMIA_HEADER_LENGTH) as a u16, guarded only by a pre-loop check that
skb->len is at least KALMIA_HEADER_LENGTH, which is 6. A device can
deliver a short bulk-IN frame with skb->len in the 6 to 11 range, or
leave a short trailing remainder on a later loop iteration. Either case
underflows usb_packet_length to about 65530.

That bypasses the usb_packet_length < ether_packet_length truncation path.
The device-supplied ether_packet_length, a le16 up to 65535 read from
header_start[2], then drives a memcmp() and the following skb_trim() and
skb_pull() past the end of the rx buffer. The rx buffer is hard_mtu * 10,
which is 14000 bytes. That is an out of bounds read.

Require both the start and end framing headers to be present before
subtracting them, on every loop iteration.

Fixes: d40261236e8e ("net/usb: Add Samsung Kalmia driver for Samsung GT-B3730")
Cc: stable@vger.kernel.org
Signed-off-by: Maoyi Xie <maoyixie.tju@gmail.com>
---
I asked about this on linux-usb on 2026-06-15 and got no reply, so I
am sending the fix.

 drivers/net/usb/kalmia.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/usb/kalmia.c b/drivers/net/usb/kalmia.c
index ee9c48f7f68f..0dd0a30c3db4 100644
--- a/drivers/net/usb/kalmia.c
+++ b/drivers/net/usb/kalmia.c
@@ -276,6 +276,14 @@ kalmia_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
 				"Received header: %6phC. Package length: %i\n",
 				header_start, skb->len - KALMIA_HEADER_LENGTH);
 
+		/* both framing headers must be present before we subtract
+		 * them, otherwise usb_packet_length underflows and the
+		 * device-supplied ether_packet_length drives an out of bounds
+		 * access below
+		 */
+		if (skb->len < 2 * KALMIA_HEADER_LENGTH)
+			return 0;
+
 		/* subtract start header and end header */
 		usb_packet_length = skb->len - (2 * KALMIA_HEADER_LENGTH);
 		ether_packet_length = get_unaligned_le16(&header_start[2]);
-- 
2.34.1


^ permalink raw reply related

* Re: [PATCH v2] usb: misc: usbio: fix disconnect UAF in client teardown
From: Sakari Ailus @ 2026-06-22  7:42 UTC (permalink / raw)
  To: Cen Zhang
  Cc: Israel Cepeda, Hans de Goede, Greg Kroah-Hartman, linux-usb,
	linux-kernel, baijiaju1990
In-Reply-To: <20260618124029.3704089-1-zzzccc427@gmail.com>

Hi Cen,

Thanks for the patch.

On Thu, Jun 18, 2026 at 08:40:29PM +0800, Cen Zhang wrote:
> usbio_disconnect() walks usbio->cli_list in reverse and uninitializes each
> auxiliary device. auxiliary_device_uninit() drops the device reference, and
> for an unbound child that can run usbio_auxdev_release() and free the
> containing struct usbio_client.
> 
> list_for_each_entry_reverse() advances after the loop body by reading
> client->link.prev. If the current client is freed by
> auxiliary_device_uninit(), the iterator dereferences freed memory.
> 
> Use list_for_each_entry_safe_reverse() so the previous client is
> cached before the body can drop the final reference. This preserves
> reverse teardown order while keeping the next iterator cursor independent
> of the current client's lifetime.
> 
> Validation reproduced this kernel report:
> BUG: KASAN: slab-use-after-free in usbio_disconnect+0x12e/0x150
> 
> Call Trace:
>  <TASK>
>  dump_stack_lvl+0x66/0xa0
>  print_report+0xce/0x630
>  ? usbio_disconnect+0x12e/0x150
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? __virt_addr_valid+0x188/0x320
>  ? usbio_disconnect+0x12e/0x150
>  kasan_report+0xe0/0x110
>  ? usbio_disconnect+0x12e/0x150
>  usbio_disconnect+0x12e/0x150
>  usb_unbind_interface+0xf3/0x400
>  really_probe+0x316/0x660
>  __driver_probe_device+0x106/0x240
>  driver_probe_device+0x4a/0x110
>  __device_attach_driver+0xf1/0x1a0
>  ? __pfx___device_attach_driver+0x10/0x10
>  bus_for_each_drv+0xf9/0x160
>  ? __pfx_bus_for_each_drv+0x10/0x10
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? trace_hardirqs_on+0x18/0x130
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? _raw_spin_unlock_irqrestore+0x44/0x60
>  __device_attach+0x133/0x2a0
>  ? __pfx___device_attach+0x10/0x10
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? do_raw_spin_unlock+0x9a/0x100
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  device_initial_probe+0x55/0x70
>  bus_probe_device+0x4a/0xd0
>  device_add+0x9b9/0xc10
>  ? __pfx_device_add+0x10/0x10
>  ? _raw_spin_unlock_irqrestore+0x44/0x60
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? lockdep_hardirqs_on_prepare+0xea/0x1a0
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? usb_enable_lpm+0x3c/0x260
>  usb_set_configuration+0xb64/0xf20
>  usb_generic_driver_probe+0x5f/0x90
>  usb_probe_device+0x71/0x1b0
>  really_probe+0x46b/0x660
>  __driver_probe_device+0x106/0x240
>  driver_probe_device+0x4a/0x110
>  __device_attach_driver+0xf1/0x1a0
>  ? __pfx___device_attach_driver+0x10/0x10
>  bus_for_each_drv+0xf9/0x160
>  ? __pfx_bus_for_each_drv+0x10/0x10
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? trace_hardirqs_on+0x18/0x130
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? _raw_spin_unlock_irqrestore+0x44/0x60
>  __device_attach+0x133/0x2a0
>  ? __pfx___device_attach+0x10/0x10
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? do_raw_spin_unlock+0x9a/0x100
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  device_initial_probe+0x55/0x70
>  bus_probe_device+0x4a/0xd0
>  device_add+0x9b9/0xc10
>  ? __pfx_device_add+0x10/0x10
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? add_device_randomness+0xb7/0xf0
>  usb_new_device+0x492/0x870
>  hub_event+0x1b10/0x29c0
>  ? __pfx_hub_event+0x10/0x10
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? lock_acquire+0x187/0x300
>  ? process_one_work+0x475/0xb90
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? lock_release+0xc8/0x290
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  process_one_work+0x4d7/0xb90
>  ? __pfx_process_one_work+0x10/0x10
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? __list_add_valid_or_report+0x37/0xf0
>  ? __pfx_hub_event+0x10/0x10
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  worker_thread+0x2d8/0x570
>  ? __pfx_worker_thread+0x10/0x10
>  kthread+0x1ad/0x1f0
>  ? __pfx_kthread+0x10/0x10
>  ret_from_fork+0x3c9/0x540
>  ? __pfx_ret_from_fork+0x10/0x10
>  ? srso_alias_return_thunk+0x5/0xfbef5
>  ? __switch_to+0x2e9/0x730
>  ? __pfx_kthread+0x10/0x10
>  ret_from_fork_asm+0x1a/0x30
>  </TASK>
> 
> Fixes: 121a0f839dbb ("usb: misc: Add Intel USBIO bridge driver")
> Assisted-by: Codex:gpt-5.5
> Signed-off-by: Cen Zhang <zzzccc427@gmail.com>

Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>

-- 
Kind regards,

Sakari Ailus

^ permalink raw reply

* [PATCH 6/6] USB: serial: ftdi_sio: pace low_latency ports with low_latency_defer_ns
From: Chinna Mopurigari Naveen Kumar Reddy @ 2026-06-22  7:38 UTC (permalink / raw)
  To: Johan Hovold, Greg Kroah-Hartman; +Cc: linux-usb, linux-kernel, Arun Pappan
In-Reply-To: <cover.1781744946.git.naveen.reddy@ftdichip.com>

The low_latency attribute makes a port bypass the inter-batch read
defer entirely: read URBs are resubmitted immediately, giving the
lowest read latency but keeping a host-controller DMA channel occupied
almost continuously.  On controllers that do not enforce DMA-channel
fairness (such as the BCM2835 DWC_OTG on the Raspberry Pi Compute
Module 3) only about two such ports can run at high baud before
control transfers and other devices on the same bus -- a USB-attached
Ethernet adapter, for instance -- are starved again.

Add a module parameter, low_latency_defer_ns, that applies a small
inter-batch defer to low_latency ports instead of bypassing the defer
entirely.  Default 0 preserves the existing full-bypass behaviour.  A
small non-zero value (e.g. 2000000 = 2 ms) paces each low_latency port
with that interval, roughly halving how long it occupies a DMA
channel, so more low_latency ports can coexist without starving
control transfers, at the cost of a bounded read latency (~the value,
well under the urb_defer_timer_ns default).

The value is read on each completion, so runtime changes via
/sys/module/ftdi_sio/parameters/low_latency_defer_ns take effect
immediately on every low_latency port; it is clamped to
FTDI_URB_DEFER_MAX_NS.  As a rough guide, on the CM3/DWC_OTG with
eight 916 kbps channels about 1 ms per low_latency port beyond two
keeps control-transfer latency and unrelated USB throughput bounded;
the optimum is workload-dependent and best confirmed by measurement.

Signed-off-by: Chinna Mopurigari Naveen Kumar Reddy <naveen.reddy@ftdichip.com>
---
 drivers/usb/serial/ftdi_sio.c | 50 ++++++++++++++++++++++++++++++-----
 1 file changed, 43 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index c631c6d0a1a5..7d7644ecab06 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -2342,6 +2342,26 @@ static void ftdi_gpio_remove(struct usb_serial_port *port) { }
  */
 static unsigned long urb_defer_timer_ns;
 
+/*
+ * Optional small inter-batch defer applied to low_latency ports, in
+ * nanoseconds.
+ *
+ * Default 0 keeps low_latency ports fully bypassed (immediate read-URB
+ * resubmit, lowest latency), which pins a host-controller DMA channel
+ * almost continuously.  On a controller that does not enforce
+ * DMA-channel fairness only about two such ports can run at high baud
+ * before control transfers and other devices on the bus are starved.
+ *
+ * A small non-zero value (e.g. 2000000 = 2 ms) instead paces each
+ * low_latency port with that interval, roughly halving its
+ * DMA-channel occupancy so more low_latency ports can coexist, at the
+ * cost of a bounded read latency (~the value, still well under the
+ * urb_defer_timer_ns default).  Read live, so runtime changes apply
+ * immediately to every low_latency port; clamped to
+ * FTDI_URB_DEFER_MAX_NS.
+ */
+static unsigned long low_latency_defer_ns;
+
 /*
  * hrtimer callback that fires after the configured defer interval and
  * un-throttles the port so the generic submit-read-urbs path can run
@@ -2854,11 +2874,13 @@ static void ftdi_read_bulk_callback(struct urb *urb)
 
 	/*
 	 * Latency-critical ports opt out of the inter-batch defer via
-	 * /sys/.../low_latency. Delegate straight to the generic
-	 * callback so the data stream sees no added latency on this
-	 * port even when the defer is globally enabled.
+	 * /sys/.../low_latency.  With low_latency_defer_ns == 0 (default),
+	 * delegate straight to the generic callback so the data stream
+	 * sees no added latency on this port.  A non-zero
+	 * low_latency_defer_ns instead paces this port with that (small)
+	 * interval to bound its DMA-channel occupancy.
 	 */
-	if (priv->low_latency) {
+	if (priv->low_latency && !low_latency_defer_ns) {
 		usb_serial_generic_read_bulk_callback(urb);
 		return;
 	}
@@ -2915,7 +2937,7 @@ static void ftdi_read_bulk_callback(struct urb *urb)
 	 * so the data stream does not stall in the narrow window
 	 * before the store's unthrottle runs.
 	 */
-	if (priv->low_latency) {
+	if (priv->low_latency && !low_latency_defer_ns) {
 		spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
 		ftdi_atomic_submit_read_urbs(port);
 		return;
@@ -2931,10 +2953,21 @@ static void ftdi_read_bulk_callback(struct urb *urb)
 	spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
 
 	if (tty) {
+		ktime_t defer_kt = priv->urb_defer_ktime;
+
+		/*
+		 * A low_latency port that is being paced (low_latency_defer_ns
+		 * != 0) uses that small per-port interval instead of the
+		 * global inter-batch defer.
+		 */
+		if (priv->low_latency)
+			defer_kt = ns_to_ktime(min_t(unsigned long,
+						     low_latency_defer_ns,
+						     FTDI_URB_DEFER_MAX_NS));
+
 		usb_serial_generic_throttle(tty);
 		if (start_timer)
-			hrtimer_start(&priv->urb_defer_timer,
-				      priv->urb_defer_ktime,
+			hrtimer_start(&priv->urb_defer_timer, defer_kt,
 				      HRTIMER_MODE_REL);
 		tty_kref_put(tty);
 	} else {
@@ -3307,6 +3340,9 @@ module_usb_serial_driver(serial_drivers, id_table_combined);
 module_param(urb_defer_timer_ns, ulong, 0644);
 MODULE_PARM_DESC(urb_defer_timer_ns,
 		 "Inter-batch defer between read-URB resubmissions, in nanoseconds. 0 (default) disables the defer. Max 100000000 = 100 ms.");
+module_param(low_latency_defer_ns, ulong, 0644);
+MODULE_PARM_DESC(low_latency_defer_ns,
+		 "Inter-batch defer applied to low_latency ports, in nanoseconds. 0 (default) bypasses the defer entirely on low_latency ports; a small value (e.g. 2000000 = 2 ms) paces them so more can run without starving control transfers. Max 100000000 = 100 ms.");
 
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
-- 
2.43.0


^ permalink raw reply related

* [PATCH 5/6] USB: serial: ftdi_sio: serialise low_latency toggle against read_bulk_callback
From: Chinna Mopurigari Naveen Kumar Reddy @ 2026-06-22  7:38 UTC (permalink / raw)
  To: Johan Hovold, Greg Kroah-Hartman; +Cc: linux-usb, linux-kernel, Arun Pappan
In-Reply-To: <cover.1781744946.git.naveen.reddy@ftdichip.com>

Toggling the per-port low_latency sysfs attribute while the port is
actively reading or writing was found to occasionally leave the port
wedged.  The application would block on read() until restarted.

The race is between low_latency_store() and ftdi_read_bulk_callback():

  1. ftdi_read_bulk_callback() passes the top-of-function fast-path
     low_latency check (sees false) and proceeds towards the
     throttle/start-timer block.
  2. low_latency_store() runs on another CPU and sets the flag.
     Previously it only cancelled the hrtimer and cleared
     timer_active -- it did not clear USB_SERIAL_THROTTLED.
  3. ftdi_read_bulk_callback() continues past the lock, calls
     usb_serial_generic_throttle() which sets USB_SERIAL_THROTTLED,
     and arms the (now-cancelled-and-restarted) hrtimer.
  4. Every subsequent URB completion now takes the low_latency fast
     path at the top of the callback, delegates to the upstream
     generic callback which marks the URB free, sees
     USB_SERIAL_THROTTLED set, and refuses to resubmit.  The data
     stream stalls.

Close the race:

  a) low_latency_store() now publishes the new value under
     urb_defer_lock so the callback's locked re-check observes it
     with proper ordering, then cancels the hrtimer synchronously,
     then calls usb_serial_generic_unthrottle() to clear
     USB_SERIAL_THROTTLED and resubmit any free URBs.  This is done
     in both directions of the toggle -- when nothing is parked it
     is a cheap no-op submit.

  b) ftdi_read_bulk_callback() re-checks low_latency under the same
     urb_defer_lock immediately before the throttle/start-timer
     block.  On bail it calls usb_serial_generic_submit_read_urbs()
     to resubmit the URB itself, closing the brief window where the
     URB is marked free but neither the store nor anyone else has
     resubmitted.

Signed-off-by: Chinna Mopurigari Naveen Kumar Reddy <naveen.reddy@ftdichip.com>
---
 drivers/usb/serial/ftdi_sio.c | 57 ++++++++++++++++++++++++++++++++---
 1 file changed, 52 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 8faa073f1383..c631c6d0a1a5 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1764,20 +1764,54 @@ static ssize_t low_latency_store(struct device *dev,
 {
 	struct usb_serial_port *port = to_usb_serial_port(dev);
 	struct ftdi_private *priv = usb_get_serial_port_data(port);
+	struct tty_struct *tty;
 	unsigned long flags;
 	u8 v;
 
 	if (kstrtou8(valbuf, 10, &v))
 		return -EINVAL;
 
+	/*
+	 * Toggling low_latency while the port is actively reading or
+	 * writing is racy unless we serialise carefully.  Between the
+	 * moment ftdi_read_bulk_callback() passes its top-of-function
+	 * low_latency check and the moment it sets USB_SERIAL_THROTTLED
+	 * + starts the hrtimer, this store may set low_latency = true.
+	 * If we then merely cancelled the timer (without clearing
+	 * USB_SERIAL_THROTTLED), every subsequent URB completion would
+	 * take the generic callback path, mark the URB free, observe
+	 * the throttled bit, refuse to resubmit, and silently stall
+	 * the data stream -- only an application restart would recover.
+	 *
+	 * Three things, in order, close the race:
+	 *   1. Publish low_latency under urb_defer_lock so the
+	 *      callback's re-check (in the throttle block below)
+	 *      observes the new value with proper ordering.
+	 *   2. Cancel the defer hrtimer synchronously so no late
+	 *      timer callback can race the unthrottle.
+	 *   3. Force-unthrottle the port and resubmit any free URBs.
+	 *      Done in both directions of the toggle -- when nothing is
+	 *      parked this is a cheap no-op submit; it eliminates the
+	 *      wedge case either way.
+	 */
+	spin_lock_irqsave(&priv->urb_defer_lock, flags);
 	priv->low_latency = !!v;
+	tty = priv->urb_defer_tty;
+	if (tty)
+		tty_kref_get(tty);
+	spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
 
-	if (priv->low_latency) {
-		hrtimer_cancel(&priv->urb_defer_timer);
-		spin_lock_irqsave(&priv->urb_defer_lock, flags);
-		priv->urb_defer_timer_active = false;
-		spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
+	hrtimer_cancel(&priv->urb_defer_timer);
+
+	spin_lock_irqsave(&priv->urb_defer_lock, flags);
+	priv->urb_defer_timer_active = false;
+	spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
+
+	if (tty) {
+		usb_serial_generic_unthrottle(tty);
+		tty_kref_put(tty);
 	}
+
 	return count;
 }
 static DEVICE_ATTR_RW(low_latency);
@@ -2873,6 +2907,19 @@ static void ftdi_read_bulk_callback(struct urb *urb)
 		return;
 
 	spin_lock_irqsave(&priv->urb_defer_lock, flags);
+	/*
+	 * Re-check low_latency under the lock.  Pairs with the locked
+	 * publish in low_latency_store().  If the toggle landed
+	 * between the top-of-function fast-path check and here, do
+	 * not throttle or arm the timer; resubmit the URB ourselves
+	 * so the data stream does not stall in the narrow window
+	 * before the store's unthrottle runs.
+	 */
+	if (priv->low_latency) {
+		spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
+		ftdi_atomic_submit_read_urbs(port);
+		return;
+	}
 	tty = priv->urb_defer_tty;
 	if (tty) {
 		tty_kref_get(tty);
-- 
2.43.0


^ permalink raw reply related

* [PATCH 4/6] USB: serial: ftdi_sio: add per-port low_latency sysfs attribute
From: Chinna Mopurigari Naveen Kumar Reddy @ 2026-06-22  7:38 UTC (permalink / raw)
  To: Johan Hovold, Greg Kroah-Hartman; +Cc: linux-usb, linux-kernel, Arun Pappan
In-Reply-To: <cover.1781744946.git.naveen.reddy@ftdichip.com>

When the inter-batch read-URB defer added by the previous patch is
enabled globally (urb_defer_timer_ns != 0), every port served by
this driver pays a small read-side latency.  In multi-channel
products it is common for one or more channels to be
latency-critical while others tolerate the defer; today there is
no way to express that on a per-port basis.

Add a new writable boolean sysfs attribute, low_latency, on every
ftdi_sio port:

  /sys/bus/usb-serial/devices/ttyUSBx/low_latency
    0 (default): inter-batch defer applies to this port when the
                 defer is globally enabled.
    1          : defer is bypassed on this port; the generic
                 read-bulk callback handles URB completions
                 directly with no throttle / hrtimer interaction.

The implementation adds a bool low_latency field to struct
ftdi_private (zero-initialised by kzalloc), settable via the new
attribute.  ftdi_read_bulk_callback() short-circuits to
usb_serial_generic_read_bulk_callback() at the top of the function
when the flag is set, skipping the throttle/hrtimer path entirely.

Writing 1 also cancels any in-flight defer hrtimer and clears the
timer_active bookkeeping so the next URB completion takes the
direct path immediately.

A udev rule typically sets the flag at device-add for the
latency-critical port; other ports are unaffected.

Signed-off-by: Chinna Mopurigari Naveen Kumar Reddy <naveen.reddy@ftdichip.com>
---
 drivers/usb/serial/ftdi_sio.c | 66 +++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index c0cda19f074a..8faa073f1383 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -110,6 +110,15 @@ struct ftdi_private {
 	struct hrtimer		urb_defer_timer;
 	struct tty_struct	*urb_defer_tty;
 	bool			urb_defer_timer_active;
+	/*
+	 * Per-port opt-out of the inter-batch defer.  When true, set via
+	 * /sys/bus/usb-serial/devices/ttyUSBx/low_latency, the read-bulk
+	 * callback short-circuits to the generic upstream callback and
+	 * skips the hrtimer-based throttle.  Defaults to false: the
+	 * defer applies to every port unless this port is explicitly
+	 * opted out (and the defer is globally enabled to begin with).
+	 */
+	bool			low_latency;
 #ifdef CONFIG_GPIOLIB
 	struct gpio_chip gc;
 	struct mutex gpio_lock;	/* protects GPIO state */
@@ -1728,6 +1737,51 @@ static ssize_t latency_timer_store(struct device *dev,
 }
 static DEVICE_ATTR_RW(latency_timer);
 
+/*
+ * /sys/bus/usb-serial/devices/ttyUSBx/low_latency
+ *   0 (default): inter-batch defer applies to this port (only
+ *                meaningful when the defer is globally enabled
+ *                via urb_defer_timer_ns).
+ *   1          : defer bypassed on this port; the upstream
+ *                read-bulk callback handles URB completions with
+ *                no throttle / hrtimer interaction.
+ * Typically written by a udev rule on the latency-critical port at
+ * device-add. Writing 1 also cancels any in-flight defer timer so
+ * the next URB submits immediately.
+ */
+static ssize_t low_latency_show(struct device *dev,
+				struct device_attribute *attr, char *buf)
+{
+	struct usb_serial_port *port = to_usb_serial_port(dev);
+	struct ftdi_private *priv = usb_get_serial_port_data(port);
+
+	return sprintf(buf, "%u\n", priv->low_latency ? 1 : 0);
+}
+
+static ssize_t low_latency_store(struct device *dev,
+				 struct device_attribute *attr,
+				 const char *valbuf, size_t count)
+{
+	struct usb_serial_port *port = to_usb_serial_port(dev);
+	struct ftdi_private *priv = usb_get_serial_port_data(port);
+	unsigned long flags;
+	u8 v;
+
+	if (kstrtou8(valbuf, 10, &v))
+		return -EINVAL;
+
+	priv->low_latency = !!v;
+
+	if (priv->low_latency) {
+		hrtimer_cancel(&priv->urb_defer_timer);
+		spin_lock_irqsave(&priv->urb_defer_lock, flags);
+		priv->urb_defer_timer_active = false;
+		spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
+	}
+	return count;
+}
+static DEVICE_ATTR_RW(low_latency);
+
 /* Write an event character directly to the FTDI register.  The ASCII
    value is in the low 8 bits, with the enable bit in the 9th bit. */
 static ssize_t event_char_store(struct device *dev,
@@ -1762,6 +1816,7 @@ static DEVICE_ATTR_WO(event_char);
 static struct attribute *ftdi_attrs[] = {
 	&dev_attr_event_char.attr,
 	&dev_attr_latency_timer.attr,
+	&dev_attr_low_latency.attr,
 	NULL
 };
 
@@ -2763,6 +2818,17 @@ static void ftdi_read_bulk_callback(struct urb *urb)
 		return;
 	}
 
+	/*
+	 * Latency-critical ports opt out of the inter-batch defer via
+	 * /sys/.../low_latency. Delegate straight to the generic
+	 * callback so the data stream sees no added latency on this
+	 * port even when the defer is globally enabled.
+	 */
+	if (priv->low_latency) {
+		usb_serial_generic_read_bulk_callback(urb);
+		return;
+	}
+
 	for (i = 0; i < ARRAY_SIZE(port->read_urbs); ++i) {
 		if (urb == port->read_urbs[i])
 			break;
-- 
2.43.0


^ permalink raw reply related

* [PATCH 3/6] USB: serial: ftdi_sio: make explicit latency_timer sysfs write authoritative
From: Chinna Mopurigari Naveen Kumar Reddy @ 2026-06-22  7:38 UTC (permalink / raw)
  To: Johan Hovold, Greg Kroah-Hartman; +Cc: linux-usb, linux-kernel, Arun Pappan
In-Reply-To: <cover.1781744946.git.naveen.reddy@ftdichip.com>

write_latency_timer() clamps the value programmed into the FT chip's
per-channel latency_timer register to 1 whenever ASYNC_LOW_LATENCY is
set in priv->flags.  ASYNC_LOW_LATENCY is set by userspace via
TIOCSSERIAL, used by setserial(8), libftdi and certain tcsetattr
paths.  The interaction with the existing sysfs latency_timer
attribute is surprising: once any of those tools has set the flag, a
later write of "16" (or any other value) to
/sys/bus/usb-serial/devices/ttyUSBx/latency_timer is silently
clamped to 1 and never reaches the chip.

The store path is the most explicit way userspace can ask for a
particular latency_timer value; treat it as authoritative.  On an
explicit sysfs write, clear ASYNC_LOW_LATENCY before calling
write_latency_timer() so the requested value is what the chip
register actually receives.  Emit a dev_info() so the override is
visible.

Reads continue to honour ASYNC_LOW_LATENCY (returning "1") so any
userspace that previously inspected the attribute to confirm
low-latency mode keeps working until it does its own explicit write.

Signed-off-by: Chinna Mopurigari Naveen Kumar Reddy <naveen.reddy@ftdichip.com>
---
 drivers/usb/serial/ftdi_sio.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index ac0951ba74a0..c0cda19f074a 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -1703,6 +1703,23 @@ static ssize_t latency_timer_store(struct device *dev,
 	if (kstrtou8(valbuf, 10, &v))
 		return -EINVAL;
 
+	/*
+	 * An explicit sysfs write wins over the legacy ASYNC_LOW_LATENCY
+	 * tty-flag override.  Without this, if any userspace tool
+	 * (setserial(8), libftdi, certain tcsetattr paths) had set
+	 * ASYNC_LOW_LATENCY via TIOCSSERIAL, write_latency_timer() would
+	 * silently clamp the chip register to 1 regardless of what was
+	 * written to sysfs.  Clearing the flag here makes sysfs the
+	 * authoritative source so the next chip-side write uses exactly
+	 * the value the caller asked for.
+	 */
+	if (priv->flags & ASYNC_LOW_LATENCY) {
+		dev_info(&port->dev,
+			 "explicit latency_timer=%u clears ASYNC_LOW_LATENCY flag\n",
+			 v);
+		priv->flags &= ~ASYNC_LOW_LATENCY;
+	}
+
 	priv->latency = v;
 	rv = write_latency_timer(port);
 	if (rv < 0)
-- 
2.43.0


^ permalink raw reply related

* [PATCH 2/6] USB: serial: ftdi_sio: retry transient errors on chip-side control transfers
From: Chinna Mopurigari Naveen Kumar Reddy @ 2026-06-22  7:38 UTC (permalink / raw)
  To: Johan Hovold, Greg Kroah-Hartman; +Cc: linux-usb, linux-kernel, Arun Pappan
In-Reply-To: <cover.1781744946.git.naveen.reddy@ftdichip.com>

usb_control_msg() can return -ETIMEDOUT, -EPIPE or -EPROTO on a
functioning device when the host controller is momentarily unable to
complete the transfer -- typically under heavy USB bus load.  A common
real-world scenario is multiple high-baud (~916 kbps) FTDI channels
sharing a host controller with limited DMA-channel fairness, e.g. the
BCM2835 DWC_OTG controller used on the Raspberry Pi Compute Module 3.

When this happens during a one-shot userspace operation such as a
sysfs write to /sys/bus/usb-serial/devices/ttyUSBx/latency_timer, the
write returns -EIO to userspace and the chip's per-channel latency
timer register is not updated.  A short retry usually succeeds.

Introduce a small helper, ftdi_send_request(), that wraps
usb_control_msg() with up to FTDI_CONTROL_RETRIES attempts on the
documented transient errno values, separated by
FTDI_CONTROL_RETRY_DELAY_MS.  Non-transient errors are returned
immediately as before.  Each retry is logged with dev_warn() so the
underlying bus condition remains visible in dmesg.

Convert write_latency_timer() to use the helper.  Other chip-side
control transfer sites in this driver may benefit from the same
treatment as transient failures are reported there; this patch keeps
the scope to the one site for which userspace-visible failures have
been observed.

Signed-off-by: Chinna Mopurigari Naveen Kumar Reddy <naveen.reddy@ftdichip.com>
---
 drivers/usb/serial/ftdi_sio.c | 48 ++++++++++++++++++++++++++++++-----
 1 file changed, 41 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 8ae887107de7..ac0951ba74a0 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -30,6 +30,7 @@
 #include <linux/kernel.h>
 #include <linux/errno.h>
 #include <linux/slab.h>
+#include <linux/delay.h>
 #include <linux/tty.h>
 #include <linux/tty_driver.h>
 #include <linux/tty_flip.h>
@@ -1383,10 +1384,46 @@ static int change_speed(struct tty_struct *tty, struct usb_serial_port *port)
 	return rv;
 }
 
+/*
+ * Send a chip-side control request, retrying transient bus errors.
+ *
+ * On a healthy device, usb_control_msg() can still return -ETIMEDOUT,
+ * -EPIPE or -EPROTO when the host controller is under heavy load --
+ * for example multiple high-baud FTDI channels sharing a host
+ * controller with limited DMA-channel fairness. Failing a single
+ * one-shot configuration (e.g. a sysfs latency_timer write) to the
+ * caller as -EIO in that situation is unhelpful: the next attempt
+ * usually succeeds.  Retry a small number of times before giving up.
+ */
+#define FTDI_CONTROL_RETRIES		3
+#define FTDI_CONTROL_RETRY_DELAY_MS	2
+
+static int ftdi_send_request(struct usb_serial_port *port, u8 request,
+			     u8 requesttype, u16 value, u16 index)
+{
+	struct usb_device *udev = port->serial->dev;
+	int attempts;
+	int rv = -EIO;
+
+	for (attempts = 0; attempts < FTDI_CONTROL_RETRIES; ++attempts) {
+		rv = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
+				     request, requesttype, value, index,
+				     NULL, 0, WDR_TIMEOUT);
+		if (rv >= 0)
+			return rv;
+		if (rv != -ETIMEDOUT && rv != -EPIPE && rv != -EPROTO)
+			return rv;
+		dev_warn(&port->dev,
+			 "control msg req 0x%02x attempt %d returned %d, retrying\n",
+			 request, attempts + 1, rv);
+		msleep(FTDI_CONTROL_RETRY_DELAY_MS);
+	}
+	return rv;
+}
+
 static int write_latency_timer(struct usb_serial_port *port)
 {
 	struct ftdi_private *priv = usb_get_serial_port_data(port);
-	struct usb_device *udev = port->serial->dev;
 	int rv;
 	int l = priv->latency;
 
@@ -1398,12 +1435,9 @@ static int write_latency_timer(struct usb_serial_port *port)
 
 	dev_dbg(&port->dev, "%s: setting latency timer = %i\n", __func__, l);
 
-	rv = usb_control_msg(udev,
-			     usb_sndctrlpipe(udev, 0),
-			     FTDI_SIO_SET_LATENCY_TIMER_REQUEST,
-			     FTDI_SIO_SET_LATENCY_TIMER_REQUEST_TYPE,
-			     l, priv->channel,
-			     NULL, 0, WDR_TIMEOUT);
+	rv = ftdi_send_request(port, FTDI_SIO_SET_LATENCY_TIMER_REQUEST,
+			       FTDI_SIO_SET_LATENCY_TIMER_REQUEST_TYPE,
+			       l, priv->channel);
 	if (rv < 0)
 		dev_err(&port->dev, "Unable to write latency timer: %i\n", rv);
 	return rv;
-- 
2.43.0


^ permalink raw reply related

* [PATCH 1/6] USB: serial: ftdi_sio: add configurable inter-batch defer for read URBs
From: Chinna Mopurigari Naveen Kumar Reddy @ 2026-06-22  7:38 UTC (permalink / raw)
  To: Johan Hovold, Greg Kroah-Hartman; +Cc: linux-usb, linux-kernel, Arun Pappan
In-Reply-To: <cover.1781744946.git.naveen.reddy@ftdichip.com>

Some USB host controllers do not enforce DMA-channel fairness
between devices.  On such hosts, ftdi_sio's read-URB resubmission
rate from a single high-throughput device can occupy every
available DMA channel and block progress on the control endpoint
and unrelated devices on the same bus, with visible consequences
such as failed device enumeration and stalled hub events.  The
BCM2835 DWC_OTG controller used on the Raspberry Pi Compute Module
3 is one example: at ~916 kbps per channel across two FT4232 chips
(eight RS485 channels), the symptom is reproducible.

Most hosts are not affected and should see no behavioural change.
Field testing on a CM3 with two FT4232 chips shows the symptom
only when more than five channels are concurrently open at this
baud; smaller configurations on the same host work fine with no
defer at all and would only pay a latency cost for it.  A default
defer would therefore be inappropriate.

Add a module parameter urb_defer_timer_ns whose default is 0,
which leaves the new code path inactive: ftdi_read_bulk_callback()
delegates straight to usb_serial_generic_read_bulk_callback() and
the driver is bit-for-bit equivalent to the version without this
patch.  Setting urb_defer_timer_ns to a non-zero value (clamped to
FTDI_URB_DEFER_MAX_NS = 100 ms) enables a per-port inter-batch
defer: after each read URB is processed, the port is throttled and
an hrtimer is armed; on expiry, usb_serial_generic_unthrottle()
clears USB_SERIAL_THROTTLED and the generic submit path resubmits
the next batch.  This bounds per-device DMA-channel occupancy on
the host controller without changing how each URB is processed.

The parameter is settable at module load time
(modprobe ftdi_sio urb_defer_timer_ns=30000000) or at runtime via
/sys/module/ftdi_sio/parameters/urb_defer_timer_ns; runtime
changes apply to ports probed after the change.

A new ftdi_close op cancels any pending hrtimer and drops the tty
reference captured at open.  ftdi_port_remove() also cancels the
timer so it cannot fire on freed memory after a hot unplug.

Read URBs are resubmitted from the hrtimer callback (and, when no tty
is bound, directly from the completion handler) -- both atomic
contexts.  usb_serial_generic_submit_read_urbs() cannot be used there:
its error-recovery path calls usb_kill_urb(), which sleeps, so a
failed inner submit under bus pressure would sleep in atomic context.
A small helper, ftdi_atomic_submit_read_urbs(), submits each free read
URB inline with usb_submit_urb(GFP_ATOMIC) -- which does not sleep --
and returns the URB to the free list on failure for the next
completion to re-drive.

100 ms is the upper bound at which most real-world RS-232/RS-485
protocols still function; values higher than this are rejected as
indicative of misconfiguration.

Subsequent patches in this series add a per-port low_latency sysfs
attribute that selectively bypasses the defer on a single port
when it is globally enabled, and the serialisation needed to
toggle that attribute safely under load.

Signed-off-by: Chinna Mopurigari Naveen Kumar Reddy <naveen.reddy@ftdichip.com>
---
 drivers/usb/serial/ftdi_sio.c | 274 +++++++++++++++++++++++++++++++++-
 1 file changed, 273 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index af14548fa03d..8ae887107de7 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -41,12 +41,25 @@
 #include <linux/serial.h>
 #include <linux/gpio/driver.h>
 #include <linux/usb/serial.h>
+#include <linux/hrtimer.h>
+#include <linux/ktime.h>
 #include "ftdi_sio.h"
 #include "ftdi_sio_ids.h"
 
 #define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>, Andreas Mohr, Johan Hovold <jhovold@gmail.com>"
 #define DRIVER_DESC "USB FTDI Serial Converters Driver"
 
+/*
+ * Configurable inter-batch defer on read-URB resubmission. Useful on
+ * host controllers that do not enforce DMA-channel fairness between
+ * devices (the BCM2835 DWC_OTG on the Raspberry Pi Compute Module 3
+ * is one example), where an unbounded read-URB rate from a single
+ * high-throughput device can occupy every DMA channel and prevent
+ * progress on the control endpoint and unrelated devices on the same
+ * bus. Bounded to 100 ms; disabled by default.
+ */
+#define FTDI_URB_DEFER_MAX_NS	(100 * 1000000)
+
 enum ftdi_chip_type {
 	SIO,
 	FT232A,
@@ -89,6 +102,13 @@ struct ftdi_private {
 	unsigned int latency;		/* latency setting in use */
 	unsigned short max_packet_size;
 	struct mutex cfg_lock; /* Avoid mess by parallel calls of config ioctl() and change_speed() */
+
+	/* Inter-batch defer state (see FTDI_URB_DEFER_MAX_NS). */
+	spinlock_t		urb_defer_lock;	/* guards tty and timer_active */
+	ktime_t			urb_defer_ktime;
+	struct hrtimer		urb_defer_timer;
+	struct tty_struct	*urb_defer_tty;
+	bool			urb_defer_timer_active;
 #ifdef CONFIG_GPIOLIB
 	struct gpio_chip gc;
 	struct mutex gpio_lock;	/* protects GPIO state */
@@ -2167,6 +2187,95 @@ static void ftdi_gpio_remove(struct usb_serial_port *port) { }
  * ***************************************************************************
  */
 
+/*
+ * Module parameter: inter-batch defer between read-URB resubmissions,
+ * in nanoseconds.
+ *
+ * Default 0 -- defer disabled, behaviour identical to prior versions
+ * of this driver. Set to a non-zero value (typically 30000000 = 30 ms;
+ * clamped to FTDI_URB_DEFER_MAX_NS = 100 ms) to bound the read-URB
+ * resubmission rate on hosts whose USB controller does not enforce
+ * DMA-channel fairness. Settable at module load time
+ * (modprobe ftdi_sio urb_defer_timer_ns=30000000) or at runtime via
+ * /sys/module/ftdi_sio/parameters/urb_defer_timer_ns; the new value
+ * takes effect on ports probed after the change.
+ */
+static unsigned long urb_defer_timer_ns;
+
+/*
+ * hrtimer callback that fires after the configured defer interval and
+ * un-throttles the port so the generic submit-read-urbs path can run
+ * again. The timer is armed with HRTIMER_MODE_REL, so this runs in
+ * atomic (hard-irq) context and must not sleep.
+ */
+/*
+ * Resubmit the port's free read URBs from atomic context.
+ *
+ * usb_serial_generic_submit_read_urbs() accepts a gfp_t and looks
+ * usable from atomic context, but its error-recovery path calls
+ * usb_kill_urb(), which sleeps waiting for the URB to be reaped.  If
+ * an individual usb_submit_urb() fails -- which can happen under bus
+ * pressure -- calling that helper from a completion handler or hrtimer
+ * callback would sleep in atomic context.  Submit each free URB inline
+ * instead; usb_submit_urb() does not sleep under GFP_ATOMIC.  On
+ * failure the URB is returned to the free list and the next completion
+ * re-drives submission.
+ */
+static void ftdi_atomic_submit_read_urbs(struct usb_serial_port *port)
+{
+	int i;
+	int res;
+
+	for (i = 0; i < ARRAY_SIZE(port->read_urbs); ++i) {
+		if (!test_and_clear_bit(i, &port->read_urbs_free))
+			continue;
+
+		res = usb_submit_urb(port->read_urbs[i], GFP_ATOMIC);
+		if (res) {
+			dev_dbg(&port->dev, "%s - submit failed: %d\n",
+				__func__, res);
+			set_bit(i, &port->read_urbs_free);
+		}
+	}
+}
+
+static enum hrtimer_restart ftdi_urb_defer_timer_callback(struct hrtimer *timer)
+{
+	struct ftdi_private *priv = container_of(timer, struct ftdi_private,
+						 urb_defer_timer);
+	struct tty_struct *tty;
+	unsigned long flags;
+
+	spin_lock_irqsave(&priv->urb_defer_lock, flags);
+	priv->urb_defer_timer_active = false;
+	tty = priv->urb_defer_tty;
+	if (tty)
+		tty_kref_get(tty);
+	spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
+
+	if (tty) {
+		struct usb_serial_port *port = tty->driver_data;
+
+		/*
+		 * This is the body of usb_serial_generic_unthrottle(), but
+		 * that helper resubmits with GFP_KERNEL and may sleep; we are
+		 * in the hrtimer's atomic context, so clear the throttle bit
+		 * and resubmit with GFP_ATOMIC instead.
+		 */
+		clear_bit(USB_SERIAL_THROTTLED, &port->flags);
+		/*
+		 * Order the throttle-bit clear before the resubmit, pairing
+		 * with the barrier that guards the read_urbs_free update in
+		 * ftdi_read_bulk_callback().
+		 */
+		smp_mb__after_atomic();
+		ftdi_atomic_submit_read_urbs(port);
+		tty_kref_put(tty);
+	}
+
+	return HRTIMER_NORESTART;
+}
+
 static int ftdi_probe(struct usb_serial *serial, const struct usb_device_id *id)
 {
 	const struct ftdi_quirk *quirk = (struct ftdi_quirk *)id->driver_info;
@@ -2186,6 +2295,7 @@ static int ftdi_port_probe(struct usb_serial_port *port)
 {
 	const struct ftdi_quirk *quirk = usb_get_serial_data(port->serial);
 	struct ftdi_private *priv;
+	unsigned long defer_ns;
 	int result;
 
 	priv = kzalloc_obj(struct ftdi_private);
@@ -2193,6 +2303,20 @@ static int ftdi_port_probe(struct usb_serial_port *port)
 		return -ENOMEM;
 
 	mutex_init(&priv->cfg_lock);
+	spin_lock_init(&priv->urb_defer_lock);
+
+	/*
+	 * urb_defer_timer_ns == 0 leaves the inter-batch defer disabled
+	 * for this port; ftdi_read_bulk_callback() short-circuits to the
+	 * generic callback below. Otherwise clamp out-of-range values to
+	 * the documented maximum.
+	 */
+	defer_ns = urb_defer_timer_ns;
+	if (defer_ns > FTDI_URB_DEFER_MAX_NS)
+		defer_ns = FTDI_URB_DEFER_MAX_NS;
+	priv->urb_defer_ktime = ns_to_ktime(defer_ns);
+	hrtimer_setup(&priv->urb_defer_timer, &ftdi_urb_defer_timer_callback,
+		      CLOCK_MONOTONIC, HRTIMER_MODE_REL);
 
 	if (quirk && quirk->port_probe)
 		quirk->port_probe(priv);
@@ -2307,6 +2431,8 @@ static void ftdi_port_remove(struct usb_serial_port *port)
 {
 	struct ftdi_private *priv = usb_get_serial_port_data(port);
 
+	hrtimer_cancel(&priv->urb_defer_timer);
+
 	ftdi_gpio_remove(port);
 
 	kfree(priv);
@@ -2316,6 +2442,7 @@ static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
 	struct usb_device *dev = port->serial->dev;
 	struct ftdi_private *priv = usb_get_serial_port_data(port);
+	unsigned long flags;
 
 	/* No error checking for this (will get errors later anyway) */
 	/* See ftdi_sio.h for description of what is reset */
@@ -2329,12 +2456,46 @@ static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port)
 	   This is same behaviour as serial.c/rs_open() - Kuba */
 
 	/* ftdi_set_termios  will send usb control messages */
-	if (tty)
+	if (tty) {
 		ftdi_set_termios(tty, port, NULL);
+		spin_lock_irqsave(&priv->urb_defer_lock, flags);
+		priv->urb_defer_tty = tty_kref_get(tty);
+		priv->urb_defer_timer_active = false;
+		spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
+	}
 
 	return usb_serial_generic_open(tty, port);
 }
 
+static void ftdi_close(struct usb_serial_port *port)
+{
+	struct ftdi_private *priv = usb_get_serial_port_data(port);
+	struct tty_struct *tty;
+	unsigned long flags;
+
+	/*
+	 * Stop the defer machinery before tearing down the read URBs.
+	 * Clearing urb_defer_tty first means the timer callback (and a
+	 * racing read completion) sees no tty and will not resubmit;
+	 * cancelling the hrtimer then guarantees it cannot fire after
+	 * usb_serial_generic_close() has killed the read URBs. Doing this
+	 * after the close, as before, left a window where the timer could
+	 * resubmit URBs behind a closing port.
+	 */
+	spin_lock_irqsave(&priv->urb_defer_lock, flags);
+	tty = priv->urb_defer_tty;
+	priv->urb_defer_tty = NULL;
+	priv->urb_defer_timer_active = false;
+	spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
+
+	hrtimer_cancel(&priv->urb_defer_timer);
+
+	usb_serial_generic_close(port);
+
+	if (tty)
+		tty_kref_put(tty);
+}
+
 static void ftdi_dtr_rts(struct usb_serial_port *port, int on)
 {
 	struct ftdi_private *priv = usb_get_serial_port_data(port);
@@ -2519,6 +2680,111 @@ static void ftdi_process_read_urb(struct urb *urb)
 		tty_flip_buffer_push(&port->port);
 }
 
+/*
+ * Read bulk completion handler with URB-defer throttling.
+ *
+ * Behaves like usb_serial_generic_read_bulk_callback() except that,
+ * after processing the URB and marking it free, it throttles the
+ * port and arms urb_defer_timer so the next batch of read URBs is
+ * submitted at most once per urb_defer_timer_ns. This caps the
+ * controller-side DMA pressure created by this device.
+ */
+static void ftdi_read_bulk_callback(struct urb *urb)
+{
+	struct usb_serial_port *port = urb->context;
+	struct ftdi_private *priv = usb_get_serial_port_data(port);
+	unsigned char *data = urb->transfer_buffer;
+	struct tty_struct *tty;
+	bool stopped = false;
+	bool start_timer = false;
+	int status = urb->status;
+	unsigned long flags;
+	int i;
+
+	/*
+	 * Inter-batch defer disabled for this port (urb_defer_timer_ns
+	 * was 0 at probe). Use the generic callback directly so this
+	 * port behaves bit-for-bit like upstream ftdi_sio without this
+	 * patch series applied.
+	 */
+	if (ktime_to_ns(priv->urb_defer_ktime) == 0) {
+		usb_serial_generic_read_bulk_callback(urb);
+		return;
+	}
+
+	for (i = 0; i < ARRAY_SIZE(port->read_urbs); ++i) {
+		if (urb == port->read_urbs[i])
+			break;
+	}
+
+	dev_dbg(&port->dev, "%s - urb %d, len %d\n", __func__, i,
+		urb->actual_length);
+	switch (status) {
+	case 0:
+		usb_serial_debug_data(&port->dev, __func__,
+				      urb->actual_length, data);
+		port->serial->type->process_read_urb(urb);
+		break;
+	case -ENOENT:
+	case -ECONNRESET:
+	case -ESHUTDOWN:
+		dev_dbg(&port->dev, "%s - urb stopped: %d\n",
+			__func__, status);
+		stopped = true;
+		break;
+	case -EPIPE:
+		dev_err(&port->dev, "%s - urb stopped: %d\n",
+			__func__, status);
+		stopped = true;
+		break;
+	default:
+		dev_dbg(&port->dev, "%s - nonzero urb status: %d\n",
+			__func__, status);
+		break;
+	}
+
+	/* Ensure URB processing is observed before we mark the URB free. */
+	smp_mb__before_atomic();
+	set_bit(i, &port->read_urbs_free);
+	/* Ensure the free bit is observed before we read THROTTLED below. */
+	smp_mb__after_atomic();
+
+	if (stopped)
+		return;
+
+	if (test_bit(USB_SERIAL_THROTTLED, &port->flags))
+		return;
+
+	spin_lock_irqsave(&priv->urb_defer_lock, flags);
+	tty = priv->urb_defer_tty;
+	if (tty) {
+		tty_kref_get(tty);
+		if (!priv->urb_defer_timer_active) {
+			priv->urb_defer_timer_active = true;
+			start_timer = true;
+		}
+	}
+	spin_unlock_irqrestore(&priv->urb_defer_lock, flags);
+
+	if (tty) {
+		usb_serial_generic_throttle(tty);
+		if (start_timer)
+			hrtimer_start(&priv->urb_defer_timer,
+				      priv->urb_defer_ktime,
+				      HRTIMER_MODE_REL);
+		tty_kref_put(tty);
+	} else {
+		/*
+		 * No tty is bound to this port (e.g. it was opened as a
+		 * console). The inter-batch defer needs a tty to throttle,
+		 * so resubmit the read URBs immediately rather than stalling
+		 * the read stream.  We are in completion (atomic) context, so
+		 * use the atomic-safe helper.
+		 */
+		ftdi_atomic_submit_read_urbs(port);
+	}
+}
+
 static int ftdi_break_ctl(struct tty_struct *tty, int break_state)
 {
 	struct usb_serial_port *port = tty->driver_data;
@@ -2850,10 +3116,12 @@ static struct usb_serial_driver ftdi_device = {
 	.port_probe =		ftdi_port_probe,
 	.port_remove =		ftdi_port_remove,
 	.open =			ftdi_open,
+	.close =		ftdi_close,
 	.dtr_rts =		ftdi_dtr_rts,
 	.throttle =		usb_serial_generic_throttle,
 	.unthrottle =		usb_serial_generic_unthrottle,
 	.process_read_urb =	ftdi_process_read_urb,
+	.read_bulk_callback =	ftdi_read_bulk_callback,
 	.prepare_write_buffer =	ftdi_prepare_write_buffer,
 	.tiocmget =		ftdi_tiocmget,
 	.tiocmset =		ftdi_tiocmset,
@@ -2872,6 +3140,10 @@ static struct usb_serial_driver * const serial_drivers[] = {
 };
 module_usb_serial_driver(serial_drivers, id_table_combined);
 
+module_param(urb_defer_timer_ns, ulong, 0644);
+MODULE_PARM_DESC(urb_defer_timer_ns,
+		 "Inter-batch defer between read-URB resubmissions, in nanoseconds. 0 (default) disables the defer. Max 100000000 = 100 ms.");
+
 MODULE_AUTHOR(DRIVER_AUTHOR);
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
-- 
2.43.0


^ permalink raw reply related

* [PATCH 0/6] USB: serial: ftdi_sio: configurable read-URB defer, per-port low_latency, latency_timer reliability
From: Chinna Mopurigari Naveen Kumar Reddy @ 2026-06-22  7:38 UTC (permalink / raw)
  To: Johan Hovold, Greg Kroah-Hartman; +Cc: linux-usb, linux-kernel, Arun Pappan

This series adds an opt-in mechanism to bound ftdi_sio's read-URB
resubmission rate, a per-port escape hatch for it, and two small
reliability fixes to the existing latency_timer sysfs attribute.  None
of it changes the driver's default behaviour.

Background
==========

ftdi_sio resubmits read URBs as fast as the previous URB completes.
On host controllers that do not arbitrate DMA-channel allocation
between devices, a single FT4232 at high baud (4 channels x ~916 kbps)
can keep most or all of the controller's DMA channels occupied;
multiple FT4232 chips on the same bus exhaust them entirely.  The
control endpoint and unrelated devices on the same bus then make no
progress -- device enumeration fails, hub events stall.  The
BCM2835/BCM2837 DWC_OTG controller used on the Raspberry Pi Compute
Module 3 is the platform where this was characterised.

This series introduces a small inter-batch defer on read-URB
resubmission that bounds per-device DMA-channel occupancy.  It is
disabled by default; behaviour on every unaffected host is unchanged.

Series layout
=============

Patch 1 adds the inter-batch defer and the urb_defer_timer_ns module
parameter that controls it (default 0 = disabled).  It also adds a
small helper, ftdi_atomic_submit_read_urbs(), used wherever read URBs
are resubmitted from completion or hrtimer (atomic) context:
usb_serial_generic_submit_read_urbs() looks atomic-usable because it
takes a gfp_t, but its error-recovery path calls usb_kill_urb(), which
sleeps -- so a failed inner submit under bus pressure would sleep in
atomic context.  The helper submits each URB inline with
usb_submit_urb(GFP_ATOMIC), which does not sleep.

Patch 2 wraps usb_control_msg() with a retry on the documented
transient errno values (-ETIMEDOUT, -EPIPE, -EPROTO) seen under heavy
bus pressure, and converts write_latency_timer() to use it.

Patch 3 makes an explicit sysfs write to .../latency_timer
authoritative against the legacy ASYNC_LOW_LATENCY tty-flag clamp set
via TIOCSSERIAL by tools such as setserial(8).

Patch 4 adds a per-port low_latency sysfs attribute that bypasses the
inter-batch defer on a single port when the defer is globally enabled.

Patch 5 serialises the low_latency toggle against the read-bulk
callback so the attribute can be flipped while a port is actively
reading or writing.

Patch 6 adds a low_latency_defer_ns module parameter: instead of fully
bypassing the defer, a low_latency port can be paced with a small
per-port interval (e.g. 2 ms), which lets several low_latency ports
run concurrently without re-starving control transfers.

Testing
=======

Functionally validated on the affected hardware (Raspberry Pi Compute
Module 3, BCM2837 DWC_OTG, two FT4232 chips, eight RS485 channels at
916 kbps each) on the 6.12 stable kernel: with the defer enabled,
worst-case control-transfer latency under concurrent load dropped from
~50 ms (stock) to ~1 ms; per-port low_latency restores native read
latency on a chosen port; the paced path (low_latency_defer_ns=2ms)
lets four low_latency ports run without starving control transfers or
the USB-Ethernet path.

Runtime-tested on mainline at the series base (arm64, Raspberry Pi 4,
VL805 xHCI host, CONFIG_DEBUG_ATOMIC_SLEEP=y): module load/unload,
default-path loopback regression check, the deferred-resubmit path
(urb_defer_timer_ns=30ms) with live data, low_latency toggling under
load (200 cycles, no stall), explicit latency_timer writes, the paced
low_latency path (low_latency_defer_ns=2ms), and 50x open/close churn
-- all pass with no atomic-context splats.  Note this host does not
reproduce the DMA-starvation problem (that requires the DWC_OTG
controller); the mainline run is functional validation of the new
code paths.

scripts/checkpatch.pl --strict is clean on every patch.

Chinna Mopurigari Naveen Kumar Reddy (6):
  USB: serial: ftdi_sio: add configurable inter-batch defer for read
    URBs
  USB: serial: ftdi_sio: retry transient errors on chip-side control
    transfers
  USB: serial: ftdi_sio: make explicit latency_timer sysfs write
    authoritative
  USB: serial: ftdi_sio: add per-port low_latency sysfs attribute
  USB: serial: ftdi_sio: serialise low_latency toggle against
    read_bulk_callback
  USB: serial: ftdi_sio: pace low_latency ports with
    low_latency_defer_ns

 drivers/usb/serial/ftdi_sio.c | 488 +++++++++++++++++++++++++++++++++-
 1 file changed, 480 insertions(+), 8 deletions(-)


base-commit: ba3e43a9e601636f5edb54e259a74f96ca3b8fd8
-- 
2.43.0


^ permalink raw reply

* Re: [PATCH v2] usbip: vudc: fix NULL deref in vep_dequeue()
From: Igor Kotrasinski/Security (PLT) /SRPOL/Engineer/Samsung Electronics @ 2026-06-22  7:36 UTC (permalink / raw)
  To: me, Valentina Manea, Shuah Khan, Hongren Zheng,
	Greg Kroah-Hartman, Karol Kosik
  Cc: linux-usb, linux-kernel
In-Reply-To: <20260620-usbip-vudc-deque-fix-v2-1-d1913ab4611b@samcday.com>

> From: Sam Day <me@samcday.com>
> 
> vep_alloc_request() wasn't initializing vrequest->udc, so cancellations
> on the FunctionFS AIO path were arriving in vep_dequeue without a valid
> UDC reference.
> 
> Since vrequest->udc is never actually properly used anywhere, we opt to
> remove it, and update vep_dequeue to obtain a reference to the udc with
> ep_to_vudc(), consistent with the other vep_ ops.
> 
> AFAICT this bug has existed for ~10 years. Seems that nobody has really
> stressed the FunctionFS AIO path on usbip's vudc.
> 
> I tested this fix in a QEMU aarch64 guest driving FunctionFS endpoints
> via AIO. Before the fix, running `usbip attach` from the host would
> cause the guest to oops with the following backtrace:
> 
> Call trace:
>   vep_dequeue+0x1c/0xe4 (P)
>   usb_ep_dequeue+0x14/0x20
>   ffs_aio_cancel+0x24/0x34
>   __arm64_sys_io_cancel+0xb0/0x124
>   do_el0_svc+0x68/0x100
>   el0_svc+0x18/0x5c
>   el0t_64_sync_handler+0x98/0xdc
>   el0t_64_sync+0x154/0x158
> 
> Assisted-by: opencode:openai/gpt-5.5
> Fixes: b6a0ca111867 ("usbip: vudc: Add UDC specific ops")
> Signed-off-by: Sam Day <me@samcday.com>
> ---
> Changes in v2:
> - Reworked to remove vrequest->udc entirely and a call to ep_to_vudc()
>    from vep_deqe
> - Link to v1: https://lore.kernel.org/r/20260619-usbip-vudc-deque-fix-v1-1-9021463b1903@samcday.com
> ---
>   drivers/usb/usbip/vudc.h     | 1 -
>   drivers/usb/usbip/vudc_dev.c | 2 +-
>   2 files changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/usbip/vudc.h b/drivers/usb/usbip/vudc.h
> index faf61c9c6a98..5ef0e7d9b23a 100644
> --- a/drivers/usb/usbip/vudc.h
> +++ b/drivers/usb/usbip/vudc.h
> @@ -38,7 +38,6 @@ struct vep {
>   
>   struct vrequest {
>   	struct usb_request req;
> -	struct vudc *udc;
>   	struct list_head req_entry; /* Request queue */
>   };
>   
> diff --git a/drivers/usb/usbip/vudc_dev.c b/drivers/usb/usbip/vudc_dev.c
> index c5f079c5a1ea..f0a1a44c18e3 100644
> --- a/drivers/usb/usbip/vudc_dev.c
> +++ b/drivers/usb/usbip/vudc_dev.c
> @@ -344,7 +344,7 @@ static int vep_dequeue(struct usb_ep *_ep, struct usb_request *_req)
>   
>   	ep = to_vep(_ep);
>   	req = to_vrequest(_req);
> -	udc = req->udc;
> +	udc = ep_to_vudc(ep);
>   
>   	if (!udc->driver)
>   		return -ESHUTDOWN;
> 
> ---
> base-commit: 5cd1731cc883a9914d91e3b93d4597317b5b5339
> change-id: 20260619-usbip-vudc-deque-fix-d316de3d3f16
> 
> Best regards,

Looks good to me.
Reviewed-by: Igor Kotrasinski <i.kotrasinsk@samsung.com>

BRs,

Igor Kotrasiński

^ permalink raw reply

* Re: [PATCH v2] xhci: pci: Disable soft retry for Renesas uPD720201
From: raoxu @ 2026-06-22  6:21 UTC (permalink / raw)
  To: michal.pecio
  Cc: gregkh, linux-kernel, linux-usb, mathias.nyman, mathias.nyman,
	raoxu, stable
In-Reply-To: <20260619124234.0a9e4670.michal.pecio@gmail.com>

Hi Michal,

> > > The host reports a transaction error on the RTL8153 interrupt
> > > endpoint, queues a soft reset, and later times out the Stop
> > > Endpoint command while disconnecting the device:
> > >
> > >    Transfer error for slot 8 ep 6 on endpoint
> > >    Soft-reset ep 6, slot 8
> > >    Ignoring reset ep completion code of 1
> > >    xHCI host not responding to stop endpoint command
> > >    xHCI host controller not responding, assume dead
> > >    HC died; cleaning up
>
> There is other stuff too, like concurrent teardown of a separate bulk
> endpoint, not yet sure what exactly breaks these chips.
>
> Would you mind to apply the attached debug patch, reproduce and post
> dmesg from your system for comparison?

I applied the debug patch and reproduced the issue.
The XHCI_NO_SOFT_RETRY quirk was disabled during the test.

Short timeline from the log:
13:23:29 The USB hub with an integrated RTL8153 Ethernet adapter was
	 plugged in.
13:23:39 The USB hub was unplugged, and the endpoint error occurred.
13:23:44 The Stop Endpoint command timed out and the xHCI host was
         declared dead.

The complete dmesg output follows:

----- dmesg begin -----
2026-06-22T13:23:29.291089+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: Port change event, 2-3, id 3, portsc: 0xa021203
2026-06-22T13:23:29.291105+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: resume root hub
2026-06-22T13:23:29.291107+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: handle_port_status: starting usb2 port polling.
2026-06-22T13:23:29.291108+08:00 uos-PC kernel: usbcore:usb_remote_wakeup: usb usb2: usb wakeup-resume
2026-06-22T13:23:29.291114+08:00 uos-PC kernel: usbcore:hcd_bus_resume: usb usb2: usb auto-resume
2026-06-22T13:23:29.291115+08:00 uos-PC kernel: usbcore:hub_resume: hub 2-0:1.0: hub_resume
2026-06-22T13:23:29.321052+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-1 read: 0x2a0, return 0x2a0
2026-06-22T13:23:29.321058+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-2 read: 0x1263, return 0x263
2026-06-22T13:23:29.321060+08:00 uos-PC kernel: usbcore:hub_activate: usb usb2-port2: status 0263 change 0000
2026-06-22T13:23:29.321061+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-3 read: 0x21203, return 0x10203
2026-06-22T13:23:29.321062+08:00 uos-PC kernel: usbcore:hub_activate: usb usb2-port3: status 0203 change 0001
2026-06-22T13:23:29.321063+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 connect change, portsc: 0x1203
2026-06-22T13:23:29.321064+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-4 read: 0x2a0, return 0x2a0
2026-06-22T13:23:29.362901+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: Port change event, 1-3, id 7, portsc: 0x202e1
2026-06-22T13:23:29.362905+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: handle_port_status: starting usb1 port polling.
2026-06-22T13:23:29.362908+08:00 uos-PC kernel: usbcore:hub_event: hub 1-0:1.0: state 7 ports 4 chg 0000 evt 0008
2026-06-22T13:23:29.365052+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x202e1, return 0x10101
2026-06-22T13:23:29.365056+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 connect change, portsc: 0x2e1
2026-06-22T13:23:29.365057+08:00 uos-PC kernel: usbcore:hub_port_connect_change: usb usb1-port3: status 0101, change 0001, 12 Mb/s
2026-06-22T13:23:29.365057+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2e1, return 0x101
2026-06-22T13:23:29.401047+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2e1, return 0x101
2026-06-22T13:23:29.421050+08:00 uos-PC kernel: xhci_hcd:xhci_hub_status_data: xhci_hcd 0000:04:00.0: xhci_hub_status_data: stopping usb1 port polling
2026-06-22T13:23:29.421054+08:00 uos-PC kernel: xhci_hcd:xhci_hub_status_data: xhci_hcd 0000:04:00.0: xhci_hub_status_data: stopping usb2 port polling
2026-06-22T13:23:29.433054+08:00 uos-PC kernel: usbcore:hub_event: hub 2-0:1.0: state 7 ports 4 chg 0008 evt 0000
2026-06-22T13:23:29.433059+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-3 read: 0x1203, return 0x203
2026-06-22T13:23:29.433059+08:00 uos-PC kernel: usbcore:hub_port_connect_change: usb usb2-port3: status 0203, change 0000, 5.0 Gb/s
2026-06-22T13:23:29.433060+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_enable_slot
2026-06-22T13:23:29.433061+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.433061+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.433062+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 9 comp_code 1
2026-06-22T13:23:29.433064+08:00 uos-PC kernel: xhci_hcd:xhci_alloc_virt_device: xhci_hcd 0000:04:00.0: Slot 6 output ctx = 0x0x000000202074e000 (dma)
2026-06-22T13:23:29.433065+08:00 uos-PC kernel: xhci_hcd:xhci_alloc_virt_device: xhci_hcd 0000:04:00.0: Slot 6 input ctx = 0x0x000000200b52e000 (dma)
2026-06-22T13:23:29.433066+08:00 uos-PC kernel: xhci_hcd:xhci_alloc_virt_device: xhci_hcd 0000:04:00.0: Set slot id 6 dcbaa entry 000000009d531643 to 0x202074e000
2026-06-22T13:23:29.433068+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-3 read: 0x1203, return 0x203
2026-06-22T13:23:29.433068+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: set port reset, actual port 2-3 status  = 0x1311
2026-06-22T13:23:29.433069+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: Port change event, 2-3, id 3, portsc: 0x201203
2026-06-22T13:23:29.433070+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: handle_port_status: starting usb2 port polling.
2026-06-22T13:23:29.433071+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2e1, return 0x101
2026-06-22T13:23:29.473049+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2e1, return 0x101
2026-06-22T13:23:29.501051+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-3 read: 0x201203, return 0x100203
2026-06-22T13:23:29.501056+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 reset change, portsc: 0x1203
2026-06-22T13:23:29.501058+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 warm(BH) reset change, portsc: 0x1203
2026-06-22T13:23:29.501058+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 link state change, portsc: 0x1203
2026-06-22T13:23:29.501059+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 connect change, portsc: 0x1203
2026-06-22T13:23:29.501060+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-3 read: 0x1203, return 0x203
2026-06-22T13:23:29.513048+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2e1, return 0x101
2026-06-22T13:23:29.513053+08:00 uos-PC kernel: usbcore:hub_port_debounce: usb usb1-port3: debounce total 100ms stable 100ms status 0x101
2026-06-22T13:23:29.565054+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: Set root hub portnum to 3
2026-06-22T13:23:29.565059+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: Set fake root hub portnum to 3
2026-06-22T13:23:29.565060+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: udev->tt = 0000000000000000
2026-06-22T13:23:29.565061+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: udev->ttport = 0x0
2026-06-22T13:23:29.565061+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_address_device bsr 0
2026-06-22T13:23:29.565062+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.565069+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.565070+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 11 comp_code 1
2026-06-22T13:23:29.565071+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful setup address command
2026-06-22T13:23:29.565072+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Op regs DCBAA ptr = 0x000020021cc000
2026-06-22T13:23:29.565073+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Slot ID 6 dcbaa entry @000000009d531643 = 0x0000202074e000
2026-06-22T13:23:29.565073+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Output Context DMA address = 0x202074e000
2026-06-22T13:23:29.565074+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Internal device address = 6
2026-06-22T13:23:29.565075+08:00 uos-PC kernel: usb 2-3: new SuperSpeed USB device number 3 using xhci_hcd
2026-06-22T13:23:29.589051+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_enable_slot
2026-06-22T13:23:29.589054+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.589054+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.589055+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 9 comp_code 1
2026-06-22T13:23:29.589056+08:00 uos-PC kernel: xhci_hcd:xhci_alloc_virt_device: xhci_hcd 0000:04:00.0: Slot 7 output ctx = 0x0x000000200c093000 (dma)
2026-06-22T13:23:29.589057+08:00 uos-PC kernel: xhci_hcd:xhci_alloc_virt_device: xhci_hcd 0000:04:00.0: Slot 7 input ctx = 0x0x0000002006f06000 (dma)
2026-06-22T13:23:29.589063+08:00 uos-PC kernel: xhci_hcd:xhci_alloc_virt_device: xhci_hcd 0000:04:00.0: Set slot id 7 dcbaa entry 00000000048e82a9 to 0x200c093000
2026-06-22T13:23:29.589064+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: set port reset, actual port 1-3 status  = 0x331
2026-06-22T13:23:29.593056+08:00 uos-PC kernel: usbcore:usb_parse_endpoint: usb 2-3: skipped 1 descriptor after endpoint
2026-06-22T13:23:29.593061+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.593062+08:00 uos-PC kernel: usbcore:usb_get_langid: usb 2-3: default language 0x0409
2026-06-22T13:23:29.593063+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.593064+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.593064+08:00 uos-PC kernel: usbcore:usb_new_device: usb 2-3: udev 3, busnum 2, minor = 130
2026-06-22T13:23:29.593065+08:00 uos-PC kernel: usb 2-3: New USB device found, idVendor=05e3, idProduct=0626, bcdDevice= 6.55
2026-06-22T13:23:29.593070+08:00 uos-PC kernel: usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
2026-06-22T13:23:29.593072+08:00 uos-PC kernel: usb 2-3: Product: USB3.1 Hub
2026-06-22T13:23:29.593072+08:00 uos-PC kernel: usb 2-3: Manufacturer: GenesysLogic
2026-06-22T13:23:29.593073+08:00 uos-PC kernel: usbcore:usb_probe_device: usb 2-3: usb_probe_device
2026-06-22T13:23:29.593074+08:00 uos-PC kernel: usbcore:usb_choose_configuration: usb 2-3: configuration #1 chosen from 1 choice
2026-06-22T13:23:29.593075+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/2 (000/0) [ffffffff/00000000/ffffffff] xhci_add_endpoint
2026-06-22T13:23:29.593075+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x81, slot id 6, new drop flags = 0x0, new add flags = 0x8
2026-06-22T13:23:29.593076+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000e00147c8
2026-06-22T13:23:29.593078+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 200b52e000
2026-06-22T13:23:29.593078+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.593079+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.597058+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:29.597063+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:29.597063+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/2 (000/1) [2015a35000/2015a35001/2015a35000] xhci_endpoint_reset
2026-06-22T13:23:29.597064+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/2 (080/1) [2015a35000/2015a35001/2015a35000] queue_stop_endpoint suspend 0
2026-06-22T13:23:29.597065+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.597065+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.597072+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/2 (080/3) [2015a35000/2015a35001/2015a35000] handle_tx_event comp_code 27 trb_dma 2015a35000
2026-06-22T13:23:29.597073+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/2 (080/3) [2015a35000/2015a35001/2015a35000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:29.597074+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 6 ep 2
2026-06-22T13:23:29.597075+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/2 (080/3) [2015a35000/2015a35001/2015a35000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:29.597076+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 2014823000
2026-06-22T13:23:29.597077+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.597077+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.597078+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:29.597079+08:00 uos-PC kernel: usbcore:usb_set_configuration: usb 2-3: adding 2-3:1.0 (config #1, interface 0)
2026-06-22T13:23:29.597080+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.597081+08:00 uos-PC kernel: usbcore:usb_probe_interface: hub 2-3:1.0: usb_probe_interface
2026-06-22T13:23:29.597082+08:00 uos-PC kernel: usbcore:usb_probe_interface: hub 2-3:1.0: usb_probe_interface - got id
2026-06-22T13:23:29.597083+08:00 uos-PC kernel: hub 2-3:1.0: USB hub found
2026-06-22T13:23:29.601055+08:00 uos-PC kernel: hub 2-3:1.0: 4 ports detected
2026-06-22T13:23:29.601060+08:00 uos-PC kernel: usbcore:hub_configure: hub 2-3:1.0: standalone hub
2026-06-22T13:23:29.601061+08:00 uos-PC kernel: usbcore:hub_configure: hub 2-3:1.0: ganged power switching
2026-06-22T13:23:29.601062+08:00 uos-PC kernel: usbcore:hub_configure: hub 2-3:1.0: global over-current protection
2026-06-22T13:23:29.601062+08:00 uos-PC kernel: usbcore:hub_configure: hub 2-3:1.0: TT requires at most 8 FS bit times (666 ns)
2026-06-22T13:23:29.601063+08:00 uos-PC kernel: usbcore:hub_configure: hub 2-3:1.0: power on to power good time: 0ms
2026-06-22T13:23:29.601064+08:00 uos-PC kernel: usbcore:hub_configure: hub 2-3:1.0: local power source is good
2026-06-22T13:23:29.601065+08:00 uos-PC kernel: usbcore:hub_configure: hub 2-3:1.0: no over-current condition exists
2026-06-22T13:23:29.601071+08:00 uos-PC kernel: xhci_hcd:xhci_update_hub_device: xhci_hcd 0000:04:00.0: xHCI version 100 needs hub TT think time and number of ports
2026-06-22T13:23:29.601072+08:00 uos-PC kernel: xhci_hcd:xhci_update_hub_device: xhci_hcd 0000:04:00.0: Set up configure endpoint for hub device.
2026-06-22T13:23:29.601073+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 2014823000
2026-06-22T13:23:29.601073+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.601074+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.601075+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 6/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:29.601082+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:29.601083+08:00 uos-PC kernel: usbcore:hub_power_on: hub 2-3:1.0: enabling power on all ports
2026-06-22T13:23:29.641059+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: Port change event, 1-3, id 7, portsc: 0x200e03
2026-06-22T13:23:29.641070+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: handle_port_status: starting usb1 port polling.
2026-06-22T13:23:29.657049+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x200e03, return 0x100503
2026-06-22T13:23:29.657052+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 reset change, portsc: 0xe03
2026-06-22T13:23:29.669054+08:00 uos-PC kernel: xhci_hcd:xhci_hub_status_data: xhci_hcd 0000:04:00.0: xhci_hub_status_data: stopping usb1 port polling
2026-06-22T13:23:29.669060+08:00 uos-PC kernel: xhci_hcd:xhci_hub_status_data: xhci_hcd 0000:04:00.0: xhci_hub_status_data: stopping usb2 port polling
2026-06-22T13:23:29.705051+08:00 uos-PC kernel: usbcore:hub_activate: usb 2-3-port1: status 0203 change 0011
2026-06-22T13:23:29.721057+08:00 uos-PC kernel: usb 1-3: new high-speed USB device number 6 using xhci_hcd
2026-06-22T13:23:29.721063+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: Set root hub portnum to 7
2026-06-22T13:23:29.721064+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: Set fake root hub portnum to 3
2026-06-22T13:23:29.721065+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: udev->tt = 0000000000000000
2026-06-22T13:23:29.721066+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: udev->ttport = 0x0
2026-06-22T13:23:29.721067+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_address_device bsr 1
2026-06-22T13:23:29.721068+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.721068+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.721069+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 11 comp_code 1
2026-06-22T13:23:29.721070+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful setup context command
2026-06-22T13:23:29.721071+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Op regs DCBAA ptr = 0x000020021cc000
2026-06-22T13:23:29.721072+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Slot ID 7 dcbaa entry @00000000048e82a9 = 0x0000200c093000
2026-06-22T13:23:29.721073+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Output Context DMA address = 0x200c093000
2026-06-22T13:23:29.721080+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Internal device address = 0
2026-06-22T13:23:29.721081+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.721082+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: set port reset, actual port 1-3 status  = 0x331
2026-06-22T13:23:29.768636+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: Port change event, 1-3, id 7, portsc: 0x200e03
2026-06-22T13:23:29.768641+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: handle_port_status: starting usb1 port polling.
2026-06-22T13:23:29.789054+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x200e03, return 0x100503
2026-06-22T13:23:29.789059+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 reset change, portsc: 0xe03
2026-06-22T13:23:29.813057+08:00 uos-PC kernel: usbcore:hub_event: hub 2-3:1.0: state 7 ports 4 chg 0002 evt 0000
2026-06-22T13:23:29.813064+08:00 uos-PC kernel: usbcore:hub_port_connect_change: usb 2-3-port1: status 0203, change 0000, 5.0 Gb/s
2026-06-22T13:23:29.853057+08:00 uos-PC kernel: xhci_hcd:xhci_discover_or_reset_device: xhci_hcd 0000:04:00.0: Resetting device with slot ID 7
2026-06-22T13:23:29.853063+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_reset_device
2026-06-22T13:23:29.853065+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.853066+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.853072+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 17 comp_code 19
2026-06-22T13:23:29.853074+08:00 uos-PC kernel: xhci_hcd:xhci_handle_cmd_reset_dev: xhci_hcd 0000:04:00.0: Completed reset device command.
2026-06-22T13:23:29.853074+08:00 uos-PC kernel: xhci_hcd:xhci_discover_or_reset_device: xhci_hcd 0000:04:00.0: Can't reset device (slot ID 7) in default state
2026-06-22T13:23:29.853075+08:00 uos-PC kernel: xhci_hcd:xhci_discover_or_reset_device: xhci_hcd 0000:04:00.0: Not freeing device rings.
2026-06-22T13:23:29.853076+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_address_device bsr 0
2026-06-22T13:23:29.853077+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.853078+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.853078+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 11 comp_code 1
2026-06-22T13:23:29.853079+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful setup address command
2026-06-22T13:23:29.853080+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Op regs DCBAA ptr = 0x000020021cc000
2026-06-22T13:23:29.853081+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Slot ID 7 dcbaa entry @00000000048e82a9 = 0x0000200c093000
2026-06-22T13:23:29.853083+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Output Context DMA address = 0x200c093000
2026-06-22T13:23:29.853084+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Internal device address = 7
2026-06-22T13:23:29.877057+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_enable_slot
2026-06-22T13:23:29.877064+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.877065+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.877066+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 9 comp_code 1
2026-06-22T13:23:29.877066+08:00 uos-PC kernel: xhci_hcd:xhci_alloc_virt_device: xhci_hcd 0000:04:00.0: Slot 8 output ctx = 0x0x0000002014823000 (dma)
2026-06-22T13:23:29.877067+08:00 uos-PC kernel: xhci_hcd:xhci_alloc_virt_device: xhci_hcd 0000:04:00.0: Slot 8 input ctx = 0x0x000000201888f000 (dma)
2026-06-22T13:23:29.877070+08:00 uos-PC kernel: xhci_hcd:xhci_alloc_virt_device: xhci_hcd 0000:04:00.0: Set slot id 8 dcbaa entry 0000000047596e38 to 0x2014823000
2026-06-22T13:23:29.881062+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.881068+08:00 uos-PC kernel: usbcore:usb_get_langid: usb 1-3: default language 0x0409
2026-06-22T13:23:29.881069+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.881069+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.881075+08:00 uos-PC kernel: usbcore:usb_new_device: usb 1-3: udev 6, busnum 1, minor = 5
2026-06-22T13:23:29.881076+08:00 uos-PC kernel: usb 1-3: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice= 6.55
2026-06-22T13:23:29.881077+08:00 uos-PC kernel: usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
2026-06-22T13:23:29.881078+08:00 uos-PC kernel: usb 1-3: Product: USB2.1 Hub
2026-06-22T13:23:29.881078+08:00 uos-PC kernel: usb 1-3: Manufacturer: GenesysLogic
2026-06-22T13:23:29.881079+08:00 uos-PC kernel: usbcore:usb_probe_device: usb 1-3: usb_probe_device
2026-06-22T13:23:29.881080+08:00 uos-PC kernel: usbcore:usb_choose_configuration: usb 1-3: configuration #1 chosen from 1 choice
2026-06-22T13:23:29.881081+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (000/0) [ffffffff/00000000/ffffffff] xhci_add_endpoint
2026-06-22T13:23:29.881081+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x81, slot id 7, new drop flags = 0x0, new add flags = 0x8
2026-06-22T13:23:29.881082+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000ec865509
2026-06-22T13:23:29.881083+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 2006f06000
2026-06-22T13:23:29.881084+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.881089+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.881090+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:29.881091+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:29.881092+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (000/1) [201fe3b000/201fe3b001/201fe3b000] xhci_endpoint_reset
2026-06-22T13:23:29.881093+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (080/1) [201fe3b000/201fe3b001/201fe3b000] queue_stop_endpoint suspend 0
2026-06-22T13:23:29.881093+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.881094+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.881095+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (080/3) [201fe3b000/201fe3b001/201fe3b000] handle_tx_event comp_code 27 trb_dma 201fe3b000
2026-06-22T13:23:29.881096+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (080/3) [201fe3b000/201fe3b001/201fe3b000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:29.881098+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 7 ep 2
2026-06-22T13:23:29.881099+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (080/3) [201fe3b000/201fe3b001/201fe3b000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:29.881100+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:29.881101+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.881101+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.885060+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:29.885065+08:00 uos-PC kernel: usbcore:usb_set_configuration: usb 1-3: adding 1-3:1.0 (config #1, interface 0)
2026-06-22T13:23:29.885066+08:00 uos-PC kernel: usbcore:usb_probe_interface: hub 1-3:1.0: usb_probe_interface
2026-06-22T13:23:29.885067+08:00 uos-PC kernel: usbcore:usb_probe_interface: hub 1-3:1.0: usb_probe_interface - got id
2026-06-22T13:23:29.885068+08:00 uos-PC kernel: hub 1-3:1.0: USB hub found
2026-06-22T13:23:29.885069+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.885070+08:00 uos-PC kernel: hub 1-3:1.0: 4 ports detected
2026-06-22T13:23:29.885071+08:00 uos-PC kernel: usbcore:hub_configure: hub 1-3:1.0: standalone hub
2026-06-22T13:23:29.885072+08:00 uos-PC kernel: usbcore:hub_configure: hub 1-3:1.0: ganged power switching
2026-06-22T13:23:29.885073+08:00 uos-PC kernel: usbcore:hub_configure: hub 1-3:1.0: global over-current protection
2026-06-22T13:23:29.885073+08:00 uos-PC kernel: usbcore:hub_configure: hub 1-3:1.0: Single TT
2026-06-22T13:23:29.885074+08:00 uos-PC kernel: usbcore:hub_configure: hub 1-3:1.0: TT requires at most 32 FS bit times (2664 ns)
2026-06-22T13:23:29.885075+08:00 uos-PC kernel: usbcore:hub_configure: hub 1-3:1.0: Port indicators are supported
2026-06-22T13:23:29.885075+08:00 uos-PC kernel: usbcore:hub_configure: hub 1-3:1.0: power on to power good time: 0ms
2026-06-22T13:23:29.885076+08:00 uos-PC kernel: usbcore:hub_configure: hub 1-3:1.0: local power source is good
2026-06-22T13:23:29.885077+08:00 uos-PC kernel: usbcore:hub_configure: hub 1-3:1.0: no over-current condition exists
2026-06-22T13:23:29.885078+08:00 uos-PC kernel: usbcore:link_peers_report: usb 1-3-port1: peered to 2-3-port1
2026-06-22T13:23:29.885079+08:00 uos-PC kernel: usbcore:link_peers_report: usb 1-3-port2: peered to 2-3-port2
2026-06-22T13:23:29.885079+08:00 uos-PC kernel: usbcore:link_peers_report: usb 1-3-port3: peered to 2-3-port3
2026-06-22T13:23:29.885080+08:00 uos-PC kernel: usbcore:link_peers_report: usb 1-3-port4: peered to 2-3-port4
2026-06-22T13:23:29.885088+08:00 uos-PC kernel: xhci_hcd:xhci_update_hub_device: xhci_hcd 0000:04:00.0: xHCI version 100 needs hub TT think time and number of ports
2026-06-22T13:23:29.885089+08:00 uos-PC kernel: xhci_hcd:xhci_update_hub_device: xhci_hcd 0000:04:00.0: Set up configure endpoint for hub device.
2026-06-22T13:23:29.885090+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:29.885090+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.885091+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.885092+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:29.885093+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:29.885094+08:00 uos-PC kernel: usbcore:hub_power_on: hub 1-3:1.0: enabling power on all ports
2026-06-22T13:23:29.889065+08:00 uos-PC kernel: xhci_hcd:process_bulk_intr_td: xhci_hcd 0000:04:00.0: ep 0x81 - asked for 2 bytes, 1 bytes untransferred
2026-06-22T13:23:29.917073+08:00 uos-PC kernel: xhci_hcd:xhci_hub_status_data: xhci_hcd 0000:04:00.0: xhci_hub_status_data: stopping usb1 port polling
2026-06-22T13:23:29.965062+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: Set root hub portnum to 3
2026-06-22T13:23:29.965071+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: Set fake root hub portnum to 3
2026-06-22T13:23:29.965073+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: udev->tt = 0000000000000000
2026-06-22T13:23:29.965073+08:00 uos-PC kernel: xhci_hcd:xhci_setup_addressable_virt_dev: xhci_hcd 0000:04:00.0: udev->ttport = 0x0
2026-06-22T13:23:29.965074+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_address_device bsr 0
2026-06-22T13:23:29.965082+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.965086+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.965087+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 11 comp_code 1
2026-06-22T13:23:29.965089+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful setup address command
2026-06-22T13:23:29.965090+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Op regs DCBAA ptr = 0x000020021cc000
2026-06-22T13:23:29.965090+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Slot ID 8 dcbaa entry @0000000047596e38 = 0x00002014823000
2026-06-22T13:23:29.965091+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Output Context DMA address = 0x2014823000
2026-06-22T13:23:29.965092+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Internal device address = 8
2026-06-22T13:23:29.965093+08:00 uos-PC kernel: usb 2-3.1: new SuperSpeed USB device number 4 using xhci_hcd
2026-06-22T13:23:29.985056+08:00 uos-PC kernel: usbcore:usb_detect_quirks: usb 2-3.1: USB quirks for this device: 0x400
2026-06-22T13:23:29.985064+08:00 uos-PC kernel: usbcore:usb_parse_endpoint: usb 2-3.1: skipped 1 descriptor after endpoint
2026-06-22T13:23:29.985065+08:00 uos-PC kernel: usbcore:usb_parse_endpoint: usb 2-3.1: skipped 1 descriptor after endpoint
2026-06-22T13:23:29.985065+08:00 uos-PC kernel: usbcore:usb_parse_endpoint: usb 2-3.1: skipped 1 descriptor after endpoint
2026-06-22T13:23:29.989079+08:00 uos-PC kernel: usbcore:usb_parse_interface: usb 2-3.1: skipped 3 descriptors after interface
2026-06-22T13:23:29.989086+08:00 uos-PC kernel: usbcore:usb_parse_endpoint: usb 2-3.1: skipped 1 descriptor after endpoint
2026-06-22T13:23:29.989087+08:00 uos-PC kernel: usbcore:usb_parse_endpoint: usb 2-3.1: skipped 1 descriptor after endpoint
2026-06-22T13:23:29.989088+08:00 uos-PC kernel: usbcore:usb_parse_endpoint: usb 2-3.1: skipped 1 descriptor after endpoint
2026-06-22T13:23:29.989089+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.989098+08:00 uos-PC kernel: usbcore:usb_get_langid: usb 2-3.1: default language 0x0409
2026-06-22T13:23:29.989099+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.989100+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.989101+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.989101+08:00 uos-PC kernel: usbcore:usb_new_device: usb 2-3.1: udev 4, busnum 2, minor = 131
2026-06-22T13:23:29.989102+08:00 uos-PC kernel: usb 2-3.1: New USB device found, idVendor=0bda, idProduct=8153, bcdDevice=31.00
2026-06-22T13:23:29.989103+08:00 uos-PC kernel: usb 2-3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=6
2026-06-22T13:23:29.989104+08:00 uos-PC kernel: usb 2-3.1: Product: USB 10/100/1000 LAN
2026-06-22T13:23:29.989105+08:00 uos-PC kernel: usb 2-3.1: Manufacturer: Realtek
2026-06-22T13:23:29.989106+08:00 uos-PC kernel: usb 2-3.1: SerialNumber: 001000001
2026-06-22T13:23:29.989107+08:00 uos-PC kernel: usbcore:usb_probe_device: usb 2-3.1: usb_probe_device
2026-06-22T13:23:29.989108+08:00 uos-PC kernel: usbcore:usb_choose_configuration: usb 2-3.1: configuration #2 chosen from 2 choices
2026-06-22T13:23:29.989109+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/0) [ffffffff/00000000/ffffffff] xhci_add_endpoint
2026-06-22T13:23:29.989110+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x83, slot id 8, new drop flags = 0x0, new add flags = 0x80
2026-06-22T13:23:29.989111+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000b85d7ba3
2026-06-22T13:23:29.989112+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201888f000
2026-06-22T13:23:29.989113+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.989114+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.989115+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:29.989121+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:29.989122+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/1) [200368a000/200368a001/200368a000] xhci_endpoint_reset
2026-06-22T13:23:29.989122+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/1) [200368a000/200368a001/200368a000] queue_stop_endpoint suspend 0
2026-06-22T13:23:29.989123+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.989124+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.989125+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [200368a000/200368a001/200368a000] handle_tx_event comp_code 27 trb_dma 200368a000
2026-06-22T13:23:29.989126+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [200368a000/200368a001/200368a000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:29.989127+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 8 ep 6
2026-06-22T13:23:29.993055+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [200368a000/200368a001/200368a000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:29.993062+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:29.993063+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.993064+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.993064+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:29.993065+08:00 uos-PC kernel: usbcore:usb_set_configuration: usb 2-3.1: adding 2-3.1:2.0 (config #2, interface 0)
2026-06-22T13:23:29.993066+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:29.993072+08:00 uos-PC kernel: usbcore:usb_set_configuration: usb 2-3.1: adding 2-3.1:2.1 (config #2, interface 1)
2026-06-22T13:23:29.993074+08:00 uos-PC kernel: usbcore:hub_event: hub 2-3:1.0: state 7 ports 4 chg 0000 evt 0002
2026-06-22T13:23:29.993074+08:00 uos-PC kernel: usbcore:hub_event: hub 1-3:1.0: state 7 ports 4 chg 0000 evt 0000
2026-06-22T13:23:29.997105+08:00 uos-PC kernel: usbcore:hub_suspend: hub 1-3:1.0: hub_suspend
2026-06-22T13:23:29.997118+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Cancel URB 00000000cd08cff2, dev 3, ep 0x81, starting at offset 0x201fe3b000
2026-06-22T13:23:29.997120+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (000/1) [201fe3b000/201fe3b001/201fe3b010] xhci_urb_dequeue cancel TD at 201fe3b000 stream 0
2026-06-22T13:23:29.997122+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (004/1) [201fe3b000/201fe3b001/201fe3b010] queue_stop_endpoint suspend 0
2026-06-22T13:23:29.997123+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.997124+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.997125+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (004/1) [201fe3b000/201fe3b001/201fe3b010] handle_tx_event comp_code 26 trb_dma 201fe3b000
2026-06-22T13:23:29.997126+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (004/1) [201fe3b000/201fe3b001/201fe3b010] handle_tx_event stream_id 0 trb_len 1 missing 1
2026-06-22T13:23:29.997127+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on Transfer TRB for slot 7 ep 2
2026-06-22T13:23:29.997127+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (004/3) [201fe3b000/201fe3b001/201fe3b010] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:29.997128+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Removing canceled TD starting at 0x201fe3b000 (dma) in stream 0 URB 00000000cd08cff2
2026-06-22T13:23:29.997130+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (004/3) [201fe3b000/201fe3b001/201fe3b010] queue_set_tr_deq stream 0 addr 201fe3b010
2026-06-22T13:23:29.997131+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Set TR Deq ptr 0x201fe3b010, cycle 1
2026-06-22T13:23:29.997132+08:00 uos-PC kernel:
2026-06-22T13:23:29.997133+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:29.997134+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:29.997135+08:00 uos-PC kernel: xhci_hcd:xhci_giveback_invalidated_tds: xhci_hcd 0000:04:00.0: xhci_giveback_invalidated_tds: Keep cancelled URB 00000000cd08cff2 TD as cancel_status is 2
2026-06-22T13:23:29.997136+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (001/3) [201fe3b000/201fe3b011/201fe3b010] handle_cmd_completion cmd_type 16 comp_code 1
2026-06-22T13:23:29.997137+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Set TR Deq Ptr cmd, deq = @201fe3b010
2026-06-22T13:23:29.997138+08:00 uos-PC kernel: xhci_hcd:xhci_handle_cmd_set_deq: xhci_hcd 0000:04:00.0: xhci_handle_cmd_set_deq: Giveback cancelled URB 00000000cd08cff2 TD
2026-06-22T13:23:29.997139+08:00 uos-PC kernel: xhci_hcd:xhci_td_cleanup: xhci_hcd 0000:04:00.0: Giveback URB 00000000cd08cff2, len = 0, expected = 1, status = -115
2026-06-22T13:23:29.997140+08:00 uos-PC kernel: xhci_hcd:xhci_handle_cmd_set_deq: xhci_hcd 0000:04:00.0: xhci_handle_cmd_set_deq: All TDs cleared, ring doorbell
2026-06-22T13:23:30.009063+08:00 uos-PC kernel: usbcore: registered new device driver r8152-cfgselector
2026-06-22T13:23:30.009070+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 2-3.1: unregistering interface 2-3.1:2.0
2026-06-22T13:23:30.009071+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 2-3.1: unregistering interface 2-3.1:2.1
2026-06-22T13:23:30.009072+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 2-3.1: usb_disable_device nuking non-ep0 URBs
2026-06-22T13:23:30.009073+08:00 uos-PC kernel: xhci_hcd:xhci_drop_endpoint: xhci_hcd 0000:04:00.0: xhci_drop_endpoint called for udev 00000000b85d7ba3
2026-06-22T13:23:30.009073+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/1) [200368a000/200368a001/200368a000] xhci_drop_endpoint ctx_state 1 td_num 0
2026-06-22T13:23:30.009083+08:00 uos-PC kernel: xhci_hcd:xhci_drop_endpoint: xhci_hcd 0000:04:00.0: drop ep 0x83, slot id 8, new drop flags = 0x80, new add flags = 0x0
2026-06-22T13:23:30.009084+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000b85d7ba3
2026-06-22T13:23:30.009085+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201888f000
2026-06-22T13:23:30.009086+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.009087+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.009088+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.009088+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:30.009089+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000b85d7ba3
2026-06-22T13:23:30.009090+08:00 uos-PC kernel: usbcore:usb_probe_device: r8152-cfgselector 2-3.1: usb_probe_device
2026-06-22T13:23:30.009091+08:00 uos-PC kernel: usbcore:usb_choose_configuration: r8152-cfgselector 2-3.1: configuration #2 chosen from 2 choices
2026-06-22T13:23:30.009092+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/0) [ffffffff/200368a001/ffffffff] xhci_add_endpoint
2026-06-22T13:23:30.009093+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x83, slot id 8, new drop flags = 0x0, new add flags = 0x81
2026-06-22T13:23:30.009095+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000b85d7ba3
2026-06-22T13:23:30.009095+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201888f000
2026-06-22T13:23:30.009096+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.009097+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.013064+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/0 (000/1) [202182f480/202182f031/202182f480] queue_stop_endpoint suspend 1
2026-06-22T13:23:30.013070+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.013071+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.013071+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.013072+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:30.013073+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/1) [200368a000/200368a001/200368a000] xhci_endpoint_reset
2026-06-22T13:23:30.013074+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/1) [200368a000/200368a001/200368a000] queue_stop_endpoint suspend 0
2026-06-22T13:23:30.013074+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.013076+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.013076+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/0 (000/3) [202182f480/202182f481/202182f480] handle_tx_event comp_code 27 trb_dma 202182f480
2026-06-22T13:23:30.013077+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/0 (000/3) [202182f480/202182f481/202182f480] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:30.013078+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 7 ep 0
2026-06-22T13:23:30.013079+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/0 (000/3) [202182f480/202182f481/202182f480] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:30.013079+08:00 uos-PC kernel: xhci_hcd:xhci_set_link_state: xhci_hcd 0000:04:00.0: Set port 1-3 link state, portsc: 0xe03, write 0x10e61
2026-06-22T13:23:30.013080+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [200368a000/200368a001/200368a000] handle_tx_event comp_code 27 trb_dma 200368a000
2026-06-22T13:23:30.013081+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [200368a000/200368a001/200368a000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:30.013082+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 8 ep 6
2026-06-22T13:23:30.013084+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [200368a000/200368a001/200368a000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:30.013091+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:30.013093+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.013093+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.013094+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.013095+08:00 uos-PC kernel: usbcore:usb_set_configuration: r8152-cfgselector 2-3.1: adding 2-3.1:2.0 (config #2, interface 0)
2026-06-22T13:23:30.013096+08:00 uos-PC kernel: usbcore:usb_set_configuration: r8152-cfgselector 2-3.1: adding 2-3.1:2.1 (config #2, interface 1)
2026-06-22T13:23:30.013096+08:00 uos-PC kernel: usbcore:usb_disable_device: r8152-cfgselector 2-3.1: unregistering interface 2-3.1:2.0
2026-06-22T13:23:30.013097+08:00 uos-PC kernel: usbcore:usb_disable_device: r8152-cfgselector 2-3.1: unregistering interface 2-3.1:2.1
2026-06-22T13:23:30.013098+08:00 uos-PC kernel: usbcore:usb_disable_device: r8152-cfgselector 2-3.1: usb_disable_device nuking non-ep0 URBs
2026-06-22T13:23:30.013099+08:00 uos-PC kernel: xhci_hcd:xhci_drop_endpoint: xhci_hcd 0000:04:00.0: xhci_drop_endpoint called for udev 00000000b85d7ba3
2026-06-22T13:23:30.013099+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/1) [200368a000/200368a001/200368a000] xhci_drop_endpoint ctx_state 1 td_num 0
2026-06-22T13:23:30.013100+08:00 uos-PC kernel: xhci_hcd:xhci_drop_endpoint: xhci_hcd 0000:04:00.0: drop ep 0x83, slot id 8, new drop flags = 0x80, new add flags = 0x0
2026-06-22T13:23:30.013101+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000b85d7ba3
2026-06-22T13:23:30.013102+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201888f000
2026-06-22T13:23:30.013104+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.013105+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.017056+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.017059+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:30.017059+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (000/0) [ffffffff/00000000/ffffffff] xhci_add_endpoint
2026-06-22T13:23:30.017060+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x81, slot id 8, new drop flags = 0x0, new add flags = 0x8
2026-06-22T13:23:30.017061+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (000/0) [ffffffff/00000000/ffffffff] xhci_add_endpoint
2026-06-22T13:23:30.017065+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x2, slot id 8, new drop flags = 0x0, new add flags = 0x18
2026-06-22T13:23:30.017066+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/0) [ffffffff/200368a001/ffffffff] xhci_add_endpoint
2026-06-22T13:23:30.017067+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x83, slot id 8, new drop flags = 0x0, new add flags = 0x98
2026-06-22T13:23:30.017069+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000b85d7ba3
2026-06-22T13:23:30.017070+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201888f000
2026-06-22T13:23:30.017070+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.017071+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.017072+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.017072+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:30.017073+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (000/1) [200368a000/200368a001/200368a000] xhci_endpoint_reset
2026-06-22T13:23:30.017074+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (080/1) [200368a000/200368a001/200368a000] queue_stop_endpoint suspend 0
2026-06-22T13:23:30.017075+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.017076+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.017076+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (080/3) [200368a000/200368a001/200368a000] handle_tx_event comp_code 27 trb_dma 200368a000
2026-06-22T13:23:30.017077+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (080/3) [200368a000/200368a001/200368a000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:30.017083+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 8 ep 2
2026-06-22T13:23:30.017084+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (080/3) [200368a000/200368a001/200368a000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:30.017085+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:30.017086+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.017086+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.021061+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.021066+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (000/1) [20119e9000/20119e9001/20119e9000] xhci_endpoint_reset
2026-06-22T13:23:30.021066+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (080/1) [20119e9000/20119e9001/20119e9000] queue_stop_endpoint suspend 0
2026-06-22T13:23:30.021067+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.021068+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.021069+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (080/3) [20119e9000/20119e9001/20119e9000] handle_tx_event comp_code 27 trb_dma 20119e9000
2026-06-22T13:23:30.021069+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (080/3) [20119e9000/20119e9001/20119e9000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:30.021070+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 8 ep 3
2026-06-22T13:23:30.021071+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (080/3) [20119e9000/20119e9001/20119e9000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:30.021072+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:30.021073+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.021074+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.021074+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.021075+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/1) [2014f4d000/2014f4d001/2014f4d000] xhci_endpoint_reset
2026-06-22T13:23:30.021076+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/1) [2014f4d000/2014f4d001/2014f4d000] queue_stop_endpoint suspend 0
2026-06-22T13:23:30.021077+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.021078+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.021079+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [2014f4d000/2014f4d001/2014f4d000] handle_tx_event comp_code 27 trb_dma 2014f4d000
2026-06-22T13:23:30.021079+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [2014f4d000/2014f4d001/2014f4d000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:30.021080+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 8 ep 6
2026-06-22T13:23:30.021081+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [2014f4d000/2014f4d001/2014f4d000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:30.021082+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:30.021083+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.021083+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.025072+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.025078+08:00 uos-PC kernel: usbcore:usb_set_configuration: r8152-cfgselector 2-3.1: adding 2-3.1:1.0 (config #1, interface 0)
2026-06-22T13:23:30.025079+08:00 uos-PC kernel: usbcore:usb_probe_interface: r8152 2-3.1:1.0: usb_probe_interface
2026-06-22T13:23:30.025079+08:00 uos-PC kernel: usbcore:usb_probe_interface: r8152 2-3.1:1.0: usb_probe_interface - got id
2026-06-22T13:23:30.033050+08:00 uos-PC kernel: usbcore:usb_port_suspend: usb 1-3: usb auto-suspend, wakeup 1
2026-06-22T13:23:30.033054+08:00 uos-PC kernel: xhci_hcd:process_bulk_intr_td: xhci_hcd 0000:04:00.0: ep 0x81 - asked for 2 bytes, 1 bytes untransferred
2026-06-22T13:23:30.033055+08:00 uos-PC kernel: usbcore:hub_event: hub 2-3:1.0: state 7 ports 4 chg 0000 evt 0002
2026-06-22T13:23:30.113061+08:00 uos-PC kernel: xhci_hcd:xhci_discover_or_reset_device: xhci_hcd 0000:04:00.0: Resetting device with slot ID 8
2026-06-22T13:23:30.113070+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_reset_device
2026-06-22T13:23:30.113071+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.113071+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.113072+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 17 comp_code 1
2026-06-22T13:23:30.113073+08:00 uos-PC kernel: xhci_hcd:xhci_handle_cmd_reset_dev: xhci_hcd 0000:04:00.0: Completed reset device command.
2026-06-22T13:23:30.113081+08:00 uos-PC kernel: xhci_hcd:xhci_discover_or_reset_device: xhci_hcd 0000:04:00.0: Successful reset device command.
2026-06-22T13:23:30.113082+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_address_device bsr 0
2026-06-22T13:23:30.113083+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.113084+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.113085+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 11 comp_code 1
2026-06-22T13:23:30.113085+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful setup address command
2026-06-22T13:23:30.113086+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Op regs DCBAA ptr = 0x000020021cc000
2026-06-22T13:23:30.113087+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Slot ID 8 dcbaa entry @0000000047596e38 = 0x00002014823000
2026-06-22T13:23:30.113088+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Output Context DMA address = 0x2014823000
2026-06-22T13:23:30.113088+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Internal device address = 8
2026-06-22T13:23:30.113089+08:00 uos-PC kernel: r8152-cfgselector 2-3.1: reset SuperSpeed USB device number 4 using xhci_hcd
2026-06-22T13:23:30.133059+08:00 uos-PC kernel: usbcore:usb_detect_quirks: r8152-cfgselector 2-3.1: USB quirks for this device: 0x400
2026-06-22T13:23:30.133065+08:00 uos-PC kernel: xhci_hcd:process_ctrl_td: xhci_hcd 0000:04:00.0: Waiting for status stage event
2026-06-22T13:23:30.133066+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (000/0) [ffffffff/200368a001/ffffffff] xhci_add_endpoint
2026-06-22T13:23:30.133067+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x81, slot id 8, new drop flags = 0x0, new add flags = 0x8
2026-06-22T13:23:30.133068+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (000/0) [ffffffff/20119e9001/ffffffff] xhci_add_endpoint
2026-06-22T13:23:30.133068+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x2, slot id 8, new drop flags = 0x0, new add flags = 0x18
2026-06-22T13:23:30.133069+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/0) [ffffffff/2014f4d001/ffffffff] xhci_add_endpoint
2026-06-22T13:23:30.133077+08:00 uos-PC kernel: xhci_hcd:xhci_add_endpoint: xhci_hcd 0000:04:00.0: add ep 0x83, slot id 8, new drop flags = 0x0, new add flags = 0x98
2026-06-22T13:23:30.133078+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000b85d7ba3
2026-06-22T13:23:30.133079+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201888f000
2026-06-22T13:23:30.133080+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.133080+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.137061+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.137067+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:30.137068+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (000/1) [2014f4d000/2014f4d001/2014f4d000] xhci_endpoint_reset
2026-06-22T13:23:30.137069+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (080/1) [2014f4d000/2014f4d001/2014f4d000] queue_stop_endpoint suspend 0
2026-06-22T13:23:30.137070+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.137071+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.137078+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (080/3) [2014f4d000/2014f4d001/2014f4d000] handle_tx_event comp_code 27 trb_dma 2014f4d000
2026-06-22T13:23:30.137079+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (080/3) [2014f4d000/2014f4d001/2014f4d000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:30.137080+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 8 ep 2
2026-06-22T13:23:30.137081+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/2 (080/3) [2014f4d000/2014f4d001/2014f4d000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:30.137082+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:30.137082+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.137083+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.137084+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.137085+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (000/1) [20119e9000/20119e9001/20119e9000] xhci_endpoint_reset
2026-06-22T13:23:30.137085+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (080/1) [20119e9000/20119e9001/20119e9000] queue_stop_endpoint suspend 0
2026-06-22T13:23:30.137086+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.137087+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.137088+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (080/3) [20119e9000/20119e9001/20119e9000] handle_tx_event comp_code 27 trb_dma 20119e9000
2026-06-22T13:23:30.137088+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (080/3) [20119e9000/20119e9001/20119e9000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:30.137089+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 8 ep 3
2026-06-22T13:23:30.141060+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/3 (080/3) [20119e9000/20119e9001/20119e9000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:30.141066+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:30.141067+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.141068+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.141068+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.141069+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/1) [200368a000/200368a001/200368a000] xhci_endpoint_reset
2026-06-22T13:23:30.141076+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/1) [200368a000/200368a001/200368a000] queue_stop_endpoint suspend 0
2026-06-22T13:23:30.141078+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.141079+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.141079+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [200368a000/200368a001/200368a000] handle_tx_event comp_code 27 trb_dma 200368a000
2026-06-22T13:23:30.141080+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [200368a000/200368a001/200368a000] handle_tx_event stream_id 0 trb_len 0 missing 0
2026-06-22T13:23:30.141081+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stopped on No-op or Link TRB for slot 8 ep 6
2026-06-22T13:23:30.141081+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (080/3) [200368a000/200368a001/200368a000] handle_cmd_completion cmd_type 15 comp_code 1
2026-06-22T13:23:30.141082+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 201fe43000
2026-06-22T13:23:30.141083+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.141084+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.141085+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:30.209052+08:00 uos-PC kernel: r8152 2-3.1:1.0: load rtl8153b-2 v2 04/27/23 successfully
2026-06-22T13:23:30.269062+08:00 uos-PC kernel: r8152 2-3.1:1.0 eth0: v1.12.13
2026-06-22T13:23:30.269079+08:00 uos-PC kernel: usbcore: registered new interface driver r8152
2026-06-22T13:23:30.273085+08:00 uos-PC kernel: usbcore: registered new interface driver cdc_ether
2026-06-22T13:23:30.277075+08:00 uos-PC kernel: usbcore: registered new interface driver r8153_ecm
2026-06-22T13:23:30.285111+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (000/2) [200ca193b0/200ca193c0/200ca193e0] handle_tx_event comp_code 6 trb_dma 200ca193c0
2026-06-22T13:23:30.285123+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (000/2) [200ca193b0/200ca193c0/200ca193e0] handle_tx_event stream_id 0 trb_len 1024 missing 1024
2026-06-22T13:23:30.285125+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stalled endpoint for slot 8 ep 0
2026-06-22T13:23:30.285128+08:00 uos-PC kernel: xhci_hcd:xhci_reset_halted_ep: xhci_hcd 0000:04:00.0: Hard-reset ep 0, slot 8
2026-06-22T13:23:30.285129+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (040/2) [200ca193b0/200ca193c0/200ca193e0] queue_reset_endpoint tsp 0
2026-06-22T13:23:30.285130+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.285131+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.285132+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (042/3) [200ca193b0/200ca193c0/200ca193e0] handle_cmd_completion cmd_type 14 comp_code 1
2026-06-22T13:23:30.285133+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Ignoring reset ep completion code of 1
2026-06-22T13:23:30.285134+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Removing canceled TD starting at 0x200ca193b0 (dma) in stream 0 URB 00000000f32725a0
2026-06-22T13:23:30.285135+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (042/3) [200ca193b0/200ca193c0/200ca193e0] queue_set_tr_deq stream 0 addr 200ca193e0
2026-06-22T13:23:30.285137+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Set TR Deq ptr 0x200ca193e0, cycle 0
2026-06-22T13:23:30.285138+08:00 uos-PC kernel:
2026-06-22T13:23:30.285149+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.285151+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.285152+08:00 uos-PC kernel: xhci_hcd:xhci_giveback_invalidated_tds: xhci_hcd 0000:04:00.0: xhci_giveback_invalidated_tds: Keep cancelled URB 00000000f32725a0 TD as cancel_status is 2
2026-06-22T13:23:30.285154+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (041/3) [200ca193b0/200ca193e0/200ca193e0] handle_cmd_completion cmd_type 16 comp_code 1
2026-06-22T13:23:30.285155+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Set TR Deq Ptr cmd, deq = @200ca193e0
2026-06-22T13:23:30.285156+08:00 uos-PC kernel: xhci_hcd:xhci_handle_cmd_set_deq: xhci_hcd 0000:04:00.0: xhci_handle_cmd_set_deq: Giveback cancelled URB 00000000f32725a0 TD
2026-06-22T13:23:30.285157+08:00 uos-PC kernel: xhci_hcd:xhci_td_cleanup: xhci_hcd 0000:04:00.0: Giveback URB 00000000f32725a0, len = 0, expected = 1024, status = -32
2026-06-22T13:23:30.285157+08:00 uos-PC kernel: xhci_hcd:xhci_handle_cmd_set_deq: xhci_hcd 0000:04:00.0: xhci_handle_cmd_set_deq: All TDs cleared, ring doorbell
2026-06-22T13:23:30.301070+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (040/3) [200ca193e0/200ca193e0/200ca19410] ring_ep_doorbell stream 0
2026-06-22T13:23:30.301079+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (040/2) [200ca193e0/200ca193f0/200ca19410] handle_tx_event comp_code 6 trb_dma 200ca193f0
2026-06-22T13:23:30.301080+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (040/2) [200ca193e0/200ca193f0/200ca19410] handle_tx_event stream_id 0 trb_len 1024 missing 1024
2026-06-22T13:23:30.301081+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Stalled endpoint for slot 8 ep 0
2026-06-22T13:23:30.301082+08:00 uos-PC kernel: xhci_hcd:xhci_reset_halted_ep: xhci_hcd 0000:04:00.0: Hard-reset ep 0, slot 8
2026-06-22T13:23:30.301083+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (040/2) [200ca193e0/200ca193f0/200ca19410] queue_reset_endpoint tsp 0
2026-06-22T13:23:30.301086+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.301087+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.301090+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (042/3) [200ca193e0/200ca193f0/200ca19410] handle_cmd_completion cmd_type 14 comp_code 1
2026-06-22T13:23:30.301091+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Ignoring reset ep completion code of 1
2026-06-22T13:23:30.301092+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Removing canceled TD starting at 0x200ca193e0 (dma) in stream 0 URB 00000000f32725a0
2026-06-22T13:23:30.301093+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (042/3) [200ca193e0/200ca193f0/200ca19410] queue_set_tr_deq stream 0 addr 200ca19410
2026-06-22T13:23:30.301094+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Set TR Deq ptr 0x200ca19410, cycle 0
2026-06-22T13:23:30.301096+08:00 uos-PC kernel:
2026-06-22T13:23:30.301097+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:30.301098+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:30.301099+08:00 uos-PC kernel: xhci_hcd:xhci_giveback_invalidated_tds: xhci_hcd 0000:04:00.0: xhci_giveback_invalidated_tds: Keep cancelled URB 00000000f32725a0 TD as cancel_status is 2
2026-06-22T13:23:30.301100+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (041/3) [200ca193e0/200ca19410/200ca19410] handle_cmd_completion cmd_type 16 comp_code 1
2026-06-22T13:23:30.301101+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Set TR Deq Ptr cmd, deq = @200ca19410
2026-06-22T13:23:30.301102+08:00 uos-PC kernel: xhci_hcd:xhci_handle_cmd_set_deq: xhci_hcd 0000:04:00.0: xhci_handle_cmd_set_deq: Giveback cancelled URB 00000000f32725a0 TD
2026-06-22T13:23:30.301103+08:00 uos-PC kernel: xhci_hcd:xhci_td_cleanup: xhci_hcd 0000:04:00.0: Giveback URB 00000000f32725a0, len = 0, expected = 1024, status = -32
2026-06-22T13:23:30.301104+08:00 uos-PC kernel: xhci_hcd:xhci_handle_cmd_set_deq: xhci_hcd 0000:04:00.0: xhci_handle_cmd_set_deq: All TDs cleared, ring doorbell
2026-06-22T13:23:30.309070+08:00 uos-PC kernel: r8152 2-3.1:1.0 enx2c16dba85d18: renamed from eth0
2026-06-22T13:23:30.345066+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/0 (040/3) [200ca19410/200ca19410/200ca19440] ring_ep_doorbell stream 0
2026-06-22T13:23:39.445959+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: Port change event, 1-3, id 7, portsc: 0x202a0
2026-06-22T13:23:39.445974+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: handle_port_status: starting usb1 port polling.
2026-06-22T13:23:39.445980+08:00 uos-PC kernel: usbcore:hub_event: hub 1-0:1.0: state 7 ports 4 chg 0000 evt 0008
2026-06-22T13:23:39.445989+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x202a0, return 0x10100
2026-06-22T13:23:39.449065+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 connect change, portsc: 0x2a0
2026-06-22T13:23:39.449074+08:00 uos-PC kernel: usbcore:hub_port_connect_change: usb usb1-port3: status 0100, change 0001, 12 Mb/s
2026-06-22T13:23:39.449078+08:00 uos-PC kernel: usb 1-3: USB disconnect, device number 6
2026-06-22T13:23:39.449085+08:00 uos-PC kernel: usbcore:usb_disconnect: usb 1-3: unregistering device
2026-06-22T13:23:39.449087+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-3: unregistering interface 1-3:1.0
2026-06-22T13:23:39.449087+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-3: usb_disable_device nuking all URBs
2026-06-22T13:23:39.449088+08:00 uos-PC kernel: xhci_hcd:xhci_drop_endpoint: xhci_hcd 0000:04:00.0: xhci_drop_endpoint called for udev 00000000ec865509
2026-06-22T13:23:39.449089+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/2 (000/3) [201fe3b010/201fe3b011/201fe3b010] xhci_drop_endpoint ctx_state 3 td_num 0
2026-06-22T13:23:39.449090+08:00 uos-PC kernel: xhci_hcd:xhci_drop_endpoint: xhci_hcd 0000:04:00.0: drop ep 0x81, slot id 7, new drop flags = 0x8, new add flags = 0x0
2026-06-22T13:23:39.449092+08:00 uos-PC kernel: xhci_hcd:xhci_check_bandwidth: xhci_hcd 0000:04:00.0: xhci_check_bandwidth called for udev 00000000ec865509
2026-06-22T13:23:39.449093+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_configure_endpoint in_ctx 2006f06000
2026-06-22T13:23:39.449094+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:39.449095+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:39.449096+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: Port change event, 2-3, id 3, portsc: 0x202c0
2026-06-22T13:23:39.449097+08:00 uos-PC kernel: xhci_hcd:handle_port_status: xhci_hcd 0000:04:00.0: handle_port_status: starting usb2 port polling.
2026-06-22T13:23:39.449098+08:00 uos-PC kernel: usbcore:hub_event: hub 2-0:1.0: state 7 ports 4 chg 0000 evt 0008
2026-06-22T13:23:39.449104+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-3 read: 0x202c0, return 0x102c0
2026-06-22T13:23:39.449105+08:00 uos-PC kernel: xhci_hcd:xhci_clear_port_change_bit: xhci_hcd 0000:04:00.0: clear port3 connect change, portsc: 0x2c0
2026-06-22T13:23:39.449105+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 12 comp_code 1
2026-06-22T13:23:39.449107+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Successful Endpoint Configure command
2026-06-22T13:23:39.449108+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] queue_disable_slot
2026-06-22T13:23:39.449108+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:39.449110+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:39.449111+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 7/-1 (fff/f) [ffffffff/ffffffff/ffffffff] handle_cmd_completion cmd_type 10 comp_code 1
2026-06-22T13:23:39.449112+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2a0, return 0x100
2026-06-22T13:23:39.457060+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/2) [200cb341b0/200cb341b1/200cb341c0] handle_tx_event comp_code 4 trb_dma 200cb341b0
2026-06-22T13:23:39.457070+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/2) [200cb341b0/200cb341b1/200cb341c0] handle_tx_event stream_id 0 trb_len 2 missing 2
2026-06-22T13:23:39.457071+08:00 uos-PC kernel: xhci_hcd:handle_tx_event: xhci_hcd 0000:04:00.0: Transfer error for slot 8 ep 6 on endpoint
2026-06-22T13:23:39.457072+08:00 uos-PC kernel: xhci_hcd:xhci_reset_halted_ep: xhci_hcd 0000:04:00.0: Soft-reset ep 6, slot 8
2026-06-22T13:23:39.457072+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/2) [200cb341b0/200cb341b1/200cb341c0] queue_reset_endpoint tsp 1
2026-06-22T13:23:39.457073+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:39.457074+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:39.457082+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (002/3) [200cb341b0/200cb341b1/200cb341c0] handle_cmd_completion cmd_type 14 comp_code 1
2026-06-22T13:23:39.457084+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Ignoring reset ep completion code of 1
2026-06-22T13:23:39.457084+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/3) [200cb341b0/200cb341b1/200cb341c0] ring_ep_doorbell stream 0
2026-06-22T13:23:39.477064+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 2-3 read: 0x2a0, return 0x2a0
2026-06-22T13:23:39.477069+08:00 uos-PC kernel: usbcore:port_event: usb usb2-port3: Wait for inactive link disconnect detect
2026-06-22T13:23:39.477070+08:00 uos-PC kernel: usbcore:hub_port_connect_change: usb usb2-port3: status 02a0, change 0001, 5.0 Gb/s
2026-06-22T13:23:39.477071+08:00 uos-PC kernel: usb 2-3: USB disconnect, device number 3
2026-06-22T13:23:39.477071+08:00 uos-PC kernel: r8152-cfgselector 2-3.1: USB disconnect, device number 4
2026-06-22T13:23:39.477072+08:00 uos-PC kernel: usbcore:usb_disconnect: r8152-cfgselector 2-3.1: unregistering device
2026-06-22T13:23:39.477079+08:00 uos-PC kernel: usbcore:usb_disable_device: r8152-cfgselector 2-3.1: unregistering interface 2-3.1:1.0
2026-06-22T13:23:39.477080+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Cancel URB 000000005c134e45, dev 3.1, ep 0x83, starting at offset 0x200cb341b0
2026-06-22T13:23:39.477082+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (000/3) [200cb341b0/200cb341b1/200cb341c0] xhci_urb_dequeue cancel TD at 200cb341b0 stream 0
2026-06-22T13:23:39.477082+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 8/6 (004/3) [200cb341b0/200cb341b1/200cb341c0] queue_stop_endpoint suspend 0
2026-06-22T13:23:39.477083+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: 0/-1 (fff/f) [ffffffff/ffffffff/ffffffff] xhci_ring_cmd_db cmd_ring_state 1
2026-06-22T13:23:39.477084+08:00 uos-PC kernel: xhci_hcd:xhci_ring_cmd_db: xhci_hcd 0000:04:00.0: // Ding dong!
2026-06-22T13:23:39.477085+08:00 uos-PC kernel: usbcore:usb_hcd_flush_endpoint: xhci_hcd 0000:04:00.0: shutdown urb 000000005c134e45 ep3in-intr
2026-06-22T13:23:39.489048+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2a0, return 0x100
2026-06-22T13:23:39.525050+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2a0, return 0x100
2026-06-22T13:23:39.561050+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2a0, return 0x100
2026-06-22T13:23:39.581068+08:00 uos-PC kernel: xhci_hcd:xhci_hub_status_data: xhci_hcd 0000:04:00.0: xhci_hub_status_data: stopping usb2 port polling
2026-06-22T13:23:39.581073+08:00 uos-PC kernel: xhci_hcd:xhci_hub_status_data: xhci_hcd 0000:04:00.0: xhci_hub_status_data: stopping usb1 port polling
2026-06-22T13:23:39.597050+08:00 uos-PC kernel: xhci_hcd:xhci_hub_control: xhci_hcd 0000:04:00.0: Get port status 1-3 read: 0x2a0, return 0x100
2026-06-22T13:23:39.597055+08:00 uos-PC kernel: usbcore:hub_port_debounce: usb usb1-port3: debounce total 100ms stable 100ms status 0x100
2026-06-22T13:23:44.565110+08:00 uos-PC kernel: xhci_hcd:xhci_handle_command_timeout: xhci_hcd 0000:04:00.0: Command timeout, USBSTS: 0x00000000
2026-06-22T13:23:44.565132+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: xHCI host not responding to stop endpoint command
2026-06-22T13:23:44.565133+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: // Halt the HC
2026-06-22T13:23:44.565134+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: xHCI host controller not responding, assume dead
2026-06-22T13:23:44.565135+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 1, ep index 0
2026-06-22T13:23:44.565136+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 1, ep index 2
2026-06-22T13:23:44.565137+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 2, ep index 0
2026-06-22T13:23:44.565138+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 2, ep index 2
2026-06-22T13:23:44.565139+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 3, ep index 0
2026-06-22T13:23:44.565149+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 3, ep index 2
2026-06-22T13:23:44.565150+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 4, ep index 0
2026-06-22T13:23:44.565152+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 4, ep index 2
2026-06-22T13:23:44.565165+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 5, ep index 0
2026-06-22T13:23:44.565167+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 5, ep index 2
2026-06-22T13:23:44.565168+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 5, ep index 4
2026-06-22T13:23:44.565169+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 6, ep index 0
2026-06-22T13:23:44.565170+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 6, ep index 2
2026-06-22T13:23:44.565172+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 8, ep index 0
2026-06-22T13:23:44.565173+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 8, ep index 2
2026-06-22T13:23:44.565174+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 8, ep index 3
2026-06-22T13:23:44.565174+08:00 uos-PC kernel: xhci_hcd:xhci_dbg_trace: xhci_hcd 0000:04:00.0: Killing URBs for slot ID 8, ep index 6
2026-06-22T13:23:44.565176+08:00 uos-PC kernel: xhci_hcd 0000:04:00.0: HC died; cleaning up
2026-06-22T13:23:44.565177+08:00 uos-PC kernel: r8152 2-3.1:1.0 enx2c16dba85d18: Stop submitting intr, status -108
2026-06-22T13:23:44.565178+08:00 uos-PC kernel: usbcore:hub_event: hub 1-0:1.0: state 0 ports 4 chg 0000 evt 0000
2026-06-22T13:23:44.565178+08:00 uos-PC kernel: usb 1-1: USB disconnect, device number 2
2026-06-22T13:23:44.565180+08:00 uos-PC kernel: usb 1-1.3: USB disconnect, device number 4
2026-06-22T13:23:44.565180+08:00 uos-PC kernel: usbcore:usb_disconnect: usb 1-1.3: unregistering device
2026-06-22T13:23:44.565181+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-1.3: unregistering interface 1-1.3:1.0
2026-06-22T13:23:44.637078+08:00 uos-PC kernel: usbcore:usb_disable_device: r8152-cfgselector 2-3.1: usb_disable_device nuking all URBs
2026-06-22T13:23:44.637093+08:00 uos-PC kernel: usbcore:usb_disconnect: usb 2-3: unregistering device
2026-06-22T13:23:44.637095+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 2-3: unregistering interface 2-3:1.0
2026-06-22T13:23:44.637096+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 2-3: usb_disable_device nuking all URBs
2026-06-22T13:23:44.637097+08:00 uos-PC kernel: usbcore:hub_event: hub 2-0:1.0: state 0 ports 4 chg 0000 evt 0000
2026-06-22T13:23:44.637098+08:00 uos-PC kernel: usb 2-2: USB disconnect, device number 2
2026-06-22T13:23:44.637099+08:00 uos-PC kernel: usbcore:usb_disconnect: usb 2-2: unregistering device
2026-06-22T13:23:44.637108+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 2-2: unregistering interface 2-2:1.0
2026-06-22T13:23:44.637192+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 2-2: usb_disable_device nuking all URBs
2026-06-22T13:23:44.669064+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-1.3: usb_disable_device nuking all URBs
2026-06-22T13:23:44.669075+08:00 uos-PC kernel: usbcore:usb_disconnect: usb 1-1: unregistering device
2026-06-22T13:23:44.669076+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-1: unregistering interface 1-1:1.0
2026-06-22T13:23:44.669077+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-1: usb_disable_device nuking all URBs
2026-06-22T13:23:44.669079+08:00 uos-PC kernel: usb 1-2: USB disconnect, device number 3
2026-06-22T13:23:44.669081+08:00 uos-PC kernel: usbcore:usb_disconnect: usb 1-2: unregistering device
2026-06-22T13:23:44.669082+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-2: unregistering interface 1-2:1.0
2026-06-22T13:23:44.669083+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-2: usb_disable_device nuking all URBs
2026-06-22T13:23:44.669084+08:00 uos-PC kernel: usb 1-4: USB disconnect, device number 5
2026-06-22T13:23:44.669085+08:00 uos-PC kernel: usbcore:usb_disconnect: usb 1-4: unregistering device
2026-06-22T13:23:44.669085+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-4: unregistering interface 1-4:1.0
2026-06-22T13:23:44.797059+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-4: unregistering interface 1-4:1.1
2026-06-22T13:23:44.981134+08:00 uos-PC kernel: usbcore:usb_disable_device: usb 1-4: usb_disable_device nuking all URBs
----- dmesg end -----

Thanks,
Xu Rao

^ permalink raw reply

* Re: [PATCH] inflate max_tt_usecs and implement sitd backpointers
From: Brent Page @ 2026-06-22  5:43 UTC (permalink / raw)
  To: Alan Stern; +Cc: linux-usb
In-Reply-To: <0c2fc88b-eec8-4267-b6df-99c62f4d5229@rowland.harvard.edu>

---
> You mean six 0xff bytes followed by four 0x00 bytes, right?
Yes

> Why is this?  What goes wrong?  That sort of issue should never arise.
Now, the test results are as follows:
Setup 3:
- configure the "main" (1023-byte-endpoint full-speed iso-in) peripheral to
  send nine 0xff bytes followed by one 0x00 byte 100 times per transfer
- plug the main peripheral into a four-port USB 2 hub that plugs in to a
  computer's USB 2 port.  Don't plug anything else into the hub.
- for both bInterval=1 and 2, there's a good data link between the peripheral
  and the computer
  - I see a bit error in the last word of each transfer; it's typically 1101
    or 1110 instead of 1111, but I see these for USB 3 ports as well.  Maybe a
    ferrite bead on the peripheral would help?  That's the only error I see in
    the data link.
Setup 4:
- same data as for Setup 3
- also plug a high-speed webcam into the four-port hub
- bInterval=2: both the "main" peripheral and the webcam work well
- bInterval=1: ~50% of the raster scan lines in the webcam's stream are blank.
  The main peripheral's data link remains good (same near-optimal quality as
  for Setup 3).
Setup 5:
- same data for the main peripheral as in Setups 3 and 4.
- in addition to the main peripheral, plug in a full-speed HID with an 8-byte
  interrupt endpoint to the four-port hub
- bInterval=1: the HID doesn't work
- bInterval=2: two interrupt full-speed HIDs work well alongside the main
  peripheral.  Would it make sense if the first time plugging one in has a
  50% success rate (presumably if it fortuitously gets scheduled for the
  free frame) and all subsequent unplug/replug events work after the first
  successful one?  Seems like that might be the case.
Setup 1:
- repeating from my previous email
- configure the main peripheral to send five 0xff bytes followed by five 0x00
  bytes 100 times per transfer
- plug in the main peripheral, two full-speed HIDs, and the high-speed webcam
  into the four-port hub
- bInterval=1 and bInterval=2: everything works great.  Considering that this
  worked even before I fixed up the patch, it doesn't depend on backpointers at
  all.

So, the patch improves things (it can do a data stream from the main peripheral
with 90% ones through the four-port hub.  Without the patch, only 50% ones is
possible), but isn't perfect.  One change that's necessary for the patch to work
is in scan_isoc, which now doesn't consider an sitd to be expired until it is
three frames in the past.  Looking through the history of ehci-sched, I see
that sitds originally were considered expired if they were a single frame in
the past.  Then, commit 22e1869 changed this to two frames in the past to
accommodate some aberrant HW.  This current backpointer patch allows sitds to
complete one frame after they appear in the queue as a matter of normal course,
and I guess that the four-port hub that I'm using occasionally reports sitd
completion late. So, the expiration frame needs to be delayed one frame
further.  BTW, this change for whatever reason is only required to get the
bInterval=1 case to work.

This frame delay I think is a possible cause of remaining failures in the
test results. The TT is clearly busy on the main peripheral's data until past
the primary frame, so maybe getting an HID to work for the Setup 5: bInterval=1
case would require FSTNs? Also, maybe the missed raster scan lines from the
webcam can be mitigated by allowing itds to complete in future frames,
specifically by tweaking scan_isoc?  Considering that the itds don't use the
TT, I don't know why this would matter, but I still plan to try it.

> Why does this case behave differently?  Does the computer have an OHCI
or UHCI host controller in addition to EHCI?
Just EHCI according to the output of /sys/kernel/debug/usb/devices

> > So, start off by allocating an sitd for each transfer, and only add an extra
> > sitd if a transfer has frame-hopping CSPLITS?

> Yes, that is the approach the driver uses everywhere else.  Not to mention
> that it's foolish to allocate twice as many sitd's as the URB will actually
> use.

Done now.  I broke out the sitd allocation part of sitd_urb_transaction into
new function: allocate_sitds.  This new function is called once in
sitd_urb_transacton, making this latter function nearly* equivalent to what it
is in the current kernel.  Then, iso_stream_schedule gets
called, which determines whether the urb requires 2 sitds for each packet. If
the urb does, allocate_sitds is called a second time.

An alternative would be to not allocate any sitds until after
iso_stream_schedule gets called, and then do either 1 or 2 for each packet as
appropriate.  This would conserve fewer the choices made in the current driver,
which allocates sitds before iso_stream_schedule, but seems harmless and would
make the patched driver slightly more streamlined.  Do you have any immediate
objections to this alternative?

The exception to *, above, is that allocate_sitds now does not recycle sitds
from the free list until they are two frames in the past, as opposed to just
one frame in the past like before.  I guess this may lead to an occasional
extra sitd being allocated if urbs are resubmitted soon after they finish,
i.e., when the last sitd of the finished urb isn't 3 frames in the past yet.
Is the harm here minimal enough?

One more thing on this topic: allocate_sitds gets called with ehci->lock held
and also ends with ehci->lock held, but in the middle of allocate_sitds, the
lock gets unlocked and then relocked surrounding a call to dma_pool_alloc.  For
correct unlocking here, allocate sitds takes the associated irq save/restore
flags as an argument and passes it on in its call to spin_unlock_irqrestore.
Easy enough.  But, allocate_sitds also needs to be able to communicate the
flags that are set when it relocks the lock back up to the caller of
allocate_sitds.  So, I made the flags argument of allocate_sitds a pointer that
gets dereferenced in allocate_sitds calls to spin_(un)lock_irq(restore/save).
Is that objectionable?  Seems to work (specifically, ensures that the whole
computer doesn't crash, which is what I saw when I got this wrong), but maybe
diverges from current practice.

In principal, there's a nasty failure mode for the bInterval=1 case.  It stems
from ehci1's prescription - not this patch's particular implementation.
Namely, a single sitd failure breaks the stream for all subsequent sitds.  This
is because those subsequent sitds are initialized in a Do Complete Split state.
An error in a single sitd causes the subsequent sitd to never transition out of
the Do Complete Split state.  This subsequent sitd then also isn't successful,
causing the next sitd to also fail, and so forth.
I haven't encountered this failure mode, so it seems that it is addressed in
HW. Maybe after a few failed sitds, the HC simply ignores the initial Do
Complete Split flag?  I didn't see any comment like that when reading ehci1,
but maybe it's in there.

v3 of the patch is below.

 drivers/usb/host/ehci-sched.c | 248 +++++++++++++++++++++++++++-------
 drivers/usb/host/ehci.h       |  12 +-
 2 files changed, 206 insertions(+), 54 deletions(-)

diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index a241337c9..67ef1a918 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -285,13 +285,14 @@ static void compute_tt_budget(u8 budget_table[EHCI_BANDWIDTH_SIZE],
 			for (uf = ps->phase_uf; uf < 8; ++uf) {
 				x += budget_line[uf];
 
-				/* Each microframe lasts 125 us */
-				if (x <= 125) {
+				/* Cumulative tt_usecs can be as large as 145
+				 * us */
+				if (x <= 145) {
 					budget_line[uf] = x;
 					break;
 				}
-				budget_line[uf] = 125;
-				x -= 125;
+				budget_line[uf] = 145;
+				x -= 145;
 			}
 		}
 	}
@@ -313,7 +314,12 @@ static int __maybe_unused same_tt(struct usb_device *dev1,
 #ifdef CONFIG_USB_EHCI_TT_NEWSCHED
 
 static const unsigned char
-max_tt_usecs[] = { 125, 125, 125, 125, 125, 125, 30, 0 };
+/*
+ * tt_usecs includes worst-case bit stuffing time, so the transactions
+ * budgeted for a given 125 us uframe can have cumulative tt_usecs as large
+ * as 145 us and still possibly fit into the uframe.
+ */
+max_tt_usecs[] = { 145, 145, 145, 145, 145, 145, 35, 0 };
 
 /* carryover low/fullspeed bandwidth that crosses uframe boundries */
 static inline void carryover_tt_bandwidth(unsigned short tt_usecs[8])
@@ -378,13 +384,13 @@ static int tt_available(
 		if (max_tt_usecs[uframe] <= tt_usecs[uframe])
 			return 0;
 
-		/* special case for isoc transfers larger than 125us:
+		/* special case for isoc transfers larger than max_tt_usecs:
 		 * the first and each subsequent fully used uframe
 		 * must be empty, so as to not illegally delay
 		 * already scheduled transactions
 		 */
-		if (usecs > 125) {
-			int ufs = (usecs / 125);
+		if (usecs > 145) {
+			int ufs = (usecs / 145);
 
 			for (i = uframe; i < (uframe + ufs) && i < 8; i++)
 				if (tt_usecs[i] > 0)
@@ -1302,7 +1308,7 @@ static void reserve_release_iso_bandwidth(struct ehci_hcd *ehci,
 {
 	unsigned		uframe;
 	unsigned		i, j;
-	unsigned		s_mask, c_mask, m;
+	unsigned		s_mask, c_mask, c_mask2, m;
 	int			usecs = stream->ps.usecs;
 	int			c_usecs = stream->ps.c_usecs;
 	int			tt_usecs = stream->ps.tt_usecs;
@@ -1328,16 +1334,18 @@ static void reserve_release_iso_bandwidth(struct ehci_hcd *ehci,
 	} else {			/* Full speed */
 		s_mask = stream->ps.cs_mask;
 		c_mask = s_mask >> 8;
+		c_mask2 = stream->ps.c_mask2 >> 8;
 
-		/* NOTE: adjustment needed for frame overflow */
 		for (i = uframe; i < EHCI_BANDWIDTH_SIZE;
 				i += stream->ps.bw_uperiod) {
-			for ((j = stream->ps.phase_uf, m = 1 << j); j < 8;
+			for ((j = 0, m = 1 << j); j < 8;
 					(++j, m <<= 1)) {
 				if (s_mask & m)
 					ehci->bandwidth[i+j] += usecs;
 				else if (c_mask & m)
 					ehci->bandwidth[i+j] += c_usecs;
+				if (c_mask2 & m)
+					ehci->bandwidth[(i+8+j)%EHCI_BANDWIDTH_SIZE] += c_usecs;
 			}
 		}
 
@@ -1388,7 +1396,7 @@ sitd_slot_ok(
 	struct ehci_tt		*tt
 )
 {
-	unsigned		mask, tmp;
+	unsigned		mask, c_mask2, tmp;
 	unsigned		frame, uf;
 
 	mask = stream->ps.cs_mask << (uframe & 7);
@@ -1397,10 +1405,38 @@ sitd_slot_ok(
 	if (((stream->ps.cs_mask & 0xff) << (uframe & 7)) >= (1 << 7))
 		return 0;
 
-	/* for IN, don't wrap CSPLIT into the next frame */
-	if (mask & ~0xffff)
+	/* for IN, don't wrap SSPLIT too far into next frame */
+	if (mask & ~0x7ffff)
 		return 0;
 
+	c_mask2 = mask >> 16;
+	mask = mask & 0xffff;
+	if((c_mask2 & 1) && (c_mask2 & 1<<1) && (c_mask2 & 1<<2)) {
+		/* if BuFrame6 is the last uframe in which a transaction is
+		 * budgeted, the transaction will initially be configured to
+		 * have CSPLITS in BuFrame7 as well as BuFrames 0 and 1 of
+		 * the following frame (HuFrames 0,1,2)
+		 */
+		/* below: usb2 spec 11.18.4.3.c paragraph 3 */
+		if(mask & 1) {
+			c_mask2 = 1;
+		} else {
+			c_mask2 = (1<<2)-1;
+		}
+	} else if ((c_mask2 & 1) && (c_mask2 & 1<<1)) {
+		/* if BuFrame5 is the last uframe in which a transaction is
+		 * budgeted, the transaction will initially be configured to
+		 * have CSPLITS in BuFrames 6 and 7 as well as BuFrame 0 of
+		 * the following frame (HuFrames 7,0,1)
+		 */
+		/* below: usb2 spec 11.18.4.3.c paragraph 2 */
+		if(mask & 1) {
+			c_mask2 = 1;
+		}
+	}
+	if((c_mask2 & mask & 1<<1))
+		return 0; /* ehci1 4.12.3.1 */
+
 	/* check bandwidth */
 	uframe &= stream->ps.bw_uperiod - 1;
 	frame = uframe >> 3;
@@ -1445,13 +1481,22 @@ sitd_slot_ok(
 				if (ehci->bandwidth[uf+i] > max_used)
 					return 0;
 			}
+			tmp = 1;
+			for (i = 0; i < 2; (++i, tmp <<= 1)) {
+				if ((stream->ps.c_mask2 & tmp) == 0)
+					continue;
+				if (ehci->bandwidth[(uf+8+i) % EHCI_BANDWIDTH_SIZE] > max_used)
+					return 0;
 		}
 
 		uframe += stream->ps.bw_uperiod;
 	} while (uframe < EHCI_BANDWIDTH_SIZE);
 
-	stream->ps.cs_mask <<= uframe & 7;
+	stream->ps.cs_mask = mask;
+	stream->ps.c_mask2 = c_mask2 << 8;
 	stream->splits = cpu_to_hc32(ehci, stream->ps.cs_mask);
+	stream->c_splits2 = cpu_to_hc32(ehci, stream->ps.c_mask2);
+
 	return 1;
 }
 
@@ -2028,54 +2073,45 @@ sitd_sched_init(
 }
 
 static int
-sitd_urb_transaction(
+allocate_sitds(
 	struct ehci_iso_stream	*stream,
 	struct ehci_hcd		*ehci,
 	struct urb		*urb,
-	gfp_t			mem_flags
+	struct ehci_iso_sched	*iso_sched,
+	gfp_t			mem_flags,
+	unsigned long		*ehci_lock_flags
 )
 {
+	/* caller must hold ehci->lock and provide associated irq flags */
 	struct ehci_sitd	*sitd;
 	dma_addr_t		sitd_dma;
 	int			i;
-	struct ehci_iso_sched	*iso_sched;
-	unsigned long		flags;
-
-	iso_sched = iso_sched_alloc(urb->number_of_packets, mem_flags);
-	if (iso_sched == NULL)
-		return -ENOMEM;
-
-	sitd_sched_init(ehci, iso_sched, stream, urb);
 
 	/* allocate/init sITDs */
-	spin_lock_irqsave(&ehci->lock, flags);
 	for (i = 0; i < urb->number_of_packets; i++) {
 
-		/* NOTE:  for now, we don't try to handle wraparound cases
-		 * for IN (using sitd->hw_backpointer, like a FSTN), which
-		 * means we never need two sitds for full speed packets.
-		 */
-
 		/*
-		 * Use siTDs from the free list, but not siTDs that may
+		 * Use iTDs from the free list, but not iTDs that may
 		 * still be in use by the hardware.
 		 */
 		if (likely(!list_empty(&stream->free_list))) {
 			sitd = list_first_entry(&stream->free_list,
 					 struct ehci_sitd, sitd_list);
-			if (sitd->frame == ehci->now_frame)
+			/* include frame+1 to accommodate frame-hopping CSPLITS */
+			if (sitd->frame == ehci->now_frame ||
+				sitd->frame + 1 == ehci->now_frame)
 				goto alloc_sitd;
 			list_del(&sitd->sitd_list);
 			sitd_dma = sitd->sitd_dma;
 		} else {
- alloc_sitd:
-			spin_unlock_irqrestore(&ehci->lock, flags);
+alloc_sitd:
+			spin_unlock_irqrestore(&ehci->lock, *ehci_lock_flags);
 			sitd = dma_pool_alloc(ehci->sitd_pool, mem_flags,
 					&sitd_dma);
-			spin_lock_irqsave(&ehci->lock, flags);
+			spin_lock_irqsave(&ehci->lock, *ehci_lock_flags);
 			if (!sitd) {
 				iso_sched_free(stream, iso_sched);
-				spin_unlock_irqrestore(&ehci->lock, flags);
+				/* caller should release ehic->lock */
 				return -ENOMEM;
 			}
 		}
@@ -2085,6 +2121,32 @@ sitd_urb_transaction(
 		sitd->frame = NO_FRAME;
 		list_add(&sitd->sitd_list, &iso_sched->td_list);
 	}
+	return 0;
+}
+
+static int
+sitd_urb_transaction(
+	struct ehci_iso_stream	*stream,
+	struct ehci_hcd		*ehci,
+	struct urb		*urb,
+	gfp_t			mem_flags
+)
+{
+	struct ehci_iso_sched	*iso_sched;
+	unsigned long		flags;
+	int			status;
+
+	iso_sched = iso_sched_alloc(urb->number_of_packets, mem_flags);
+	if (iso_sched == NULL)
+		return -ENOMEM;
+
+	sitd_sched_init(ehci, iso_sched, stream, urb);
+	spin_lock_irqsave(&ehci->lock, flags);
+	status = allocate_sitds(stream, ehci, urb, iso_sched, mem_flags, &flags);
+	if(status) {
+		spin_unlock_irqrestore(&ehci->lock, flags);
+		return status;
+	}
 
 	/* temporarily store schedule info in hcpriv */
 	urb->hcpriv = iso_sched;
@@ -2107,12 +2169,29 @@ sitd_patch(
 {
 	struct ehci_iso_packet	*uf = &iso_sched->packet[index];
 	u64			bufp;
+	__hc32			transaction;
 
 	sitd->hw_next = EHCI_LIST_END(ehci);
 	sitd->hw_fullspeed_ep = stream->address;
-	sitd->hw_uframe = stream->splits;
-	sitd->hw_results = uf->transaction;
-	sitd->hw_backpointer = EHCI_LIST_END(ehci);
+	sitd->hw_backpointer = cpu_to_hc32(ehci, sitd->backpointer_sitd_dma);
+	transaction = uf->transaction;
+
+	if(stream->ps.period!=1 && sitd->backpointer_sitd_dma!=1) {
+		sitd->hw_uframe=stream->c_splits2;
+	} else {
+		/*
+		 * frame-hopping CSPLITS get skipped if the sitd doesn't
+		 * start in the Do Complete Split state.
+		 */
+		sitd->hw_uframe=stream->splits|stream->c_splits2;
+	}
+
+	if(sitd->backpointer_sitd_dma!=1) {
+		/* start in Do Complete Split mode, ehci1 4.12.3.3.2.1 */
+		transaction |= cpu_to_hc32(ehci, SITD_STS_STS);
+	}
+
+	sitd->hw_results = transaction;
 
 	bufp = uf->bufp;
 	sitd->hw_buf[0] = cpu_to_hc32(ehci, bufp);
@@ -2149,13 +2228,26 @@ static void sitd_link_urb(
 	unsigned		next_uframe;
 	struct ehci_iso_sched	*sched = urb->hcpriv;
 	struct ehci_sitd	*sitd;
+	struct ehci_sitd	*sitd_before;
+	int			sitd_mult;
 
 	next_uframe = stream->next_uframe;
 
-	if (list_empty(&stream->td_list))
+	if (list_empty(&stream->td_list)) {
 		/* usbfs ignores TT bandwidth */
 		ehci_to_hcd(ehci)->self.bandwidth_allocated
 				+= stream->bandwidth;
+		sitd_before = NULL;
+	} else {
+		sitd_before = list_last_entry(&stream->td_list,
+				struct ehci_sitd, sitd_list);
+		/* only add a bkptr to sitds scheduled in frames past now_frame */
+		if(sitd_before->frame == ehci->now_frame ||
+			sitd_before->frame + 1 == ehci->now_frame)
+		{
+			sitd_before = NULL;
+		}
+	}
 
 	if (ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs == 0) {
 		if (ehci->amd_pll_fix == 1)
@@ -2163,11 +2255,15 @@ static void sitd_link_urb(
 	}
 
 	ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs++;
+	if(stream->ps.c_mask2 && stream->ps.period!=1)
+		sitd_mult = 2;
+	else
+		sitd_mult = 1;
 
 	/* fill sITDs frame by frame */
-	for (packet = sched->first_packet, sitd = NULL;
-			packet < urb->number_of_packets;
-			packet++) {
+	for (int i = sched->first_packet, sitd = NULL;
+			i < sitd_mult * urb->number_of_packets;
+			i++) {
 
 		/* ASSERT:  we have all necessary sitds */
 		BUG_ON(list_empty(&sched->td_list));
@@ -2176,15 +2272,41 @@ static void sitd_link_urb(
 
 		sitd = list_entry(sched->td_list.next,
 				struct ehci_sitd, sitd_list);
+		if(stream->ps.cs_mask2 && sitd_before!=NULL &&
+			!(sched->first_packet!=0 && i==sched->first_packet) &&
+			(stream->ps.period==1 || i%2==1) ) {
+
+			sitd->backpointer_sitd_dma = sitd_before->sitd_dma;
+		} else {
+			sitd->backpointer_sitd_dma = 1;
+		}
+
 		list_move_tail(&sitd->sitd_list, &stream->td_list);
 		sitd->stream = stream;
 		sitd->urb = urb;
 
+		if(stream->ps.c_mask2 && (stream->ps.period!=1)) {
+			packet = i/2;
+			sitd->first_in_pair = i%2 == 0;
+		} else {
+			packet = i;
+		}
+
 		sitd_patch(ehci, stream, sitd, sched, packet);
 		sitd_link(ehci, (next_uframe >> 3) & (ehci->periodic_size - 1),
 				sitd);
 
-		next_uframe += stream->uperiod;
+		if(stream->ps.c_mask2 && (stream->ps.period!=1)) {
+			if((i%2)==0) {
+				/* next sitd only has frame-hopping CSPLITS */
+				next_uframe += 8;
+			} else if ((i%2)==1) {
+				next_uframe += stream->uperiod - 8;
+			}
+		} else {
+			next_uframe += stream->uperiod;
+		}
+		sitd_before = sitd;
 	}
 	stream->next_uframe = next_uframe & (mod - 1);
 
@@ -2220,6 +2342,13 @@ static bool sitd_complete(struct ehci_hcd *ehci, struct ehci_sitd *sitd)
 	struct ehci_iso_stream			*stream = sitd->stream;
 	bool					retval = false;
 
+	if(stream->force_sitd_done) {
+		/* sitd is the 2nd in a pair for a bIntrvl!=1 case w/ bkptrs */
+		stream->force_sitd_done = false;
+		goto done;
+	}
+	stream->force_sitd_done = sitd->first_in_pair; /* for next sitd */
+
 	urb_index = sitd->index;
 	desc = &urb->iso_frame_desc[urb_index];
 	t = hc32_to_cpup(ehci, &sitd->hw_results);
@@ -2245,7 +2374,7 @@ static bool sitd_complete(struct ehci_hcd *ehci, struct ehci_sitd *sitd)
 	}
 
 	/* handle completion now? */
-	if ((urb_index + 1) != urb->number_of_packets)
+	if (likely ((urb_index + 1) != urb->number_of_packets))
 		goto done;
 
 	/*
@@ -2293,6 +2422,7 @@ static int sitd_submit(struct ehci_hcd *ehci, struct urb *urb,
 	gfp_t mem_flags)
 {
 	int			status = -EINVAL;
+	int			status2 = 0;
 	unsigned long		flags;
 	struct ehci_iso_stream	*stream;
 
@@ -2335,13 +2465,21 @@ static int sitd_submit(struct ehci_hcd *ehci, struct urb *urb,
 		goto done_not_linked;
 	status = iso_stream_schedule(ehci, urb, stream);
 	if (likely(status == 0)) {
+		if(stream->ps.c_mask2 && stream->ps.period!=1) {
+			/*
+			 * stream has frame-hopping CSPLITS and period isn't 1:
+			 * 2 sitds required for each packet
+			 */
+			status2 = allocate_sitds(stream, ehci, urb, urb->hcpriv, mem_flags,
+					&flags);
+		}
 		sitd_link_urb(ehci, urb, ehci->periodic_size << 3, stream);
 	} else if (status > 0) {
 		status = 0;
 		ehci_urb_done(ehci, urb, 0);
-	} else {
-		usb_hcd_unlink_urb_from_ep(ehci_to_hcd(ehci), urb);
 	}
+	if(status<0 || status2<0)
+		usb_hcd_unlink_urb_from_ep(ehci_to_hcd(ehci), urb);
  done_not_linked:
 	spin_unlock_irqrestore(&ehci->lock, flags);
  done:
@@ -2433,10 +2571,16 @@ static void scan_isoc(struct ehci_hcd *ehci)
 			 * No need to check for activity unless the
 			 * frame is current.
 			 */
+			/* delay the expiration frame by one frame past now_frame to
+			 * accommodate HW delay (commit 22e1869). delay it one further
+			 * frame to accommodate frame-hopping csplits
+			 */
 			if (((frame == now_frame) ||
-					(((frame + 1) & fmask) == now_frame))
+					(((frame + 1) & fmask) == now_frame) ||
+					(((frame + 2) & fmask) == now_frame))
 				&& live
-				&& (q.sitd->hw_results & SITD_ACTIVE(ehci))) {
+				&& (q.sitd->hw_results & SITD_ACTIVE(ehci))
+				&& !q.sitd->stream->force_sitd_done) {
 
 				q_p = &q.sitd->sitd_next;
 				hw_p = &q.sitd->hw_next;
@@ -2482,8 +2626,8 @@ static void scan_isoc(struct ehci_hcd *ehci)
 	if (frame == now_frame)
 		return;
 
-	/* The last frame may still have active siTDs */
-	ehci->last_iso_frame = frame;
+	/* next call's scan begins at this call's now_frame-2 */
+	ehci->last_iso_frame = (frame - 1) & fmask;
 	frame = (frame + 1) & fmask;
 
 	goto restart;
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index d7a3c8d13..e4a387976 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -50,7 +50,9 @@ struct ehci_per_sched {
 	struct usb_host_endpoint *ep;
 	struct list_head	ps_list;	/* node on ehci_tt's ps_list */
 	u16			tt_usecs;	/* time on the FS/LS bus */
-	u16			cs_mask;	/* C-mask and S-mask bytes */
+	u32			cs_mask;	/* C-mask and S-mask bytes */
+	u16			c_mask2;	/* C-mask for frame-hopping CSPLITS */
+
 	u16			period;		/* actual period in frames */
 	u16			phase;		/* actual phase, frame part */
 	u8			bw_phase;	/* same, for bandwidth
@@ -485,11 +487,13 @@ struct ehci_iso_stream {
 	u8			highspeed;
 	struct list_head	td_list;	/* queued itds/sitds */
 	struct list_head	free_list;	/* list of unused itds/sitds */
+	bool			force_sitd_done;/* for bIntrvl!=1 case w/ bkptrs */
 
 	/* output of (re)scheduling */
 	struct ehci_per_sched	ps;		/* scheduling info */
 	unsigned		next_uframe;
-	__hc32			splits;
+	__hc32			splits;		/* C-mask and S-mask */
+	__hc32			c_splits2;	/* C-mask for frame-hopping CSPLITS */
 
 	/* the rest is derived from the endpoint descriptor,
 	 * including the extra info for hw_bufp[0..2]
@@ -579,7 +583,11 @@ struct ehci_sitd {
 
 	/* the rest is HCD-private */
 	dma_addr_t		sitd_dma;
+	dma_addr_t		backpointer_sitd_dma;
+
 	union ehci_shadow	sitd_next;	/* ptr to periodic q entry */
+	bool			first_in_pair;  /* for period!=1 w/ bkptrs */
+
 
 	struct urb		*urb;
 	struct ehci_iso_stream	*stream;	/* endpoint's queue */
-- 
2.39.5



^ permalink raw reply related

* [PATCH] usb: cdnsp: fix stream context array leak in cdnsp_alloc_stream_info()
From: Haoxiang Li @ 2026-06-22  5:26 UTC (permalink / raw)
  To: pawell, gregkh, peter.chen; +Cc: linux-usb, linux-kernel, Haoxiang Li, stable

cdnsp_alloc_stream_info() allocates stream_info->stream_ctx_array with
cdnsp_alloc_stream_ctx(). If a later stream ring allocation or stream
mapping update fails, the error path frees the allocated stream rings
and stream_rings array, but leaves stream_ctx_array allocated.

Free the stream context array before falling through to the stream_rings
cleanup path.

Fixes: 3d82904559f4 ("usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver")
Cc: stable@vger.kernel.org
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
---
 drivers/usb/cdns3/cdnsp-mem.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/cdns3/cdnsp-mem.c b/drivers/usb/cdns3/cdnsp-mem.c
index a2a1b21f2ef8..880097f1007d 100644
--- a/drivers/usb/cdns3/cdnsp-mem.c
+++ b/drivers/usb/cdns3/cdnsp-mem.c
@@ -631,6 +631,8 @@ int cdnsp_alloc_stream_info(struct cdnsp_device *pdev,
 		}
 	}
 
+	cdnsp_free_stream_ctx(pdev, pep);
+
 cleanup_stream_rings:
 	kfree(pep->stream_info.stream_rings);
 
-- 
2.25.1


^ permalink raw reply related

* Re: [PATCH] USB: EHCI: inflate max_tt_usecs and implement sitd backpointers
From: Brent Page @ 2026-06-22  5:19 UTC (permalink / raw)
  To: Alan Stern; +Cc: linux-usb, Michal Pecio
In-Reply-To: <a30d95f3-9802-4a2a-8b5e-ff4b5ac93662@rowland.harvard.edu>

> I'm not sure what point in the code you're talking about.  
I've been talking about line 2086
		list_add(&sitd->sitd_list, &iso_sched->td_list);
and lines 2177-2179
		sitd = list_entry(sched->td_list.next,
				struct ehci_sitd, sitd_list);
		list_move_tail(&sitd->sitd_list, &stream->td_list);
in the v7.1 kernel.

> Also, you don't seem to have noticed that iso_sched is different from
> stream.
Yes, I did mix these up.  The new patch (v3 soon) is better (no bug when crossing
urb boundaries).

From,
Brent Page



^ permalink raw reply

* Re: [BUG] xHCI: AMD Strix Halo [1022:158b] isochronous full-duplex USB audio instability (frame active: -18)
From: Ingo Haenlein @ 2026-06-21 19:49 UTC (permalink / raw)
  To: Michal Pecio; +Cc: linux-usb
In-Reply-To: <20260621214215.378d505a.michal.pecio@gmail.com>

Hi Michal,

I tested the suggested stress-ng --stream case on the Strix Halo system.

In this run it did not prevent the issue. While stress-ng --stream was
running, jack_delay still showed repeated discrete RTL jumps between
quasi-stable plateaus, followed later by a larger disturbance with ???
readings.

Example jack_delay plateaus from the run:

444.579 frames    9.262 ms
444.579 frames    9.262 ms
444.578 frames    9.262 ms

437.579 frames    9.116 ms

479.579 frames    9.991 ms
479.579 frames    9.991 ms
479.578 frames    9.991 ms

Later in the same run it became more disturbed:

489.580 frames   10.200 ms
489.578 frames   10.200 ms
???     990.580 frames   20.637 ms
469.642 frames    9.784 ms
468.505 frames    9.761 ms
452.259 frames    9.422 ms
420.883 frames    8.768 ms
...
???    1003.461 frames   20.905 ms

After that it again reached other quasi-stable offsets, for example:

451.579 frames    9.408 ms
451.580 frames    9.408 ms

493.580 frames   10.283 ms
493.579 frames   10.283 ms

During the same run, dmesg showed a large burst of xHCI missed-service
events on the affected controller, mostly on slot 1 ep 4, followed by stream
stop/start recovery.

Excerpt:

xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set 
skip flag, skip now
xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set 
skip flag, skip now
xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
...
usb 7-1: Stopping sync EP 0x81 (running 1)
usb 7-1: Stopping data EP 0x1 (running 1)
usb 7-1: 1:1 Stop Playback PCM
usb 7-1: Stopping data EP 0x82 (running 1)
usb 7-1: 2:1 Stop Capture PCM
xhci_hcd 0000:c5:00.4: Stopped on Transfer TRB for slot 1 ep 2
xhci_hcd 0000:c5:00.4: Underrun event on slot 1 ep 1
xhci_hcd 0000:c5:00.4: Stopped on Transfer TRB for slot 1 ep 4
usb 7-1: Starting data EP 0x1 (running 0)
usb 7-1: 8 URBs submitted for EP 0x1
usb 7-1: Starting sync EP 0x81 (running 0)
usb 7-1: 4 URBs submitted for EP 0x81
usb 7-1: 1:1 Start Playback PCM
usb 7-1: Starting data EP 0x82 (running 0)
usb 7-1: 12 URBs submitted for EP 0x82
usb 7-1: 2:1 Start Capture PCM

There were also later overrun/underrun events and further missed-service
events in the same timestamp region, for example:

xhci_hcd 0000:c5:00.4: Overrun event on slot 1 ep 4
...
xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set 
skip flag, skip now
xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set 
skip flag, skip now

So on this Strix Halo system, unlike the Fire Range report,
stress-ng --stream does not appear to be a sufficient workaround. The
failure still reaches the xHCI missed-service / stream-recovery path.

I also tested CPU keepalive load:

stress-ng --cpu 32 --cpu-load 20

That did not prevent the issue either. So on this Strix Halo system, neither
stress-ng --stream nor moderate CPU keepalive load appears to be a
sufficient workaround.

So the current result is:

- same general error class:
   AMD client platform + USB-audio isochronous traffic +
   xHCI Missed Service Error / -EXDEV / stream discontinuity

- but different mitigation result:
   generic memory-stream load and moderate CPU keepalive load do not avoid
   the failure on this Strix Halo system

Regards, Ingo

On 6/21/26 21:42, Michal Pecio wrote:
> On Sun, 21 Jun 2026 21:19:39 +0200, Ingo Haenlein wrote:
>> [Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval
>> error for slot 1 ep 1, set skip flag, skip now
>> [Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip
>> flag for slot 1 ep 1.
>> [Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval
>> error for slot 1 ep 4, set skip flag, skip now
>> [Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip
>> flag for slot 1 ep 4.
>> [Sun Jun 21 20:44:14 2026] usb 7-1: frame 5 active: -18
>> [Sun Jun 21 20:44:14 2026] usb 7-1: frame 6 active: -18
>> [Sun Jun 21 20:44:14 2026] usb 7-1: frame 7 active: -18
> OK, I see, it's "frame %d active" and I searched for "frame active".
> Anyway, it's sound driver reporting EXDEV completions, as expected.
>
>> Regarding the related thread you pointed me to:
>>
>> https://lore.kernel.org/linux-usb/18b4e4f7089aa4f1.da8dbe994ae3bb77.445e21b98b0b205b@GordonMsi/
>>
>> I checked my Strix Halo system against that LTC/LTR angle. I do not
>> know whether it is the same root cause, but the error class looks
>> similar: AMD client platform, USB audio isochronous traffic, xHCI
>> missed-service / -EXDEV.
>>
>> For xHCI 0000:c5:00.4:
>>
>> /sys/kernel/debug/usb/xhci/0000:c5:00.4/reg-cap:
>>
>> HCCPARAMS1 = 0x0118ffc5
>>
>> Bit 6 is set, so xHCI HCCPARAMS1.LTC = 1.
>>
>> However, lspci -vvv for the same xHCI function reports:
>>
>> DevCap2: ... LTR-
>> DevCtl2: ... LTR-
>>
>> The upstream internal GPP bridge / root port 0000:00:08.3 also
>> reports:
>>
>> DevCap2: ... LTR-
>> DevCtl2: ... LTR-
>>
>> So on this Strix Halo system, xHCI advertises LTC, but standard PCIe
>> LTR is not exposed on either the xHCI function or the upstream bridge.
>>
>> I do not know whether Set LTV would reach the AMD fabric through an
>> internal sideband path on this integrated controller, or whether LTC
>> is USB-link-scoped only here.
> No one knows outside AMD and I'm not sure if it would matter anyway.
>
> You can check if it's the same issue by running "stress-ng --stream",
> which is supposed to "fix" it by keeping the SoC out of idle.
>
> Regards,
> Michal
>
>
>
>

^ permalink raw reply

* Re: [BUG] xHCI: AMD Strix Halo [1022:158b] isochronous full-duplex USB audio instability (frame active: -18)
From: Michal Pecio @ 2026-06-21 19:42 UTC (permalink / raw)
  To: Ingo Haenlein; +Cc: linux-usb
In-Reply-To: <d7785c3e-4062-4e2f-90ec-15dc86ca11cb@gmx.de>

On Sun, 21 Jun 2026 21:19:39 +0200, Ingo Haenlein wrote:
> [Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval 
> error for slot 1 ep 1, set skip flag, skip now
> [Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip 
> flag for slot 1 ep 1.
> [Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval 
> error for slot 1 ep 4, set skip flag, skip now
> [Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip 
> flag for slot 1 ep 4.
> [Sun Jun 21 20:44:14 2026] usb 7-1: frame 5 active: -18
> [Sun Jun 21 20:44:14 2026] usb 7-1: frame 6 active: -18
> [Sun Jun 21 20:44:14 2026] usb 7-1: frame 7 active: -18

OK, I see, it's "frame %d active" and I searched for "frame active".
Anyway, it's sound driver reporting EXDEV completions, as expected.

> Regarding the related thread you pointed me to:
> 
> https://lore.kernel.org/linux-usb/18b4e4f7089aa4f1.da8dbe994ae3bb77.445e21b98b0b205b@GordonMsi/
> 
> I checked my Strix Halo system against that LTC/LTR angle. I do not
> know whether it is the same root cause, but the error class looks
> similar: AMD client platform, USB audio isochronous traffic, xHCI
> missed-service / -EXDEV.
> 
> For xHCI 0000:c5:00.4:
> 
> /sys/kernel/debug/usb/xhci/0000:c5:00.4/reg-cap:
> 
> HCCPARAMS1 = 0x0118ffc5
> 
> Bit 6 is set, so xHCI HCCPARAMS1.LTC = 1.
> 
> However, lspci -vvv for the same xHCI function reports:
> 
> DevCap2: ... LTR-
> DevCtl2: ... LTR-
> 
> The upstream internal GPP bridge / root port 0000:00:08.3 also
> reports:
> 
> DevCap2: ... LTR-
> DevCtl2: ... LTR-
> 
> So on this Strix Halo system, xHCI advertises LTC, but standard PCIe
> LTR is not exposed on either the xHCI function or the upstream bridge.
> 
> I do not know whether Set LTV would reach the AMD fabric through an 
> internal sideband path on this integrated controller, or whether LTC
> is USB-link-scoped only here.

No one knows outside AMD and I'm not sure if it would matter anyway.

You can check if it's the same issue by running "stress-ng --stream",
which is supposed to "fix" it by keeping the SoC out of idle.

Regards,
Michal





^ permalink raw reply

* Re: [BUG] xHCI: AMD Strix Halo [1022:158b] isochronous full-duplex USB audio instability (frame active: -18)
From: Ingo Haenlein @ 2026-06-21 19:19 UTC (permalink / raw)
  To: Michal Pecio; +Cc: linux-usb
In-Reply-To: <20260621202845.77536cd3.michal.pecio@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 8170 bytes --]

Hello,

I enabled the requested dynamic debug:

echo 'func handle_tx_event +p' > /proc/dynamic_debug/control

The frame active: -18 line came from snd-usb-audio dynamic debug:

echo 'file sound/usb/pcm.c +p' > /sys/kernel/debug/dynamic_debug/control

specifically from the retire_capture_urb() debug print:

sound/usb/pcm.c:1336 [snd_usb_audio]retire_capture_urb =p "frame %d 
active: %d\n"

With handle_tx_event() debug enabled as requested, I reproduced the 
issue again.

Test setup for this run:

Machine: HP ZBook Ultra G1a
Platform: AMD Strix Halo / Ryzen AI Max
Controller: 0000:c5:00.4 AMD Strix Halo USB 3.1 xHCI [1022:158b]
USB path: usb7 / 7-1
Device: Audient iD14 MK1 [2708:0002]

Reproduction sequence:

physically disconnect and reconnect the USB audio interface
restart PipeWire

run jack_delay through pw-jack:

PIPEWIRE_QUANTUM=128/48000 PIPEWIRE_PROPS='{"node.lock-quantum"}' 
pw-jack jack_delay

The log now shows handle_tx_event() reporting missed-service events, 
followed by the snd-usb-audio frame active: -18 messages.

Relevant excerpt:

[Sun Jun 21 20:42:27 2026] usb 7-1: Open EP 0x1, iface=1:1, idx=0
[Sun Jun 21 20:42:27 2026] usb 7-1: channels=4, rate=48000, 
format=S32_LE, period_bytes=2048, periods=3, implicit_fb=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Open EP 0x81, iface=1:1, idx=1
[Sun Jun 21 20:42:27 2026] usb 7-1: channels=4, rate=48000, 
format=S32_LE, period_bytes=2048, periods=3, implicit_fb=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Setting params for sync EP 0x81, 
pipe 0x8480
[Sun Jun 21 20:42:27 2026] usb 7-1: Set up 4 URBS, ret=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Setting params for data EP 0x1, pipe 
0x8400
[Sun Jun 21 20:42:27 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Starting data EP 0x1 (running 0)
[Sun Jun 21 20:42:27 2026] usb 7-1: 8 URBs submitted for EP 0x1
[Sun Jun 21 20:42:27 2026] usb 7-1: Starting sync EP 0x81 (running 0)
[Sun Jun 21 20:42:27 2026] usb 7-1: 4 URBs submitted for EP 0x81
[Sun Jun 21 20:42:27 2026] usb 7-1: 1:1 Start Playback PCM
[Sun Jun 21 20:42:27 2026] usb 7-1: Open EP 0x82, iface=2:1, idx=0
[Sun Jun 21 20:42:27 2026] usb 7-1: channels=10, rate=48000, 
format=S32_LE, period_bytes=5120, periods=3, implicit_fb=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Setting params for data EP 0x82, 
pipe 0x10480
[Sun Jun 21 20:42:27 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Starting data EP 0x82 (running 0)
[Sun Jun 21 20:42:27 2026] usb 7-1: 12 URBs submitted for EP 0x82
[Sun Jun 21 20:42:27 2026] usb 7-1: 2:1 Start Capture PCM
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Miss service interval 
error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip 
flag for slot 1 ep 2.

Later in the same run:

[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval 
error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip 
flag for slot 1 ep 1.
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval 
error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip 
flag for slot 1 ep 4.
[Sun Jun 21 20:44:14 2026] usb 7-1: frame 5 active: -18
[Sun Jun 21 20:44:14 2026] usb 7-1: frame 6 active: -18
[Sun Jun 21 20:44:14 2026] usb 7-1: frame 7 active: -18

At 20:44:59 the same pattern repeated more strongly, followed by 
playback/capture stop and restart:

[Sun Jun 21 20:44:59 2026] usb 7-1: frame 0 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 1 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 2 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 3 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: Stopping sync EP 0x81 (running 1)
[Sun Jun 21 20:44:59 2026] usb 7-1: Stopping data EP 0x1 (running 1)
[Sun Jun 21 20:44:59 2026] usb 7-1: 1:1 Stop Playback PCM
[Sun Jun 21 20:44:59 2026] usb 7-1: Stopping data EP 0x82 (running 1)
[Sun Jun 21 20:44:59 2026] usb 7-1: 2:1 Stop Capture PCM

The iD14 path in this log uses a separate sync endpoint, not implicit 
feedback:

[Sun Jun 21 20:42:14 2026] usb 7-1: 1:1: found sync_ep=0x81, iface=1, 
alt=1, implicit_fb=0
[Sun Jun 21 20:42:14 2026] usb 7-1: Creating new data endpoint #1
[Sun Jun 21 20:42:14 2026] usb 7-1: Creating new sync endpoint #81
[Sun Jun 21 20:42:14 2026] usb 7-1: 1:2: found sync_ep=0x81, iface=1, 
alt=2, implicit_fb=0
[Sun Jun 21 20:42:14 2026] usb 7-1: Creating new data endpoint #82

During the same run, jack_delay showed a discrete round-trip latency 
change. It was quasi-stable around:

498.579 frames 10.387 ms

then reported:

??? 420.350 frames 8.757 ms
451.919 frames 9.415 ms
451.606 frames 9.408 ms

and later became quasi-stable again around:

493.579 frames 10.283 ms

So the user-visible symptom is a discrete latency-state change during 
continuous full-duplex streaming, while the kernel log shows xHCI 
missed-service events and subsequent snd-usb-audio -EXDEV frames.

Regarding the related thread you pointed me to:

https://lore.kernel.org/linux-usb/18b4e4f7089aa4f1.da8dbe994ae3bb77.445e21b98b0b205b@GordonMsi/

I checked my Strix Halo system against that LTC/LTR angle. I do not know 
whether it is the same root cause, but the error class looks similar: 
AMD client platform, USB audio isochronous traffic, xHCI missed-service 
/ -EXDEV.

For xHCI 0000:c5:00.4:

/sys/kernel/debug/usb/xhci/0000:c5:00.4/reg-cap:

HCCPARAMS1 = 0x0118ffc5

Bit 6 is set, so xHCI HCCPARAMS1.LTC = 1.

However, lspci -vvv for the same xHCI function reports:

DevCap2: ... LTR-
DevCtl2: ... LTR-

The upstream internal GPP bridge / root port 0000:00:08.3 also reports:

DevCap2: ... LTR-
DevCtl2: ... LTR-

So on this Strix Halo system, xHCI advertises LTC, but standard PCIe LTR 
is not exposed on either the xHCI function or the upstream bridge.

I do not know whether Set LTV would reach the AMD fabric through an 
internal sideband path on this integrated controller, or whether LTC is 
USB-link-scoped only here.

Attached:

strix_halo_xhci_usb_audio.log
xhci-c5_00_4-reg-cap.txt
lspci-c5_00_4-xhci-vvv.txt
lspci-00_08_3-rootport-vvv.txt

Regards,
Ingo

On 6/21/26 20:28, Michal Pecio wrote:
> On Sun, 21 Jun 2026 18:30:23 +0200, Ingo Haenlein wrote:
>> Hello,
>>
>> I am reporting a reproducible isochronous full-duplex USB audio
>> instability on an AMD Strix Halo system (HP ZBook Ultra G1a) under
>> Linux. A detailed bug report including kernel logs, USB descriptors, and
>> endpoint data has been filed at:
>>
>> https://bugzilla.kernel.org/show_bug.cgi?id=221650
>>
>> This mail summarizes the findings and forwards the issue to linux-usb as
>> the problem appears to be in the xHCI host controller path rather than
>> in snd-usb-audio.
>>
>>
>> Affected system
>> ---------------
>>
>> Machine:    HP ZBook Ultra G1a (AMD Strix Halo / Ryzen AI Max)
>> Kernel:
>> 7.0.12-zen1-1-zen (linux-zen, Arch Linux)
>> 7.0.12.arch1-1 (linux, Arch Linux, vanilla kernel.org sources)
>> Controller: c5:00.4 AMD Strix Halo USB 3.1 xHCI [1022:158b]
>> Driver:     xhci_hcd, CONFIG_USB_XHCI_PCI=y
>>
>>
>> Symptom
>> -------
>>
>> During continuous full-duplex USB audio operation, round-trip latency jumps
>> discretely. Kernel logs show:
>>
>>     frame active: -18
>>     retire_capture_urb
> Not sure what you mean and I can't find these strings in USB audio
> drievr, but -18 is -EXDEV i.e. Missed Service Error in xHCI.
>
> Will you see messages about it after enabling dynamic debug?
>
> echo 'func handle_tx_event +p' >/proc/dynamic_debug/control
>
>> The Audient iD44 MK2 works without this issue on a Lenovo ThinkPad X1
>> Gen 2 using the same Linux audio workflow. This confirms a
>> host-controller-specific problem.
> And since it's unique to a recent AMD system, maybe this?
> https://lore.kernel.org/linux-usb/18b4e4f7089aa4f1.da8dbe994ae3bb77.445e21b98b0b205b@GordonMsi/
>
> Regards,
> Michal

[-- Attachment #2: strix_halo_xhci_snd_usb_audio.log --]
[-- Type: text/x-log, Size: 39952 bytes --]

[Sun Jun 21 20:42:14 2026] usb 7-1: new high-speed USB device number 4 using xhci_hcd
[Sun Jun 21 20:42:14 2026] usb 7-1: New USB device found, idVendor=2708, idProduct=0002, bcdDevice= 1.11
[Sun Jun 21 20:42:14 2026] usb 7-1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[Sun Jun 21 20:42:14 2026] usb 7-1: Product: Audient iD14
[Sun Jun 21 20:42:14 2026] usb 7-1: Manufacturer: Audient
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stopped on No-op or Link TRB for slot 1 ep 8
[Sun Jun 21 20:42:14 2026] usb 7-1: 1:1: found sync_ep=0x81, iface=1, alt=1, implicit_fb=0
[Sun Jun 21 20:42:14 2026] usb 7-1: Creating new data endpoint #1
[Sun Jun 21 20:42:14 2026] usb 7-1: Creating new sync endpoint #81
[Sun Jun 21 20:42:14 2026] usb 7-1: 1:2: found sync_ep=0x81, iface=1, alt=2, implicit_fb=0
[Sun Jun 21 20:42:14 2026] usb 7-1: Creating new data endpoint #82
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] usb 7-1: 11:0: cannot get min/max values for control 11 (id 11)
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:14 2026] input: Audient Audient iD14 as /devices/pci0000:00/0000:00:08.3/0000:c5:00.4/usb7/7-1/7-1:1.4/0003:2708:0002.000B/input/input31
[Sun Jun 21 20:42:14 2026] hid-generic 0003:2708:0002.000B: input,hidraw0: USB HID v1.10 Mouse [Audient Audient iD14] on usb-0000:c5:00.4-1/input4
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stopped on Transfer TRB for slot 1 ep 8
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stopped on Transfer TRB for slot 1 ep 8
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stopped on Transfer TRB for slot 1 ep 8
[Sun Jun 21 20:42:14 2026] xhci_hcd 0000:c5:00.4: Stopped on Transfer TRB for slot 1 ep 8
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] usb 7-1: 11:0: cannot get min/max values for control 11 (id 11)
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] usb 7-1: 11:0: cannot get min/max values for control 11 (id 11)
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] usb 7-1: 11:0: cannot get min/max values for control 11 (id 11)
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] usb 7-1: 11:0: cannot get min/max values for control 11 (id 11)
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stopped on Transfer TRB for slot 1 ep 8
[Sun Jun 21 20:42:15 2026] usb 7-1: Open EP 0x1, iface=1:2, idx=0
[Sun Jun 21 20:42:15 2026] usb 7-1:   channels=4, rate=48000, format=S16_LE, period_bytes=9600, periods=4, implicit_fb=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Open EP 0x81, iface=1:2, idx=1
[Sun Jun 21 20:42:15 2026] usb 7-1:   channels=4, rate=48000, format=S16_LE, period_bytes=9600, periods=4, implicit_fb=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting params for sync EP 0x81, pipe 0x8480
[Sun Jun 21 20:42:15 2026] usb 7-1: Set up 4 URBS, ret=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting params for data EP 0x1, pipe 0x8400
[Sun Jun 21 20:42:15 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 1:2 for EP 0x81
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] usb 7-1: 11:0: cannot get min/max values for control 11 (id 11)
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:15 2026] usb 7-1: Closing EP 0x1 (count 1)
[Sun Jun 21 20:42:15 2026] usb 7-1: EP 0x1 closed
[Sun Jun 21 20:42:15 2026] usb 7-1: Closing EP 0x81 (count 1)
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 1:0 for EP 0x81
[Sun Jun 21 20:42:15 2026] usb 7-1: EP 0x81 closed
[Sun Jun 21 20:42:15 2026] usb 7-1: Open EP 0x82, iface=2:1, idx=0
[Sun Jun 21 20:42:15 2026] usb 7-1:   channels=10, rate=48000, format=S32_LE, period_bytes=48000, periods=4, implicit_fb=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting params for data EP 0x82, pipe 0x10480
[Sun Jun 21 20:42:15 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 2:1 for EP 0x82
[Sun Jun 21 20:42:15 2026] usb 7-1: Open EP 0x1, iface=1:2, idx=0
[Sun Jun 21 20:42:15 2026] usb 7-1:   channels=4, rate=48000, format=S16_LE, period_bytes=9600, periods=4, implicit_fb=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Open EP 0x81, iface=1:2, idx=1
[Sun Jun 21 20:42:15 2026] usb 7-1:   channels=4, rate=48000, format=S16_LE, period_bytes=9600, periods=4, implicit_fb=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting params for sync EP 0x81, pipe 0x8480
[Sun Jun 21 20:42:15 2026] usb 7-1: Set up 4 URBS, ret=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting params for data EP 0x1, pipe 0x8400
[Sun Jun 21 20:42:15 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 1:2 for EP 0x81
[Sun Jun 21 20:42:15 2026] usb 7-1: Closing EP 0x1 (count 1)
[Sun Jun 21 20:42:15 2026] usb 7-1: EP 0x1 closed
[Sun Jun 21 20:42:15 2026] usb 7-1: Closing EP 0x81 (count 1)
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 1:0 for EP 0x81
[Sun Jun 21 20:42:15 2026] usb 7-1: EP 0x81 closed
[Sun Jun 21 20:42:15 2026] usb 7-1: Closing EP 0x82 (count 1)
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 2:0 for EP 0x82
[Sun Jun 21 20:42:15 2026] usb 7-1: EP 0x82 closed
[Sun Jun 21 20:42:15 2026] usb 7-1: Open EP 0x1, iface=1:1, idx=0
[Sun Jun 21 20:42:15 2026] usb 7-1:   channels=4, rate=48000, format=S32_LE, period_bytes=16384, periods=64, implicit_fb=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Open EP 0x81, iface=1:1, idx=1
[Sun Jun 21 20:42:15 2026] usb 7-1:   channels=4, rate=48000, format=S32_LE, period_bytes=16384, periods=64, implicit_fb=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting params for sync EP 0x81, pipe 0x8480
[Sun Jun 21 20:42:15 2026] usb 7-1: Set up 4 URBS, ret=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting params for data EP 0x1, pipe 0x8400
[Sun Jun 21 20:42:15 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 1:1 for EP 0x81
[Sun Jun 21 20:42:15 2026] usb 7-1: Closing EP 0x1 (count 1)
[Sun Jun 21 20:42:15 2026] usb 7-1: EP 0x1 closed
[Sun Jun 21 20:42:15 2026] usb 7-1: Closing EP 0x81 (count 1)
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 1:0 for EP 0x81
[Sun Jun 21 20:42:15 2026] usb 7-1: EP 0x81 closed
[Sun Jun 21 20:42:15 2026] usb 7-1: Open EP 0x82, iface=2:1, idx=0
[Sun Jun 21 20:42:15 2026] usb 7-1:   channels=10, rate=48000, format=S32_LE, period_bytes=40960, periods=64, implicit_fb=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting params for data EP 0x82, pipe 0x10480
[Sun Jun 21 20:42:15 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 2:1 for EP 0x82
[Sun Jun 21 20:42:15 2026] usb 7-1: Closing EP 0x82 (count 1)
[Sun Jun 21 20:42:15 2026] usb 7-1: Setting usb interface 2:0 for EP 0x82
[Sun Jun 21 20:42:15 2026] usb 7-1: EP 0x82 closed
[Sun Jun 21 20:42:22 2026] usb 7-1: Open EP 0x1, iface=1:2, idx=0
[Sun Jun 21 20:42:22 2026] usb 7-1:   channels=4, rate=48000, format=S16_LE, period_bytes=9600, periods=4, implicit_fb=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Open EP 0x81, iface=1:2, idx=1
[Sun Jun 21 20:42:22 2026] usb 7-1:   channels=4, rate=48000, format=S16_LE, period_bytes=9600, periods=4, implicit_fb=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting params for sync EP 0x81, pipe 0x8480
[Sun Jun 21 20:42:22 2026] usb 7-1: Set up 4 URBS, ret=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting params for data EP 0x1, pipe 0x8400
[Sun Jun 21 20:42:22 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 1:2 for EP 0x81
[Sun Jun 21 20:42:22 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:22 2026] usb 7-1: 11:0: cannot get min/max values for control 11 (id 11)
[Sun Jun 21 20:42:22 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:22 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:22 2026] xhci_hcd 0000:c5:00.4: Stalled endpoint for slot 1 ep 0
[Sun Jun 21 20:42:22 2026] usb 7-1: Closing EP 0x1 (count 1)
[Sun Jun 21 20:42:22 2026] usb 7-1: EP 0x1 closed
[Sun Jun 21 20:42:22 2026] usb 7-1: Closing EP 0x81 (count 1)
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 1:0 for EP 0x81
[Sun Jun 21 20:42:22 2026] usb 7-1: EP 0x81 closed
[Sun Jun 21 20:42:22 2026] usb 7-1: Open EP 0x82, iface=2:1, idx=0
[Sun Jun 21 20:42:22 2026] usb 7-1:   channels=10, rate=48000, format=S32_LE, period_bytes=48000, periods=4, implicit_fb=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting params for data EP 0x82, pipe 0x10480
[Sun Jun 21 20:42:22 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 2:1 for EP 0x82
[Sun Jun 21 20:42:22 2026] usb 7-1: Open EP 0x1, iface=1:2, idx=0
[Sun Jun 21 20:42:22 2026] usb 7-1:   channels=4, rate=48000, format=S16_LE, period_bytes=9600, periods=4, implicit_fb=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Open EP 0x81, iface=1:2, idx=1
[Sun Jun 21 20:42:22 2026] usb 7-1:   channels=4, rate=48000, format=S16_LE, period_bytes=9600, periods=4, implicit_fb=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting params for sync EP 0x81, pipe 0x8480
[Sun Jun 21 20:42:22 2026] usb 7-1: Set up 4 URBS, ret=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting params for data EP 0x1, pipe 0x8400
[Sun Jun 21 20:42:22 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 1:2 for EP 0x81
[Sun Jun 21 20:42:22 2026] usb 7-1: Closing EP 0x1 (count 1)
[Sun Jun 21 20:42:22 2026] usb 7-1: EP 0x1 closed
[Sun Jun 21 20:42:22 2026] usb 7-1: Closing EP 0x81 (count 1)
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 1:0 for EP 0x81
[Sun Jun 21 20:42:22 2026] usb 7-1: EP 0x81 closed
[Sun Jun 21 20:42:22 2026] usb 7-1: Closing EP 0x82 (count 1)
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 2:0 for EP 0x82
[Sun Jun 21 20:42:22 2026] usb 7-1: EP 0x82 closed
[Sun Jun 21 20:42:22 2026] usb 7-1: Open EP 0x1, iface=1:1, idx=0
[Sun Jun 21 20:42:22 2026] usb 7-1:   channels=4, rate=48000, format=S32_LE, period_bytes=16384, periods=64, implicit_fb=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Open EP 0x81, iface=1:1, idx=1
[Sun Jun 21 20:42:22 2026] usb 7-1:   channels=4, rate=48000, format=S32_LE, period_bytes=16384, periods=64, implicit_fb=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting params for sync EP 0x81, pipe 0x8480
[Sun Jun 21 20:42:22 2026] usb 7-1: Set up 4 URBS, ret=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting params for data EP 0x1, pipe 0x8400
[Sun Jun 21 20:42:22 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 1:1 for EP 0x81
[Sun Jun 21 20:42:22 2026] usb 7-1: Closing EP 0x1 (count 1)
[Sun Jun 21 20:42:22 2026] usb 7-1: EP 0x1 closed
[Sun Jun 21 20:42:22 2026] usb 7-1: Closing EP 0x81 (count 1)
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 1:0 for EP 0x81
[Sun Jun 21 20:42:22 2026] usb 7-1: EP 0x81 closed
[Sun Jun 21 20:42:22 2026] usb 7-1: Open EP 0x82, iface=2:1, idx=0
[Sun Jun 21 20:42:22 2026] usb 7-1:   channels=10, rate=48000, format=S32_LE, period_bytes=40960, periods=64, implicit_fb=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting params for data EP 0x82, pipe 0x10480
[Sun Jun 21 20:42:22 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 2:1 for EP 0x82
[Sun Jun 21 20:42:22 2026] usb 7-1: Closing EP 0x82 (count 1)
[Sun Jun 21 20:42:22 2026] usb 7-1: Setting usb interface 2:0 for EP 0x82
[Sun Jun 21 20:42:22 2026] usb 7-1: EP 0x82 closed
[Sun Jun 21 20:42:27 2026] usb 7-1: Open EP 0x1, iface=1:1, idx=0
[Sun Jun 21 20:42:27 2026] usb 7-1:   channels=4, rate=48000, format=S32_LE, period_bytes=2048, periods=3, implicit_fb=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Open EP 0x81, iface=1:1, idx=1
[Sun Jun 21 20:42:27 2026] usb 7-1:   channels=4, rate=48000, format=S32_LE, period_bytes=2048, periods=3, implicit_fb=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Setting params for sync EP 0x81, pipe 0x8480
[Sun Jun 21 20:42:27 2026] usb 7-1: Set up 4 URBS, ret=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Setting params for data EP 0x1, pipe 0x8400
[Sun Jun 21 20:42:27 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Setting usb interface 1:1 for EP 0x81
[Sun Jun 21 20:42:27 2026] usb 7-1: Starting data EP 0x1 (running 0)
[Sun Jun 21 20:42:27 2026] usb 7-1: 8 URBs submitted for EP 0x1
[Sun Jun 21 20:42:27 2026] usb 7-1: Starting sync EP 0x81 (running 0)
[Sun Jun 21 20:42:27 2026] usb 7-1: 4 URBs submitted for EP 0x81
[Sun Jun 21 20:42:27 2026] usb 7-1: 1:1 Start Playback PCM
[Sun Jun 21 20:42:27 2026] usb 7-1: Open EP 0x82, iface=2:1, idx=0
[Sun Jun 21 20:42:27 2026] usb 7-1:   channels=10, rate=48000, format=S32_LE, period_bytes=5120, periods=3, implicit_fb=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Setting params for data EP 0x82, pipe 0x10480
[Sun Jun 21 20:42:27 2026] usb 7-1: Set up 12 URBS, ret=0
[Sun Jun 21 20:42:27 2026] usb 7-1: Setting usb interface 2:1 for EP 0x82
[Sun Jun 21 20:42:27 2026] usb 7-1: Stopping sync EP 0x81 (running 1)
[Sun Jun 21 20:42:27 2026] usb 7-1: Stopping data EP 0x1 (running 1)
[Sun Jun 21 20:42:27 2026] usb 7-1: 1:1 Stop Playback PCM
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Underrun event on slot 1 ep 1
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Overrun event on slot 1 ep 2
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Stopped on No-op or Link TRB for slot 1 ep 2
[Sun Jun 21 20:42:27 2026] usb 7-1: Starting data EP 0x1 (running 0)
[Sun Jun 21 20:42:27 2026] usb 7-1: 8 URBs submitted for EP 0x1
[Sun Jun 21 20:42:27 2026] usb 7-1: Starting sync EP 0x81 (running 0)
[Sun Jun 21 20:42:27 2026] usb 7-1: 4 URBs submitted for EP 0x81
[Sun Jun 21 20:42:27 2026] usb 7-1: 1:1 Start Playback PCM
[Sun Jun 21 20:42:27 2026] usb 7-1: Starting data EP 0x82 (running 0)
[Sun Jun 21 20:42:27 2026] usb 7-1: 12 URBs submitted for EP 0x82
[Sun Jun 21 20:42:27 2026] usb 7-1: 2:1 Start Capture PCM
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 2.
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 2.
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:42:27 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 2.


[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:14 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:14 2026] usb 7-1: frame 5 active: -18
[Sun Jun 21 20:44:14 2026] usb 7-1: frame 6 active: -18
[Sun Jun 21 20:44:14 2026] usb 7-1: frame 7 active: -18
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 5 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 6 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 7 active: -18
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 2.
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 0 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 1 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 2 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 3 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: Stopping sync EP 0x81 (running 1)
[Sun Jun 21 20:44:59 2026] usb 7-1: Stopping data EP 0x1 (running 1)
[Sun Jun 21 20:44:59 2026] usb 7-1: 1:1 Stop Playback PCM
[Sun Jun 21 20:44:59 2026] usb 7-1: Stopping data EP 0x82 (running 1)
[Sun Jun 21 20:44:59 2026] usb 7-1: 2:1 Stop Capture PCM
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Stopped on Transfer TRB for slot 1 ep 2
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Underrun event on slot 1 ep 1
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Stopped on Transfer TRB for slot 1 ep 4
[Sun Jun 21 20:44:59 2026] usb 7-1: Starting data EP 0x1 (running 0)
[Sun Jun 21 20:44:59 2026] usb 7-1: 8 URBs submitted for EP 0x1
[Sun Jun 21 20:44:59 2026] usb 7-1: Starting sync EP 0x81 (running 0)
[Sun Jun 21 20:44:59 2026] usb 7-1: 4 URBs submitted for EP 0x81
[Sun Jun 21 20:44:59 2026] usb 7-1: 1:1 Start Playback PCM
[Sun Jun 21 20:44:59 2026] usb 7-1: Starting data EP 0x82 (running 0)
[Sun Jun 21 20:44:59 2026] usb 7-1: 12 URBs submitted for EP 0x82
[Sun Jun 21 20:44:59 2026] usb 7-1: 2:1 Start Capture PCM
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 2.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 2.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 2.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:44:59 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 0 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 1 active: -18
[Sun Jun 21 20:44:59 2026] usb 7-1: frame 2 active: -18
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 2.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:45:32 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:45:32 2026] retire_capture_urb: 13 callbacks suppressed
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 2 active: -18
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 3 active: -18
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 4 active: -18
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 5 active: -18
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 6 active: -18
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 7 active: -18
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 0 active: -18
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 1 active: -18
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 2 active: -18
[Sun Jun 21 20:45:32 2026] usb 7-1: frame 3 active: -18
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 4, set skip flag, skip now
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 4.
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 1, set skip flag, skip now
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 1.
[Sun Jun 21 20:48:12 2026] retire_capture_urb: 4 callbacks suppressed
[Sun Jun 21 20:48:12 2026] usb 7-1: frame 7 active: -18
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Miss service interval error for slot 1 ep 2, set skip flag, skip now
[Sun Jun 21 20:48:12 2026] xhci_hcd 0000:c5:00.4: Found td. Clear skip flag for slot 1 ep 2.
[Sun Jun 21 20:48:12 2026] usb 7-1: frame 0 active: -18


[-- Attachment #3: lspci-00_08_3-rootport-vvv.txt --]
[-- Type: text/plain, Size: 4060 bytes --]

00:08.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Strix/Strix Halo Internal GPP Bridge to Bus [C:A] (prog-if 00 [Normal decode])
	Subsystem: Advanced Micro Devices, Inc. [AMD] Strix/Strix Halo Internal GPP Bridge to Bus [C:A]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupts: pin B disabled, MSI(X) routed to IRQ 37
	IOMMU group: 11
	Bus: primary=00, secondary=c5, subordinate=c5, sec-latency=0
	I/O behind bridge: 0000f000-00000fff [disabled] [32-bit]
	Memory behind bridge: b4b00000-b4efffff [size=4M] [32-bit]
	Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff [disabled] [64-bit]
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Root Port (Slot-), IntMsgNum 0
		DevCap:	MaxPayload 512 bytes, PhantFunc 0
			ExtTag+ RBE+ TEE-IO-
		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 16GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
			ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt+ AutBWInt+ FltModeDis-
		LnkSta:	Speed 16GT/s, Width x16
			TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
		RootCap: CRSVisible+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible+
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis- NROPrPrP- LTR-
			 10BitTagComp+ 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- LN System CLS Not Supported, TPHComp- ExtTPHComp- ARIFwd-
			 AtomicOpsCap: Routing- 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd-
			 AtomicOpsCtl: ReqEn- EgressBlck-
			 IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq-
			 10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
		LnkCap2: Supported Link Speeds: 2.5-16GT/s, Crosslink- Retimer+ 2Retimers+ DRS-
		LnkCtl2: Target Link Speed: 16GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete+ EqualizationPhase1+
			 EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode-
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee00000  Data: 0000
	Capabilities: [c0] Subsystem: Advanced Micro Devices, Inc. [AMD] Strix/Strix Halo Internal GPP Bridge to Bus [C:A]
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [270 v1] Secondary PCI Express
		LnkCtl3: LnkEquIntrruptEn- PerformEqu-
		LaneErrStat: 0
	Capabilities: [2a0 v1] Access Control Services
		ACSCap:	SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans+
		ACSCtl:	SrcValid+ TransBlk- ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-
	Capabilities: [400 v1] Data Link Feature <?>
	Capabilities: [410 v1] Physical Layer 16.0 GT/s
		Phy16Sta: EquComplete+ EquPhase1+ EquPhase2+ EquPhase3+ LinkEquRequest-
	Capabilities: [450 v1] Lane Margining at the Receiver
		PortCap: Uses Driver-
		PortSta: MargReady- MargSoftReady-
	Kernel driver in use: pcieport
	Kernel modules: shpchp


[-- Attachment #4: lspci-c5_00_4-xhci-vvv.txt --]
[-- Type: text/plain, Size: 2844 bytes --]

c5:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Strix Halo USB 3.1 xHCI (prog-if 30 [XHCI])
	Subsystem: Advanced Micro Devices, Inc. [AMD] Strix Halo USB 3.1 xHCI
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupts: pin D disabled, MSI(X) routed to IRQ 44
	IOMMU group: 27
	Region 0: Memory at b4d00000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: [48] Vendor Specific Information: Len=08 <?>
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [64] Express (v2) Endpoint, IntMsgNum 0
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0W TEE-IO-
		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 16GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- FltModeDis-
		LnkSta:	Speed 16GT/s, Width x16
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR-
			 10BitTagComp+ 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
			 AtomicOpsCtl: ReqEn-
			 IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq-
			 10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported, FltMode-
	Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [c0] MSI-X: Enable+ Count=1 Masked-
		Vector table: BAR=0 offset=000fe000
		PBA: BAR=0 offset=000ff000
	Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
	Capabilities: [2a0 v1] Access Control Services
		ACSCap:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
		ACSCtl:	SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci


[-- Attachment #5: xhci-c5_00_4-reg-cap.txt --]
[-- Type: text/plain, Size: 192 bytes --]

CAPLENGTH = 0x01200030
HCSPARAMS1 = 0x02000840
HCSPARAMS2 = 0x140000f7
HCSPARAMS3 = 0x001d000a
HCCPARAMS1 = 0x0118ffc5
DOORBELLOFF = 0x00002000
RUNTIMEOFF = 0x00001000
HCCPARAMS2 = 0x0000003f

^ permalink raw reply

* Re: [BUG] xHCI: AMD Strix Halo [1022:158b] isochronous full-duplex USB audio instability (frame active: -18)
From: Michal Pecio @ 2026-06-21 18:28 UTC (permalink / raw)
  To: Ingo Haenlein; +Cc: linux-usb
In-Reply-To: <48aadb68-b4d1-4dd6-82ca-76d0846b4ae1@gmx.de>

On Sun, 21 Jun 2026 18:30:23 +0200, Ingo Haenlein wrote:
> Hello,
> 
> I am reporting a reproducible isochronous full-duplex USB audio 
> instability on an AMD Strix Halo system (HP ZBook Ultra G1a) under 
> Linux. A detailed bug report including kernel logs, USB descriptors, and 
> endpoint data has been filed at:
> 
> https://bugzilla.kernel.org/show_bug.cgi?id=221650
> 
> This mail summarizes the findings and forwards the issue to linux-usb as 
> the problem appears to be in the xHCI host controller path rather than 
> in snd-usb-audio.
> 
> 
> Affected system
> ---------------
> 
> Machine:    HP ZBook Ultra G1a (AMD Strix Halo / Ryzen AI Max)
> Kernel:
> 7.0.12-zen1-1-zen (linux-zen, Arch Linux)
> 7.0.12.arch1-1 (linux, Arch Linux, vanilla kernel.org sources)
> Controller: c5:00.4 AMD Strix Halo USB 3.1 xHCI [1022:158b]
> Driver:     xhci_hcd, CONFIG_USB_XHCI_PCI=y
> 
> 
> Symptom
> -------
> 
> During continuous full-duplex USB audio operation, round-trip latency jumps
> discretely. Kernel logs show:
> 
>    frame active: -18
>    retire_capture_urb

Not sure what you mean and I can't find these strings in USB audio
drievr, but -18 is -EXDEV i.e. Missed Service Error in xHCI.

Will you see messages about it after enabling dynamic debug?

echo 'func handle_tx_event +p' >/proc/dynamic_debug/control

> The Audient iD44 MK2 works without this issue on a Lenovo ThinkPad X1
> Gen 2 using the same Linux audio workflow. This confirms a
> host-controller-specific problem.

And since it's unique to a recent AMD system, maybe this?
https://lore.kernel.org/linux-usb/18b4e4f7089aa4f1.da8dbe994ae3bb77.445e21b98b0b205b@GordonMsi/

Regards,
Michal

^ permalink raw reply

* [BUG] xHCI: AMD Strix Halo [1022:158b] isochronous full-duplex USB audio instability (frame active: -18)
From: Ingo Haenlein @ 2026-06-21 16:30 UTC (permalink / raw)
  To: linux-usb

[-- Attachment #1: Type: text/plain, Size: 3359 bytes --]

Hello,

I am reporting a reproducible isochronous full-duplex USB audio 
instability on an AMD Strix Halo system (HP ZBook Ultra G1a) under 
Linux. A detailed bug report including kernel logs, USB descriptors, and 
endpoint data has been filed at:

https://bugzilla.kernel.org/show_bug.cgi?id=221650

This mail summarizes the findings and forwards the issue to linux-usb as 
the problem appears to be in the xHCI host controller path rather than 
in snd-usb-audio.


Affected system
---------------

Machine:    HP ZBook Ultra G1a (AMD Strix Halo / Ryzen AI Max)
Kernel:
7.0.12-zen1-1-zen (linux-zen, Arch Linux)
7.0.12.arch1-1 (linux, Arch Linux, vanilla kernel.org sources)
Controller: c5:00.4 AMD Strix Halo USB 3.1 xHCI [1022:158b]
Driver:     xhci_hcd, CONFIG_USB_XHCI_PCI=y


Symptom
-------

During continuous full-duplex USB audio operation, round-trip latency jumps
discretely. Kernel logs show:

   frame active: -18
   retire_capture_urb
   Stop Playback / Start Playback
   No URB submission due to implicit fb sync

The jumps are quantized and related to USB/audio period scheduling 
boundaries.
ALSA hw_params remain unchanged during the events.


Reproduced with multiple devices
--------------------------------

All devices connected to the same controller [1022:158b]:

   Audient iD44 MK2   [2708:000b]  — strongest reproducer, implicit feedback
   Audient iD14 MK1   [2708:0002]  — same symptom, lower severity
   Focusrite Scarlett 2i4 [1235:800a] — explicit feedback, same symptom
   Behringer FLOW 8   [1397:050c]  — same symptom

The Audient iD44 MK2 works without this issue on a Lenovo ThinkPad X1 Gen 2
using the same Linux audio workflow. This confirms a 
host-controller-specific
problem.


Already tested / ruled out
--------------------------

- XHCI_LIMIT_ENDPOINT_INTERVAL_9 applied to [1022:158b]: no change
- XHCI_LIMIT_ENDPOINT_INTERVAL_7 applied to [1022:158b]: no change
- bInterval=8 hypothesis: falsified by Behringer FLOW 8 reproduction
   (FLOW 8 has no bInterval=8 isochronous endpoint)
- Buffer sizes up to 128 frames / 4 periods: issue persists
- Issue is not limited to implicit-feedback devices


Current hypothesis
------------------

The common pattern across all affected devices is:

   AMD Strix Halo xHCI [1022:158b]
   + high-speed USB 2.0
   + full-duplex isochronous audio
   + EP 0x01 OUT (playback) + EP 0x81 IN (capture/sync)
   + implicit or explicit feedback

The issue appears to sit in xHCI isochronous scheduling, URB retirement,
or endpoint state handling specific to the Strix Halo xHCI controller.
It is not specific to any single device, manufacturer, or feedback mode.


Additional data
---------------

Output of lsusb attached in text file.

Full kernel logs, USB descriptor endpoint data for all
tested devices, and ALSA info dumps are available in the bugzilla report:

https://bugzilla.kernel.org/show_bug.cgi?id=221650

I am happy to run additional tests, provide kernel debug output, or test
experimental patches.

Relevant Strix Halo xHCI PCI IDs present on this system:

   1022:1587
   1022:1588
   1022:1589
   1022:158b

The affected bus for all tested devices: usb7 / c5:00.4 [1022:158b]

Thank you for looking into this.

Ingo

[-- Attachment #2: lsusb.txt --]
[-- Type: text/plain, Size: 107249 bytes --]


Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            7.00
  iManufacturer           3 Linux 7.0.12-arch1-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:c3:00.4
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Negotiated speed: SuperSpeed+ (10Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            7.00
  iManufacturer           3 Linux 7.0.12-arch1-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:c3:00.4
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval              12
        bMaxBurst               0
        wBytesPerInterval       2

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            7.00
  iManufacturer           3 Linux 7.0.12-arch1-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:c5:00.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12

Bus 003 Device 002: ID 1d5c:5801 Fresco Logic USB2.0 Hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x1d5c Fresco Logic
  idProduct          0x5801 USB2.0 Hub
  bcdDevice            1.01
  iManufacturer           1 Fresco Logic, Inc.
  iProduct                2 USB2.0 Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      1 Single TT
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      2 TT per port
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12

Bus 003 Device 003: ID 046d:c548 Logitech, Inc. Logi Bolt Receiver
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x046d Logitech, Inc.
  idProduct          0xc548 Logi Bolt Receiver
  bcdDevice            5.01
  iManufacturer           1 Logitech
  iProduct                2 USB Receiver
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0054
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          4 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               98mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      67
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     133
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      54
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1

Bus 003 Device 004: ID 06cb:0106 Synaptics, Inc. 
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass        16 [unknown]
  bDeviceProtocol       255 
  bMaxPacketSize0         8
  idVendor           0x06cb Synaptics, Inc.
  idProduct          0x0106 
  bcdDevice            0.00
  iManufacturer           0 
  iProduct                0 
  iSerial                 1 be7396d0dab2
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0027
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4

Bus 003 Device 005: ID 0424:4206 Microchip Technology, Inc. (formerly SMSC) USB4206 Smart Hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x0424 Microchip Technology, Inc. (formerly SMSC)
  idProduct          0x4206 USB4206 Smart Hub
  bcdDevice            6.25
  iManufacturer           1 Microchip
  iProduct                2 USB4206 Smart Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      1 Single TT
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      2 TT per port
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12

Bus 003 Device 006: ID 0e8d:8c38 MediaTek Inc. Wireless_Device
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 [unknown]
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0e8d MediaTek Inc.
  idProduct          0x8c38 Wireless_Device
  bcdDevice            1.00
  iManufacturer           5 MediaTek Inc.
  iProduct                6 Wireless_Device
  iSerial                 7 000000000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x00fe
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          8 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         3
      bFunctionClass        224 Wireless
      bFunctionSubClass       1 Radio Frequency
      bFunctionProtocol       1 Bluetooth
      iFunction               4 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              1 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       6
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              2 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x003f  1x 63 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x003f  1x 63 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              3 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x8a  EP 10 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x0a  EP 10 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              3 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x8a  EP 10 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x0a  EP 10 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1

Bus 003 Device 007: ID 0424:4252 Microchip Technology, Inc. (formerly SMSC) USB4206 Smart Hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x0424 Microchip Technology, Inc. (formerly SMSC)
  idProduct          0x4252 USB4206 Smart Hub
  bcdDevice            2.33
  iManufacturer           1 Microchip
  iProduct                2 USB4206 Smart Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      1 Single TT
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      2 TT per port
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12

Bus 003 Device 008: ID 0424:4216 Microchip Technology, Inc. (formerly SMSC) USB4216 Smart Hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x0424 Microchip Technology, Inc. (formerly SMSC)
  idProduct          0x4216 USB4216 Smart Hub
  bcdDevice            2.43
  iManufacturer           1 Microchip
  iProduct                2 USB4216 Smart Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      1 Single TT
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      2 TT per port
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12

Bus 003 Device 009: ID 1c75:0206 Arturia Arturia BeatStep
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1c75 Arturia
  idProduct          0x0206 Arturia BeatStep
  bcdDevice            1.00
  iManufacturer           1 Arturia
  iProduct                2 Arturia BeatStep
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0065
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength       0x0009
        bInCollection           1
        baInterfaceNr(0)        1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      3 MIDI Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      MIDIStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength       0x0041
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 1
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 2
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 3
        bNrInputPins            1
        baSourceID( 0)          2
        BaSourcePin( 0)         1
        iJack                   0 
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 4
        bNrInputPins            1
        baSourceID( 0)          1
        BaSourcePin( 0)         1
        iJack                   0 
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 5
          bDescriptorType        37
          bDescriptorSubtype      1 (Invalid)
          bNumEmbMIDIJack         1
          baAssocJackID( 0)       1
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
        bRefresh                0
        bSynchAddress           0
        MIDIStreaming Endpoint Descriptor:
          bLength                 5
          bDescriptorType        37
          bDescriptorSubtype      1 (Invalid)
          bNumEmbMIDIJack         1
          baAssocJackID( 0)       3

Bus 003 Device 010: ID 0424:7260 Microchip Technology, Inc. (formerly SMSC) USB2 Controller Hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0424 Microchip Technology, Inc. (formerly SMSC)
  idProduct          0x7260 USB2 Controller Hub
  bcdDevice            6.25
  iManufacturer           1 Microchip Tech
  iProduct                2 USB2 Controller Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0032
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              3 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      29
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x05  EP 5 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1

Bus 003 Device 011: ID 0424:7240 Microchip Technology, Inc. (formerly SMSC) USB2 Controller Hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0424 Microchip Technology, Inc. (formerly SMSC)
  idProduct          0x7240 USB2 Controller Hub
  bcdDevice            2.09
  iManufacturer           1 Microchip Tech
  iProduct                2 USB2 Controller Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0012
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0 

Bus 003 Device 012: ID 0424:7240 Microchip Technology, Inc. (formerly SMSC) USB2 Controller Hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.01
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0424 Microchip Technology, Inc. (formerly SMSC)
  idProduct          0x7240 USB2 Controller Hub
  bcdDevice            2.09
  iManufacturer           1 Microchip Tech
  iProduct                2 USB2 Controller Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0012
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0 

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Negotiated speed: SuperSpeed+ (10Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            7.00
  iManufacturer           3 Linux 7.0.12-arch1-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:c5:00.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval              12
        bMaxBurst               0
        wBytesPerInterval       2

Bus 004 Device 002: ID 8087:0b40 Intel Corp. USB3.0 Hub
Negotiated speed: SuperSpeed+ (10Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x8087 Intel Corp.
  idProduct          0x0b40 USB3.0 Hub
  bcdDevice           12.34
  iManufacturer           1 Intel Corporation.
  iProduct                2 USB3.0 Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           19
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval               8
        bMaxBurst               0
        wBytesPerInterval       2

Bus 004 Device 003: ID 0424:7206 Microchip Technology, Inc. (formerly SMSC) USB7206 Smart Hub
Negotiated speed: SuperSpeed+ (10Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x0424 Microchip Technology, Inc. (formerly SMSC)
  idProduct          0x7206 USB7206 Smart Hub
  bcdDevice            6.25
  iManufacturer           1 Microchip
  iProduct                2 USB7206 Smart Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           19
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval               8
        bMaxBurst               0
        wBytesPerInterval       2

Bus 004 Device 004: ID 0424:7252 Microchip Technology, Inc. (formerly SMSC) USB7206 Smart Hub
Negotiated speed: SuperSpeed+ (10Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x0424 Microchip Technology, Inc. (formerly SMSC)
  idProduct          0x7252 USB7206 Smart Hub
  bcdDevice            2.33
  iManufacturer           1 Microchip
  iProduct                2 USB7206 Smart Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           19
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval               8
        bMaxBurst               0
        wBytesPerInterval       2

Bus 004 Device 005: ID 0bda:8156 Realtek Semiconductor Corp. USB 10/100/1G/2.5G LAN
Negotiated speed: SuperSpeed (5Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass            0 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x0bda Realtek Semiconductor Corp.
  idProduct          0x8156 USB 10/100/1G/2.5G LAN
  bcdDevice           31.10
  iManufacturer           1 Realtek
  iProduct                2 USB 10/100/1G/2.5G LAN
  iSerial                 6 0113000001
  bNumConfigurations      3
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0039
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              256mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               3
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               3
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval              11
        bMaxBurst               0
        wBytesPerInterval       2
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0068
    bNumInterfaces          2
    bConfigurationValue     2
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              256mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass     13 [unknown]
      bInterfaceProtocol      0 
      iInterface              5 
      CDC Header:
        bcdCDC               1.10
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      CDC Ethernet:
        iMacAddress                      3 (??)
        bmEthernetStatistics    0x0031501f
        wMaxSegmentSize               1518
        wNumberMCFilters            0x8000
        bNumberPowerFilters              0
      CDC NCM:
        bcdNcmVersion        1.00
        bmNetworkCapabilities 0x2b
          8-byte ntb input size
          max datagram size
          net address
          packet filter
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval              11
        bMaxBurst               0
        wBytesPerInterval       8
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      1 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      1 
      iInterface              4 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               3
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               3
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0062
    bNumInterfaces          2
    bConfigurationValue     3
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              256mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      6 Ethernet Networking
      bInterfaceProtocol      0 
      iInterface              5 
      CDC Header:
        bcdCDC               1.10
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      CDC Ethernet:
        iMacAddress                      3 (??)
        bmEthernetStatistics    0x0031501f
        wMaxSegmentSize               1518
        wNumberMCFilters            0x8000
        bNumberPowerFilters              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval              11
        bMaxBurst               0
        wBytesPerInterval       8
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              4 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               3
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               3

Bus 004 Device 006: ID 0424:7216 Microchip Technology, Inc. (formerly SMSC) USB7216 Smart Hub
Negotiated speed: SuperSpeed+ (10Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x0424 Microchip Technology, Inc. (formerly SMSC)
  idProduct          0x7216 USB7216 Smart Hub
  bcdDevice            2.43
  iManufacturer           1 Microchip
  iProduct                2 USB7216 Smart Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           19
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval               8
        bMaxBurst               0
        wBytesPerInterval       2

Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            7.00
  iManufacturer           3 Linux 7.0.12-arch1-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:c5:00.3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12

Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Negotiated speed: SuperSpeed+ (10Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            7.00
  iManufacturer           3 Linux 7.0.12-arch1-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:c5:00.3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval              12
        bMaxBurst               0
        wBytesPerInterval       2

Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            7.00
  iManufacturer           3 Linux 7.0.12-arch1-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:c5:00.4
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12

Bus 007 Device 002: ID 2708:0002 Audient Audient iD14
Negotiated speed: High Speed (480Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 [unknown]
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x2708 Audient
  idProduct          0x0002 Audient iD14
  bcdDevice            1.11
  iManufacturer           1 Audient
  iProduct                3 Audient iD14
  iSerial                 0 
  bNumConfigurations      2
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0214
    bNumInterfaces          5
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         3
      bFunctionClass          1 Audio
      bFunctionSubClass       0 [unknown]
      bFunctionProtocol      32 
      iFunction               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32 
      iInterface              3 Audient iD14
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        bCategory               8
        wTotalLength       0x0125
        bmControls           0x00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               41
        bmAttributes            3 Internal programmable clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           14 Audient Internal Clock
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               42
        bmAttributes            0 External clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           15 Audient S/PDIF Clock
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               43
        bmAttributes            0 External clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           16 Audient ADAT Clock
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype     11 (CLOCK_SELECTOR)
        bClockID               40
        bNrInPins               3
        baCSourceID(0)         41
        baCSourceID(1)         42
        baCSourceID(2)         43
        bmControls           0x03
          Clock Selector Control (read/write)
        iClockSelector         13 Audient Clock Selector
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             2
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bCSourceID             40
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames          18 Analogue 1
        bmControls         0x0000
        iTerminal               6 Audient iD14 
      AudioControl Interface Descriptor:
        bLength                26
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                10
        bSourceID              51
        bmaControls(0)     0x00000000
        bmaControls(1)     0x00000000
        bmaControls(2)     0x00000000
        bmaControls(3)     0x00000000
        bmaControls(4)     0x00000000
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            20
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID              10
        bCSourceID             40
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0201 Microphone
        bAssocTerminal          0
        bCSourceID             40
        bNrChannels            10
        bmChannelConfig    0x00000000
        iChannelNames          22 Analogue 1
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                20
        bDescriptorType        36
        bDescriptorSubtype      9 (EXTENSION_UNIT)
        bUnitID                51
        wExtensionCode     0x0000
        bNrInPins               5
        baSourceID(0)           2
        baSourceID(1)           1
        baSourceID(2)          12
        baSourceID(3)          54
        baSourceID(4)          55
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls           0x00
        iExtension              0 
      AudioControl Interface Descriptor:
        bLength                50
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                11
        bSourceID               1
        bmaControls(0)    0x00000000
        bmaControls(1)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(2)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(3)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(4)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(5)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(6)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(7)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(8)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(9)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(10)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            22
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID              11
        bCSourceID             40
        bmControls         0x0000
        iTerminal               7 Audient iD14 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      9 (EXTENSION_UNIT)
        bUnitID                50
        wExtensionCode     0x0000
        bNrInPins               2
        baSourceID(0)           2
        baSourceID(1)           1
        bNrChannels            14
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls           0x00
        iExtension              0 
      AudioControl Interface Descriptor:
        bLength                21
        bDescriptorType        36
        bDescriptorSubtype      4 (MIXER_UNIT)
        bUnitID                60
        bNrInPins               1
        baSourceID(0)          50
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmMixerControls(0)   0xff
        bmControls           0xff
          Cluster Control (read/write)
          Underflow Control (read/write)
          Overflow Control (read/write)
        iMixer                255 (error)
      Warning: Junk at end of descriptor (6 bytes):
        ff ff ff ff 00 00 
      AudioControl Interface Descriptor:
        bLength                26
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                12
        bSourceID              60
        bmaControls(0)     0x00000000
        bmaControls(1)     0x0000000c
          Volume Control (read/write)
        bmaControls(2)     0x0000000c
          Volume Control (read/write)
        bmaControls(3)     0x0000000c
          Volume Control (read/write)
        bmaControls(4)     0x0000000c
          Volume Control (read/write)
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      9 (EXTENSION_UNIT)
        bUnitID                55
        wExtensionCode     0x0002
        bNrInPins               1
        baSourceID(0)          12
        bNrChannels             2
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls           0x00
        iExtension              0 
      AudioControl Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      9 (EXTENSION_UNIT)
        bUnitID                54
        wExtensionCode     0x0001
        bNrInPins               1
        baSourceID(0)          12
        bNrChannels             6
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls           0x00
        iExtension              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 Audient iD14 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 Audient iD14 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames          18 Analogue 1
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x00d0  1x 208 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         2 Decoded PCM samples
          wLockDelay         0x0008
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 Audient iD14 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames          18 Analogue 1
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            2
        bBitResolution         16
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0068  1x 104 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         2 Decoded PCM samples
          wLockDelay         0x0008
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 Audient iD14 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 Audient iD14 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          22
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels            10
        bmChannelConfig    0x00000000
        iChannelNames          22 Analogue 1
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0208  1x 520 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         2 Decoded PCM samples
          wLockDelay         0x0008
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      1 
      iInterface             17 Audient DFU
      Device Firmware Upgrade Interface Descriptor:
        bLength                             9
        bDescriptorType                    33
        bmAttributes                        7
          Will Not Detach
          Manifestation Tolerant
          Upload Supported
          Download Supported
        wDetachTimeout                    250 milliseconds
        wTransferSize                      64 bytes
        bcdDFUVersion                   1.10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      52
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               8
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0214
    bNumInterfaces          5
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         3
      bFunctionClass          1 Audio
      bFunctionSubClass       0 [unknown]
      bFunctionProtocol      32 
      iFunction               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32 
      iInterface              3 Audient iD14
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        bCategory               8
        wTotalLength       0x0125
        bmControls           0x00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               41
        bmAttributes            3 Internal programmable clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           14 Audient Internal Clock
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               42
        bmAttributes            0 External clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           15 Audient S/PDIF Clock
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID               43
        bmAttributes            0 External clock 
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource           16 Audient ADAT Clock
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype     11 (CLOCK_SELECTOR)
        bClockID               40
        bNrInPins               3
        baCSourceID(0)         41
        baCSourceID(1)         42
        baCSourceID(2)         43
        bmControls           0x03
          Clock Selector Control (read/write)
        iClockSelector         13 Audient Clock Selector
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             2
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bCSourceID             40
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames          18 Analogue 1
        bmControls         0x0000
        iTerminal               6 Audient iD14 
      AudioControl Interface Descriptor:
        bLength                26
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                10
        bSourceID              51
        bmaControls(0)     0x00000000
        bmaControls(1)     0x00000000
        bmaControls(2)     0x00000000
        bmaControls(3)     0x00000000
        bmaControls(4)     0x00000000
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            20
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID              10
        bCSourceID             40
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0201 Microphone
        bAssocTerminal          0
        bCSourceID             40
        bNrChannels            10
        bmChannelConfig    0x00000000
        iChannelNames          22 Analogue 1
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                20
        bDescriptorType        36
        bDescriptorSubtype      9 (EXTENSION_UNIT)
        bUnitID                51
        wExtensionCode     0x0000
        bNrInPins               5
        baSourceID(0)           2
        baSourceID(1)           1
        baSourceID(2)          12
        baSourceID(3)          54
        baSourceID(4)          55
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls           0x00
        iExtension              0 
      AudioControl Interface Descriptor:
        bLength                50
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                11
        bSourceID               1
        bmaControls(0)    0x00000000
        bmaControls(1)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(2)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(3)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(4)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(5)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(6)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(7)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(8)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(9)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        bmaControls(10)    0x03300000
          Input gain Control (read/write)
          Phase inverter Control (read/write)
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            22
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID              11
        bCSourceID             40
        bmControls         0x0000
        iTerminal               7 Audient iD14 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      9 (EXTENSION_UNIT)
        bUnitID                50
        wExtensionCode     0x0000
        bNrInPins               2
        baSourceID(0)           2
        baSourceID(1)           1
        bNrChannels            14
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls           0x00
        iExtension              0 
      AudioControl Interface Descriptor:
        bLength                21
        bDescriptorType        36
        bDescriptorSubtype      4 (MIXER_UNIT)
        bUnitID                60
        bNrInPins               1
        baSourceID(0)          50
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmMixerControls(0)   0xff
        bmControls           0xff
          Cluster Control (read/write)
          Underflow Control (read/write)
          Overflow Control (read/write)
        iMixer                255 (error)
      Warning: Junk at end of descriptor (6 bytes):
        ff ff ff ff 00 00 
      AudioControl Interface Descriptor:
        bLength                26
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                12
        bSourceID              60
        bmaControls(0)     0x00000000
        bmaControls(1)     0x0000000c
          Volume Control (read/write)
        bmaControls(2)     0x0000000c
          Volume Control (read/write)
        bmaControls(3)     0x0000000c
          Volume Control (read/write)
        bmaControls(4)     0x0000000c
          Volume Control (read/write)
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      9 (EXTENSION_UNIT)
        bUnitID                55
        wExtensionCode     0x0002
        bNrInPins               1
        baSourceID(0)          12
        bNrChannels             2
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls           0x00
        iExtension              0 
      AudioControl Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      9 (EXTENSION_UNIT)
        bUnitID                54
        wExtensionCode     0x0001
        bNrInPins               1
        baSourceID(0)          12
        bNrChannels             6
        bmChannelConfig    0x00000000
        iChannelNames           0 
        bmControls           0x00
        iExtension              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 Audient iD14 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 Audient iD14 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames          18 Analogue 1
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x00d0  1x 208 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         2 Decoded PCM samples
          wLockDelay         0x0008
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              4 Audient iD14 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           2
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             4
        bmChannelConfig    0x00000000
        iChannelNames          18 Analogue 1
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            2
        bBitResolution         16
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0068  1x 104 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         2 Decoded PCM samples
          wLockDelay         0x0008
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 Audient iD14 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 Audient iD14 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          22
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels            10
        bmChannelConfig    0x00000000
        iChannelNames          22 Analogue 1
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0208  1x 520 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         2 Decoded PCM samples
          wLockDelay         0x0008
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      1 
      iInterface             17 Audient DFU
      Device Firmware Upgrade Interface Descriptor:
        bLength                             9
        bDescriptorType                    33
        bmAttributes                        7
          Will Not Detach
          Manifestation Tolerant
          Upload Supported
          Download Supported
        wDetachTimeout                    250 milliseconds
        wTransferSize                      64 bytes
        bcdDFUVersion                   1.10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      52
          Report Descriptors: 
            ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               8
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 [unknown]
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  bNumConfigurations      2
Device Status:     0x0000
  (Bus Powered)

Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Negotiated speed: SuperSpeed+ (10Gbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            7.00
  iManufacturer           3 Linux 7.0.12-arch1-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:c5:00.4
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval              12
        bMaxBurst               0
        wBytesPerInterval       2

^ permalink raw reply

* Re: [PATCH 1/2] tracing: Move non-trace_printk prototypes back to kernel.h
From: Steven Rostedt @ 2026-06-21 13:24 UTC (permalink / raw)
  To: Yury Norov, Steven Rostedt
  Cc: linux-kernel, linux-trace-kernel, Masami Hiramatsu, Mark Rutland,
	Mathieu Desnoyers, Andrew Morton, Linus Torvalds,
	Sebastian Andrzej Siewior, John Ogness, Thomas Gleixner,
	Peter Zijlstra, Julia Lawall, linux-doc, linux-kbuild,
	linuxppc-dev, dri-devel, linux-stm32, linux-arm-kernel,
	linux-rdma, linux-usb, linux-ext4, linux-nfs, kvm, intel-gfx
In-Reply-To: <ajfiVTlCIVlqW3sh@yury>



On June 21, 2026 2:08:37 PM GMT+01:00, Yury Norov <yury.norov@gmail.com> wrote:
>On Sun, Jun 21, 2026 at 05:34:31AM -0400, Steven Rostedt wrote:
>> From: Steven Rostedt <rostedt@goodmis.org>
>> 
>> In order to remove the include to trace_printk.h from kernel.h the tracing
>> control prototypes need to be moved back into kernel.h. That's because
>
>Please don't. Instead, you can split them out to trace_control.h, and
>include where needed. I actually have a prototype for it, FYI:
>
>https://github.com/norov/linux/tree/trace_pritk3
>

Sure, I have no problem adding another header for this.

>> they are used in other common header files like rcu.h. There's no point in
>> removing trace_printk.h from kernel.h if it just gets added back to other
>> common headers.
>> 
>> Prototypes are very cheap for the compiler and should not be an issue.
>
>It's not about cost, it's about mess. kernel.h is included everywhere.
>Is that API needed everywhere? No, it's needed in literally 10 files.
>So, no place in kernel.h.
> 

Well one of those files is rcu.h which is also pretty much included everywhere. But OK.

-- Steve 


>> 
>> 2.53.0
>> 

^ permalink raw reply

* Re: [PATCH 2/2] tracing: Add CONFIG_TRACE_PRINTK_DEBUGGING to clean up kernel.h
From: Yury Norov @ 2026-06-21 13:57 UTC (permalink / raw)
  To: Yury Norov
  Cc: Steven Rostedt, linux-kernel, linux-trace-kernel,
	Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Andrew Morton,
	Linus Torvalds, Sebastian Andrzej Siewior, John Ogness,
	Thomas Gleixner, Peter Zijlstra, Julia Lawall, linux-doc,
	linux-kbuild, linuxppc-dev, dri-devel, linux-stm32,
	linux-arm-kernel, linux-rdma, linux-usb, linux-ext4, linux-nfs,
	kvm, intel-gfx
In-Reply-To: <ajfphe4Z8BrfYoUX@yury>

On Sun, Jun 21, 2026 at 09:39:17AM -0400, Yury Norov wrote:
> On Sun, Jun 21, 2026 at 05:47:21AM -0400, Steven Rostedt wrote:
> > On Sun, 21 Jun 2026 05:34:32 -0400
> > Steven Rostedt <rostedt@kernel.org> wrote:
> > 
> > > Instead of having trace_printk.h included in kernel.h, create a config
> > > TRACE_PRINTK_DEBUGGING that when set will update the CFLAGS in the
> > > Makefile to allow developers to add trace_printk() without the need to add
> > > the include for it. Having it included in the Makefile keeps it from being
> > > in the dependency chain and it will not waste extra CPU cycles for those
> > > building the kernel without using trace_printk.
> > 
> > Bah, I only tested with the config option enabled, and missed some
> > dependencies with it disabled.
> 
> Yes you did.
>  
> > For instance, rcu.h also uses ftrace_dump() so that too needs to go
> > into kernel.h.
> 
> No, it shouldn't.
> 
> > I also need to add a few more includes to trace_printk.h.
> 
> > OK, I need to run this through all my tests to find where else I missed
> > adding the includes. But the idea should hopefully satisfy everyone.
> 
> If you include it under config in kernel.h, to make the kernel buildable,

I mean: in kernel.h or in Makefile.

> you need to include trace_printk.h explicitly where it's actually used.
> IOW, apply my patch v4-7.
> 
> Then, developers who use trace_printk() on their development machine,
> will be really frustrated when their debugging code will break client
> build just because CONFIG_TRACE_PRINTK_DEBUGGING is disabled there.
> They will spend a day, at best, communicating with remote managers,
> and end up with adding #include <linux/trace_printk.h> in the files
> they touch. Is that your plan?
> 
> If I was one of those developers, the solution would be simple for me:
> don't use trace_printk() at all.
> 
> Thanks,
> Yury

^ permalink raw reply

* Re: [PATCH 2/2] tracing: Add CONFIG_TRACE_PRINTK_DEBUGGING to clean up kernel.h
From: Yury Norov @ 2026-06-21 13:39 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: linux-kernel, linux-trace-kernel, Masami Hiramatsu, Mark Rutland,
	Mathieu Desnoyers, Andrew Morton, Linus Torvalds,
	Sebastian Andrzej Siewior, John Ogness, Thomas Gleixner,
	Peter Zijlstra, Julia Lawall, Yury Norov, linux-doc, linux-kbuild,
	linuxppc-dev, dri-devel, linux-stm32, linux-arm-kernel,
	linux-rdma, linux-usb, linux-ext4, linux-nfs, kvm, intel-gfx
In-Reply-To: <20260621054721.7cde38f0@fedora>

On Sun, Jun 21, 2026 at 05:47:21AM -0400, Steven Rostedt wrote:
> On Sun, 21 Jun 2026 05:34:32 -0400
> Steven Rostedt <rostedt@kernel.org> wrote:
> 
> > Instead of having trace_printk.h included in kernel.h, create a config
> > TRACE_PRINTK_DEBUGGING that when set will update the CFLAGS in the
> > Makefile to allow developers to add trace_printk() without the need to add
> > the include for it. Having it included in the Makefile keeps it from being
> > in the dependency chain and it will not waste extra CPU cycles for those
> > building the kernel without using trace_printk.
> 
> Bah, I only tested with the config option enabled, and missed some
> dependencies with it disabled.

Yes you did.
 
> For instance, rcu.h also uses ftrace_dump() so that too needs to go
> into kernel.h.

No, it shouldn't.

> I also need to add a few more includes to trace_printk.h.

> OK, I need to run this through all my tests to find where else I missed
> adding the includes. But the idea should hopefully satisfy everyone.

If you include it under config in kernel.h, to make the kernel buildable,
you need to include trace_printk.h explicitly where it's actually used.
IOW, apply my patch v4-7.

Then, developers who use trace_printk() on their development machine,
will be really frustrated when their debugging code will break client
build just because CONFIG_TRACE_PRINTK_DEBUGGING is disabled there.
They will spend a day, at best, communicating with remote managers,
and end up with adding #include <linux/trace_printk.h> in the files
they touch. Is that your plan?

If I was one of those developers, the solution would be simple for me:
don't use trace_printk() at all.

Thanks,
Yury

^ permalink raw reply

* Re: [PATCH 1/2] tracing: Move non-trace_printk prototypes back to kernel.h
From: Yury Norov @ 2026-06-21 13:08 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: linux-kernel, linux-trace-kernel, Masami Hiramatsu, Mark Rutland,
	Mathieu Desnoyers, Andrew Morton, Linus Torvalds,
	Sebastian Andrzej Siewior, John Ogness, Thomas Gleixner,
	Peter Zijlstra, Julia Lawall, Yury Norov, linux-doc, linux-kbuild,
	linuxppc-dev, dri-devel, linux-stm32, linux-arm-kernel,
	linux-rdma, linux-usb, linux-ext4, linux-nfs, kvm, intel-gfx
In-Reply-To: <20260621093811.007634476@kernel.org>

On Sun, Jun 21, 2026 at 05:34:31AM -0400, Steven Rostedt wrote:
> From: Steven Rostedt <rostedt@goodmis.org>
> 
> In order to remove the include to trace_printk.h from kernel.h the tracing
> control prototypes need to be moved back into kernel.h. That's because

Please don't. Instead, you can split them out to trace_control.h, and
include where needed. I actually have a prototype for it, FYI:

https://github.com/norov/linux/tree/trace_pritk3

> they are used in other common header files like rcu.h. There's no point in
> removing trace_printk.h from kernel.h if it just gets added back to other
> common headers.
> 
> Prototypes are very cheap for the compiler and should not be an issue.

It's not about cost, it's about mess. kernel.h is included everywhere.
Is that API needed everywhere? No, it's needed in literally 10 files.
So, no place in kernel.h.
 
> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
> ---
>  include/linux/kernel.h       | 18 ++++++++++++++++++
>  include/linux/trace_printk.h | 17 -----------------
>  2 files changed, 18 insertions(+), 17 deletions(-)
> 
> diff --git a/include/linux/kernel.h b/include/linux/kernel.h
> index e5570a16cbb1..c3c68128827c 100644
> --- a/include/linux/kernel.h
> +++ b/include/linux/kernel.h
> @@ -194,4 +194,22 @@ extern enum system_states system_state;
>  # define REBUILD_DUE_TO_DYNAMIC_FTRACE
>  #endif
>  
> +#ifdef CONFIG_TRACING
> +void tracing_on(void);
> +void tracing_off(void);
> +int tracing_is_on(void);
> +void tracing_snapshot(void);
> +void tracing_snapshot_alloc(void);
> +void tracing_start(void);
> +void tracing_stop(void);
> +#else
> +static inline void tracing_start(void) { }
> +static inline void tracing_stop(void) { }
> +static inline void tracing_on(void) { }
> +static inline void tracing_off(void) { }
> +static inline int tracing_is_on(void) { return 0; }
> +static inline void tracing_snapshot(void) { }
> +static inline void tracing_snapshot_alloc(void) { }
> +#endif
> +
>  #endif
> diff --git a/include/linux/trace_printk.h b/include/linux/trace_printk.h
> index 3d54f440dccf..879fed0805fd 100644
> --- a/include/linux/trace_printk.h
> +++ b/include/linux/trace_printk.h
> @@ -35,15 +35,6 @@ enum ftrace_dump_mode {
>  };
>  
>  #ifdef CONFIG_TRACING
> -void tracing_on(void);
> -void tracing_off(void);
> -int tracing_is_on(void);
> -void tracing_snapshot(void);
> -void tracing_snapshot_alloc(void);
> -
> -extern void tracing_start(void);
> -extern void tracing_stop(void);
> -
>  static inline __printf(1, 2)
>  void ____trace_printk_check_format(const char *fmt, ...)
>  {
> @@ -176,16 +167,8 @@ __ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap);
>  
>  extern void ftrace_dump(enum ftrace_dump_mode oops_dump_mode);
>  #else
> -static inline void tracing_start(void) { }
> -static inline void tracing_stop(void) { }
>  static inline void trace_dump_stack(int skip) { }
>  
> -static inline void tracing_on(void) { }
> -static inline void tracing_off(void) { }
> -static inline int tracing_is_on(void) { return 0; }
> -static inline void tracing_snapshot(void) { }
> -static inline void tracing_snapshot_alloc(void) { }
> -
>  static inline __printf(1, 2)
>  int trace_printk(const char *fmt, ...)
>  {
> -- 
> 2.53.0
> 

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox