mbox series

[0/3] USB: Enable eUSB2 double isochronous bandwidth

Message ID 20250616093730.2569328-1-mathias.nyman@linux.intel.com
Headers show
Series USB: Enable eUSB2 double isochronous bandwidth | expand

Message

Mathias Nyman June 16, 2025, 9:37 a.m. UTC
This series enables support for eUSB2 Double Isochronous IN Bandwidth
uvc devices specified in 'USB 2.0 Double Isochronous IN Bandwidth' ECN.

In short it adds support for new integrated USB2 webcams that can send
twice the data compared to conventional USB2 webcams.

These devices are identified by the device descriptor bcdUSB 0x0220
value. They have an additional eUSB2 Isochronous Endpoint Companion
Descriptor, and a zero max packet size in regular isoc endpoint
descriptor. Support for parsing that new descriptor was added in commit

c749f058b437 ("USB: core: Add eUSB2 descriptor and parsing in USB core")

This series adds support to uvc, usb core, and xhci to identify eUSB2
double isoc devices, and allow and set proper max packet, iso frame
desc sizes, bytes per interval, and other values in URBs and xHCI
endpoint contexts needed to support the double data rates for eUSB2
double isoc devices.

Patch 1/3 containing the xhci changes was previously sent as part of
other xhci features, but was dropped.
It now contains the USB_SPEED_HIGH check disussed with Thinh Nguyen.

Thanks
Mathias

Amardeep Rai (2):
  xhci: Add host support for eUSB2 double isochronous bandwidth devices
  USB: core: support eUSB2 double bandwidth large isoc URB frames

Tao Q Tao (1):
  media: uvcvideo: eUSB2 double isochronous bandwidth support

 drivers/media/usb/uvc/uvc_video.c |  5 +++
 drivers/usb/core/urb.c            | 18 +++++++--
 drivers/usb/host/xhci-caps.h      |  2 +
 drivers/usb/host/xhci-mem.c       | 62 ++++++++++++++++++++++++-------
 drivers/usb/host/xhci-ring.c      |  6 +--
 drivers/usb/host/xhci.c           | 16 +++++++-
 drivers/usb/host/xhci.h           | 20 ++++++++++
 7 files changed, 108 insertions(+), 21 deletions(-)