From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-usb@vger.kernel.org
Cc: linux-media@vger.kernel.org, gregkh@linuxfoundation.org,
laurent.pinchart@ideasonboard.com, hdegoede@redhat.com,
Thinh.Nguyen@synopsys.com, Amardeep Rai <amardeep.rai@intel.com>,
Kannappan R <r.kannappan@intel.com>,
Mathias Nyman <mathias.nyman@linux.intel.com>
Subject: [PATCH v2 0/4] eUSB2 support
Date: Fri, 11 Jul 2025 11:34:09 +0300 [thread overview]
Message-ID: <20250711083413.1552423-1-sakari.ailus@linux.intel.com> (raw)
This series adds support for eUSB2 Double Isochronous IN Bandwidth to the
UVC and xHCI drivers 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.
v1 can be found here
<URL:https://lore.kernel.org/linux-usb/20250616093730.2569328-2-mathias.nyman@linux.intel.com/>.
since v1:
- Introduce uvc_endpoint_max_isoc_bpi() to obtain maximum bytes per interval
value for an endpoint, in a new patch (3rd). This code has been slightly
reworked from the instance in the UVC driver, adding support for
SuperSpeedPlus Isochronous Endpoint Companion besides the USB 2.0 Double
Isochronous In Bandwidth ECN.
- Use uvc_endpoint_max_isoc_bpi() in the UVC driver instead of open-coding
eUSB2 Double Isochronous In Bandwidth ECNsupport there.
- Use u32 for maximum bpi and related information in the UVC driver -- the
value could be larger than a 16-bit type can hold.
- Assume max in usb_submit_urb() is a natural number as
usb_endpoint_maxp() returns only natural numbers (2nd patch).
- Fixed endianness issues in usb_submit_urb() (2nd patch).
- Move the comment on eUSB2 double isoc bw endpoints in
xhci_get_endpoint_max_burst() to a better location and remove an
unneeded else clause in the same function (1st patch).
Rai, Amardeep (3):
xhci: Add host support for eUSB2 double isochronous bandwidth devices
USB: core: support eUSB2 double bandwidth large isoc URB frames
USB: Add a function to obtain USB version independent maximum bpi
value
Tao Q Tao (1):
media: uvcvideo: eUSB2 double isochronous bandwidth support
drivers/media/usb/uvc/uvc_driver.c | 4 +-
drivers/media/usb/uvc/uvc_video.c | 24 ++----------
drivers/media/usb/uvc/uvcvideo.h | 4 +-
drivers/usb/core/urb.c | 18 +++++++--
drivers/usb/host/xhci-caps.h | 2 +
drivers/usb/host/xhci-mem.c | 60 ++++++++++++++++++++++++------
drivers/usb/host/xhci-ring.c | 6 +--
drivers/usb/host/xhci.c | 16 +++++++-
drivers/usb/host/xhci.h | 20 ++++++++++
include/linux/usb.h | 22 +++++++++++
10 files changed, 130 insertions(+), 46 deletions(-)
--
2.39.5
next reply other threads:[~2025-07-11 8:35 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-11 8:34 Sakari Ailus [this message]
2025-07-11 8:34 ` [PATCH v2 1/4] xhci: Add host support for eUSB2 double isochronous bandwidth devices Sakari Ailus
2025-07-11 8:34 ` [PATCH v2 2/4] USB: core: support eUSB2 double bandwidth large isoc URB frames Sakari Ailus
2025-07-11 8:34 ` [PATCH v2 3/4] USB: Add a function to obtain USB version independent maximum bpi value Sakari Ailus
2025-07-11 13:44 ` Hans de Goede
2025-07-15 8:13 ` Sakari Ailus
2025-07-16 16:35 ` Hans de Goede
2025-07-28 22:21 ` Sakari Ailus
2025-07-11 14:18 ` Alan Stern
2025-07-11 8:34 ` [PATCH v2 4/4] media: uvcvideo: eUSB2 double isochronous bandwidth support Sakari Ailus
2025-07-15 9:10 ` Laurent Pinchart
2025-08-21 9:08 ` Sakari Ailus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250711083413.1552423-1-sakari.ailus@linux.intel.com \
--to=sakari.ailus@linux.intel.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=amardeep.rai@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hdegoede@redhat.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@linux.intel.com \
--cc=r.kannappan@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).