diff options
| -rw-r--r-- | drivers/usb/host/xhci-mem.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index 8cc824bbc4ee..2eb658d26394 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c @@ -1023,7 +1023,7 @@ static inline unsigned int xhci_get_endpoint_interval(struct usb_device *udev,  	return EP_INTERVAL(interval);  } -/* The "Mult" field in the endpoint context is only set for SuperSpeed devices. +/* The "Mult" field in the endpoint context is only set for SuperSpeed isoc eps.   * High speed endpoint descriptors can define "the number of additional   * transaction opportunities per microframe", but that goes in the Max Burst   * endpoint context field. @@ -1031,7 +1031,8 @@ static inline unsigned int xhci_get_endpoint_interval(struct usb_device *udev,  static inline u32 xhci_get_endpoint_mult(struct usb_device *udev,  		struct usb_host_endpoint *ep)  { -	if (udev->speed != USB_SPEED_SUPER) +	if (udev->speed != USB_SPEED_SUPER || +			!usb_endpoint_xfer_isoc(&ep->desc))  		return 0;  	return ep->ss_ep_comp.bmAttributes;  } | 
