mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
usb: core: urb: Check SSP isoc ep comp descriptor
The maximum bytes per interval for USB SuperSpeed Plus can be set by isoc endpoint companion descriptor when it is above 48K. If the descriptor is provided, then use its value. USB 3.1 spec 9.6.8 Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com> Signed-off-by: Thinh Nguyen <thinhn@synopsys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
85a09bf492
commit
edb92eaf1d
@ -433,6 +433,14 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
|
||||
max *= mult;
|
||||
}
|
||||
|
||||
if (dev->speed == USB_SPEED_SUPER_PLUS &&
|
||||
USB_SS_SSP_ISOC_COMP(ep->ss_ep_comp.bmAttributes)) {
|
||||
struct usb_ssp_isoc_ep_comp_descriptor *isoc_ep_comp;
|
||||
|
||||
isoc_ep_comp = &ep->ssp_isoc_ep_comp;
|
||||
max = le32_to_cpu(isoc_ep_comp->dwBytesPerInterval);
|
||||
}
|
||||
|
||||
/* "high bandwidth" mode, 1-3 packets/uframe? */
|
||||
if (dev->speed == USB_SPEED_HIGH)
|
||||
max *= usb_endpoint_maxp_mult(&ep->desc);
|
||||
|
Loading…
Reference in New Issue
Block a user