aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/usb.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/usb.h')
-rw-r--r--include/linux/usb.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 6a9a0c28415d..eba1f10e8cfd 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -374,13 +374,12 @@ struct usb_bus {
374 374
375 int devnum_next; /* Next open device number in 375 int devnum_next; /* Next open device number in
376 * round-robin allocation */ 376 * round-robin allocation */
377 struct mutex devnum_next_mutex; /* devnum_next mutex */
377 378
378 struct usb_devmap devmap; /* device address allocation map */ 379 struct usb_devmap devmap; /* device address allocation map */
379 struct usb_device *root_hub; /* Root hub */ 380 struct usb_device *root_hub; /* Root hub */
380 struct usb_bus *hs_companion; /* Companion EHCI bus, if any */ 381 struct usb_bus *hs_companion; /* Companion EHCI bus, if any */
381 382
382 struct mutex usb_address0_mutex; /* unaddressed device mutex */
383
384 int bandwidth_allocated; /* on this bus: how much of the time 383 int bandwidth_allocated; /* on this bus: how much of the time
385 * reserved for periodic (intr/iso) 384 * reserved for periodic (intr/iso)
386 * requests is used, on average? 385 * requests is used, on average?
@@ -720,7 +719,7 @@ extern void usb_enable_ltm(struct usb_device *udev);
720 719
721static inline bool usb_device_supports_ltm(struct usb_device *udev) 720static inline bool usb_device_supports_ltm(struct usb_device *udev)
722{ 721{
723 if (udev->speed != USB_SPEED_SUPER || !udev->bos || !udev->bos->ss_cap) 722 if (udev->speed < USB_SPEED_SUPER || !udev->bos || !udev->bos->ss_cap)
724 return false; 723 return false;
725 return udev->bos->ss_cap->bmAttributes & USB_LTM_SUPPORT; 724 return udev->bos->ss_cap->bmAttributes & USB_LTM_SUPPORT;
726} 725}
@@ -1069,7 +1068,7 @@ struct usbdrv_wrap {
1069 * for interfaces bound to this driver. 1068 * for interfaces bound to this driver.
1070 * @soft_unbind: if set to 1, the USB core will not kill URBs and disable 1069 * @soft_unbind: if set to 1, the USB core will not kill URBs and disable
1071 * endpoints before calling the driver's disconnect method. 1070 * endpoints before calling the driver's disconnect method.
1072 * @disable_hub_initiated_lpm: if set to 0, the USB core will not allow hubs 1071 * @disable_hub_initiated_lpm: if set to 1, the USB core will not allow hubs
1073 * to initiate lower power link state transitions when an idle timeout 1072 * to initiate lower power link state transitions when an idle timeout
1074 * occurs. Device-initiated USB 3.0 link PM will still be allowed. 1073 * occurs. Device-initiated USB 3.0 link PM will still be allowed.
1075 * 1074 *
@@ -1569,7 +1568,7 @@ static inline void usb_fill_bulk_urb(struct urb *urb,
1569 * Initializes a interrupt urb with the proper information needed to submit 1568 * Initializes a interrupt urb with the proper information needed to submit
1570 * it to a device. 1569 * it to a device.
1571 * 1570 *
1572 * Note that High Speed and SuperSpeed interrupt endpoints use a logarithmic 1571 * Note that High Speed and SuperSpeed(+) interrupt endpoints use a logarithmic
1573 * encoding of the endpoint interval, and express polling intervals in 1572 * encoding of the endpoint interval, and express polling intervals in
1574 * microframes (eight per millisecond) rather than in frames (one per 1573 * microframes (eight per millisecond) rather than in frames (one per
1575 * millisecond). 1574 * millisecond).
@@ -1595,7 +1594,7 @@ static inline void usb_fill_int_urb(struct urb *urb,
1595 urb->complete = complete_fn; 1594 urb->complete = complete_fn;
1596 urb->context = context; 1595 urb->context = context;
1597 1596
1598 if (dev->speed == USB_SPEED_HIGH || dev->speed == USB_SPEED_SUPER) { 1597 if (dev->speed == USB_SPEED_HIGH || dev->speed >= USB_SPEED_SUPER) {
1599 /* make sure interval is within allowed range */ 1598 /* make sure interval is within allowed range */
1600 interval = clamp(interval, 1, 16); 1599 interval = clamp(interval, 1, 16);
1601 1600