On Wed, Aug 21, 2013 at 03:20:21PM +0200, Gerd Hoffmann wrote:
xhci needs them even after completing device initialization. xhci must to walk up the chain to the root port and the usbdevs (of usb hubs) are part of it.
The hub's usbdev isn't freed until all of its ports have been configured. The only place I see the hub chain walked is in an xhci set-address command - but that command would only be run during the configuration when all the hub ports are still available. So, I don't understand why this change is necessary.
Also, would it be simpler to cache the route and hub speed during the pipe allocation instead of calculating it during the set-address command? This is what the ehci code does.