On Fri, Aug 21, 2020 at 06:34:55PM +0200, Martin Thierer wrote: > I read the usb 2.0 specs and generally came to the same conclusion, > except I wasn't 100% sure because 9.1.1.5 talks about "configuring" in > the context of bringing a device into the "configured" state, which > one could argue isn't really the case if a "set configuration" message > is sent to a device that is already configured with the exact same > configuration. Nonsense. The text explicitly says "configuration involves correctly processing a SetConfiguration() request with a non-zero configuration value." There's no requirement about what state the device was in previously. > > Together these should explain the correct behavior. > > I'm not sure I understand what you're implying here. That the kernel's > behaviour is correct or not? That the EHCI behavior is correct and the xHCI behavior is wrong. > (You're explicitly citing the usb *2.0* > specs, but that should also apply to a usb 2 device plugged into an > usb 3 port, right?) Yes; the USB 3 spec says that the behavior of USB-2 devices should be governed by the USB-2 spec, even when they are plugged into a hub or controller. Alan Stern