On Wed, Jan 12, 2022 at 10:40:49AM -0500, Alan Stern wrote: > > > |__ Port 5: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, > > > 1.5M > > > ID 04d9:1503 Holtek Semiconductor, Inc. Keyboard > > > |__ Port 5: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, > > > 1.5M > > > ID 04d9:1503 Holtek Semiconductor, Inc. Keyboard > > > |__ Port 6: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, > > > 1.5M > > > ID 30fa:0400 > > > > > > > > > Why are the hubs listed as Linux Foundation 3.0 root hubs and not 3.1 root > > > hubs? > > > > Because your devices do not advertise themselves as a USB 3.1 root hub. > > Perhaps the documentation is incorrect? > > No, that's not it at all. > > The reason why the root hubs for buses 2 and 4 above are both listed as > "Linux Foundation 3.0 root hub" is because in hcd.c, the > usb31_rh_dev_descriptor and usb3_rh_dev_descriptor structures both set > their idProduct values to 0x03, 0x00 (0x0003 in little-endian form). > Therefore the hardware database can't distinguish between them. Ah, right, I totally missed that. I saw the two different definitions, but missed the device number. > One possibility would be for the usb31_rh_dev_descriptor to use 0x04, > 0x00 (with the corresponding update to the udev hardware database). > Another possibility is for the hardware database entry for product 0x0003 > to be changed simply to "Linux Foundation USB-3 root hub", so that it > doesn't specify 3.0, 3.1, or 3.2. I can do that. Should only take a few years to trickle out to the slower distros :) thanks, greg k-h