|
|
|
Re: [RFC 02/13] USB: Make sure to fetch the BOS desc for roothubs. | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
|
On 05/17/2012 05:54 AM, Sarah Sharp wrote:
> 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: Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx>
> ---
> drivers/usb/core/hcd.c | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
> index 0cd2daa..7910681 100644
> --- a/drivers/usb/core/hcd.c
> +++ b/drivers/usb/core/hcd.c
> @@ -997,6 +997,15 @@ static int register_root_hub(struct usb_hcd *hcd)
> dev_name(&usb_dev->dev), retval);
> return (retval < 0) ? retval : -EMSGSIZE;
> }
> + if (usb_dev->speed == USB_SPEED_SUPER) {
> + retval = usb_get_bos_descriptor(usb_dev);
> + if (retval > 0) {
Why? usb_get_bos_descriptor() returns a negative number if fails.
-ENOMEM, -EINVAL, etc.
Thanks,
Andiry
> + 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);
> if (retval) {
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html

[Linux Media] [Video for Linux] [Linux Input] [Linux Audio Users] [Photo] [Yosemite News] [Yosemite Photos] [Free Online Dating] [Linux Kernel] [Linux SCSI] [Old Linux USB Devel Archive] [More Archives]
![]() |
![]() |