• Sarah Sharp's avatar
    xhci: Return a USB 3.0 hub descriptor for USB3 roothub. · 4bbb0ace
    Sarah Sharp authored
    Return the correct xHCI roothub descriptor, based on whether the roothub
    is marked as USB 3.0 or USB 2.0 in usb_hcd->bcdUSB.  Fill in
    DeviceRemovable for the USB 2.0 and USB 3.0 roothub descriptors, using the
    Device Removable bit in the port status and control registers.  xHCI is
    the first host controller to actually properly set these bits (other hosts
    say all devices are removable).
    
    When userspace asks for a USB 2.0-style hub descriptor for the USB 3.0
    roothub, stall the endpoint.  This is what real external USB 3.0 hubs do,
    and we don't want to return a descriptor that userspace didn't ask for.
    
    The USB core is already fixed to always ask for USB 3.0-style hub
    descriptors.  Only usbfs (typically lsusb) will ask for the USB 2.0-style
    hub descriptors.  This has already been fixed in usbutils version 0.91,
    but the kernel needs to deal with older usbutils versions.
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    4bbb0ace
xhci-hub.c 25.5 KB