On Fri, Aug 30, 2024 at 10:25:19AM -0400, Alan Stern wrote: > On Fri, Aug 30, 2024 at 10:14:20PM +1000, Eyal Lebedinsky wrote: > > I assume that the generated list is a tree, so each leaf (Device/If) is on only one point. > > > > I note this output: > > > > $ lsusb -tv > > /: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/16p, 480M > > ID 1d6b:0002 Linux Foundation 2.0 root hub > > [trimmed] > > |__ Port 004: Dev 004, If 0, Class=Hub, Driver=hub/4p, 480M > > [trimmed] > > |__ Port 005: Dev 006, If 0, Class=Hub, Driver=hub/4p, 480M > > [trimmed] > > |__ Port 006: Dev 019, If 0, Class=Hub, Driver=hub/4p, 480M > > ID 2109:2817 VIA Labs, Inc. > > /: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/10p, 10000M > > [trimmed] > > |__ Port 006: Dev 006, If 0, Class=Hub, Driver=hub/4p, 5000M > > ID 2109:0817 VIA Labs, Inc. > > > > I removed some content that is not relevant to my question. > > > > Note the Bus 001.Port 006 and Bus 002.Port 006 entries. > > > > I verified that both are for the same (one) device. They do not show when I disconnect it. > > The device is an external 4-port USB3.0 hub. It is listed once as 480M and once as 5000M. > > Nothing is plugged into any of the four ports. > > > > Is this correct? Why does this device show twice in the list? > > USB 3 actually uses _two_ physical buses. Each cable has two twisted > pairs of wires carrying the SuperSpeed (5000 Mb/s or more) USB-3 data in > and out, and also has two wires carrying the legacy USB-2 data (480 Mb/s > or less) in and out. > > These physical buses are represented separately in the kernel. In your > example, Bus 001 and Bus 002 use the same cable and the same xHCI host > controller; Bus 001 is the legacy USB-2 bus (you can tell by the speed) > and Bus 002 is the SuperSpeed bus. {sigh} I totally missed the 2 different speeds, I was just looking at the host controller driver type. I'll blame the jet-lag, but I really should have caught that... thanks for clearing this up. greg k-h