Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 448b6eb1 authored by Sarah Sharp's avatar Sarah Sharp
Browse files

USB: Make sure to fetch the BOS desc for roothubs.



The BOS descriptor is normally fetched and stored in the usb_device->bos
during enumeration.  USB 3.0 roothubs don't undergo enumeration, but we
need them to have a BOS descriptor, since each xHCI host has a different
U1 and U2 exit latency.  Make sure to fetch the BOS descriptor for USB
3.0 roothubs.  It will be freed when the roothub usb_device is released.

Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: Andiry Xu <andiry.xu@amd.com>
parent 797b0ca5
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -997,6 +997,15 @@ static int register_root_hub(struct usb_hcd *hcd)
				dev_name(&usb_dev->dev), retval);
				dev_name(&usb_dev->dev), retval);
		return (retval < 0) ? retval : -EMSGSIZE;
		return (retval < 0) ? retval : -EMSGSIZE;
	}
	}
	if (usb_dev->speed == USB_SPEED_SUPER) {
		retval = usb_get_bos_descriptor(usb_dev);
		if (retval < 0) {
			mutex_unlock(&usb_bus_list_lock);
			dev_dbg(parent_dev, "can't read %s bos descriptor %d\n",
					dev_name(&usb_dev->dev), retval);
			return retval;
		}
	}


	retval = usb_new_device (usb_dev);
	retval = usb_new_device (usb_dev);
	if (retval) {
	if (retval) {