usb: ch9: fix up MaxStreams helper
According to USB 3.0 Specification Table 9-22, if bmAttributes [4:0] are set to zero, it means "no streams supported", but the way this helper was defined on Linux, we will *always* have one stream which might cause several problems. For example on DWC3, we would tell the controller endpoint has streams enabled and yet start transfers with Stream ID set to 0, which would goof up the host side. While doing that, convert the macro to an inline function due to the different checks we now need. Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
e28dbb0661
commit
18b7ede5f7
3 changed files with 21 additions and 5 deletions
|
@ -2799,8 +2799,7 @@ static int xhci_calculate_streams_and_bitmask(struct xhci_hcd *xhci,
|
|||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
max_streams = USB_SS_MAX_STREAMS(
|
||||
eps[i]->ss_ep_comp.bmAttributes);
|
||||
max_streams = usb_ss_max_streams(&eps[i]->ss_ep_comp);
|
||||
if (max_streams < (*num_streams - 1)) {
|
||||
xhci_dbg(xhci, "Ep 0x%x only supports %u stream IDs.\n",
|
||||
eps[i]->desc.bEndpointAddress,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue