<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-linux/drivers/usb/core, branch stable</title>
<subtitle>WireGuard for the Linux kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-linux/atom/drivers/usb/core?h=stable</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-linux/atom/drivers/usb/core?h=stable'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/'/>
<updated>2025-10-22T08:00:57Z</updated>
<entry>
<title>usb/core/quirks: Add Huawei ME906S to wakeup quirk</title>
<updated>2025-10-22T08:00:57Z</updated>
<author>
<name>Tim Guttzeit</name>
<email>t.guttzeit@tuxedocomputers.com</email>
</author>
<published>2025-10-20T13:39:04Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=dfc2cf4dcaa03601cd4ca0f7def88b2630fca6ab'/>
<id>urn:sha1:dfc2cf4dcaa03601cd4ca0f7def88b2630fca6ab</id>
<content type='text'>
The list of Huawei LTE modules needing the quirk fixing spurious wakeups
was missing the IDs of the Huawei ME906S module, therefore suspend did not
work.

Cc: stable &lt;stable@kernel.org&gt;
Signed-off-by: Tim Guttzeit &lt;t.guttzeit@tuxedocomputers.com&gt;
Signed-off-by: Werner Sembach &lt;wse@tuxedocomputers.com&gt;
Link: https://patch.msgid.link/20251020134304.35079-1-wse@tuxedocomputers.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Merge 6.17-rc6 into usb-next</title>
<updated>2025-09-15T06:18:40Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2025-09-15T06:18:40Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=a4d43c1f17b9f143af5868285c513c866e9cf67b'/>
<id>urn:sha1:a4d43c1f17b9f143af5868285c513c866e9cf67b</id>
<content type='text'>
We need the USB fixes in here as well.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: host: enable USB offload during system sleep</title>
<updated>2025-09-12T12:08:02Z</updated>
<author>
<name>Guan-Yu Lin</name>
<email>guanyulin@google.com</email>
</author>
<published>2025-09-11T14:20:16Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=38d627bc8522a6a2fd6f9454c8b3b5d3848f5f03'/>
<id>urn:sha1:38d627bc8522a6a2fd6f9454c8b3b5d3848f5f03</id>
<content type='text'>
Sharing a USB controller with another entity via xhci-sideband driver
creates power management complexities. To prevent the USB controller
from being inadvertently deactivated while in use by the other entity, a
usage-count based mechanism is implemented. This allows the system to
manage power effectively, ensuring the controller remains available
whenever needed.
In order to maintain full functionality of an offloaded USB devices,
several changes are made within the suspend flow of such devices:
- skip usb_suspend_device() so that the port/hub are still active for
  USB transfers via offloaded path.
- not suspending the endpoints which are used by USB interfaces marked
  with needs_remote_wakeup. Namely, skip usb_suspend_interface() and
  usb_hcd_flush_endpoint() on associated USB interfaces. This reserves a
  pending interrupt urb during system suspend for handling the interrupt
  transfer, which is necessary since remote wakeup doesn't apply in the
  offloaded USB devices when controller is still active.
- not flushing the endpoints of actively offloaded USB devices. Given
  that the USB devices is used by another entity, unilaterally flush the
  endpoint might lead to unexpected behavior on another entity.
- not suspending the xhci controller. This is done by skipping the
  suspend/resume callbacks in the xhci platform driver.

Signed-off-by: Guan-Yu Lin &lt;guanyulin@google.com&gt;
Link: https://lore.kernel.org/r/20250911142051.90822-5-guanyulin@google.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Link: https://lore.kernel.org/r/20250911142051.90822-5-guanyulin@google.com
</content>
</entry>
<entry>
<title>usb: offload: add apis for offload usage tracking</title>
<updated>2025-09-12T12:08:02Z</updated>
<author>
<name>Guan-Yu Lin</name>
<email>guanyulin@google.com</email>
</author>
<published>2025-09-11T14:20:14Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=7f70b89b2be66c03ddc76d3ad8aebeeec4a9c505'/>
<id>urn:sha1:7f70b89b2be66c03ddc76d3ad8aebeeec4a9c505</id>
<content type='text'>
Introduce offload_usage and corresponding apis to track offload usage
on each USB device. Offload denotes that there is another co-processor
accessing the USB device via the same USB host controller. To optimize
power usage, it's essential to monitor whether the USB device is
actively used by other co-processor. This information is vital when
determining if a USB device can be safely suspended during system power
state transitions.

Signed-off-by: Guan-Yu Lin &lt;guanyulin@google.com&gt;
Link: https://lore.kernel.org/r/20250911142051.90822-3-guanyulin@google.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Link: https://lore.kernel.org/r/20250911142051.90822-3-guanyulin@google.com
</content>
</entry>
<entry>
<title>USB: core: remove the move buf action</title>
<updated>2025-09-12T11:41:55Z</updated>
<author>
<name>Edward Adam Davis</name>
<email>eadavis@qq.com</email>
</author>
<published>2025-09-10T07:58:47Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=9dfec4a51df9cf0dcc23cb4ac6fc314bf9e999d0'/>
<id>urn:sha1:9dfec4a51df9cf0dcc23cb4ac6fc314bf9e999d0</id>
<content type='text'>
The buffer size of sysfs is fixed at PAGE_SIZE, and the page offset
of the buf parameter of sysfs_emit_at() must be 0, there is no need
to manually manage the buf pointer offset.

Fixes: 711d41ab4a0e ("usb: core: Use sysfs_emit_at() when showing dynamic IDs")
Reported-by: syzbot+b6445765657b5855e869@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=b6445765657b5855e869
Tested-by: syzbot+b6445765657b5855e869@syzkaller.appspotmail.com
Signed-off-by: Edward Adam Davis &lt;eadavis@qq.com&gt;
Link: https://lore.kernel.org/r/tencent_B32D6D8C9450EBFEEE5ACC2C7B0E6C402D0A@qq.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Merge patch series "eUSB2 Double Isochronous IN Bandwidth support"</title>
<updated>2025-09-06T13:25:08Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2025-09-06T13:25:08Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=0f577e88d9bc14d9ed00515b47fe3f8e9b1c35be'/>
<id>urn:sha1:0f577e88d9bc14d9ed00515b47fe3f8e9b1c35be</id>
<content type='text'>
Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt; says:

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.

since v4:
  https://lore.kernel.org/linux-usb/20250812132445.3185026-1-sakari.ailus@linux.intel.com
- New patch: use le16_to_cpu() to access endpoint descriptor's
  wMaxPacketSize field, which is an __le16. This isn't a bugfix as the
  value was compared to 0.
- New patch: add USB device speed check for eUSB2 isochronous endpoint
  companion parsing. The check is then removed from sites checking the
  existence of the companion (through companion's bDescriptorType field,
  which is non-zero for valid descriptors).
- New patch: do not parse eUSB2 isoc double BW companion descriptor on
  interrupt or OUT endpoints. It is not supposed to be found there,
  according to the ECN.
- Rename usb_endpoint_max_isoc_bpi() as
  usb_endpoint_max_periodic_payload() and move it right after
  usb_maxpacket().
- Fixed @ep reference in kernel-doc documentation for
  usb_endpoint_max_periodic_payload().
- In usb_endpoint_max_periodic_payload(), call struct usb_device pointer
  argument "udev" instead of "dev", to align with naming elsewhere.
- Add support for interrupt endpoints in
  usb_endpoint_max_periodic_payload(); eUSB2 double isoc BW is still
  limited to isochronous endpoints though.
- In usb_endpoint_max_periodic_payload(), remove the separate case for
  USB_SPEED_HIGH as the check is already done in parsing the eUSB isoc
  double BW companion, which is checked for.
- New patch: use usb_endpoint_max_periodic_payload() in xHCI driver,
  replacing xhci_get_max_esit_payload().
- Check non-zero bDescriptorType field of ep-&gt;eusb2_isoc_ep_comp instead
  of dwBytesPerInterval value exceeding 3072, where
  xhci_eusb2_is_isoc_bw_double() was used. This aligns the checks of eUSB2
  isochronous double bandwidth support for an endpoint.
- New patch: introduce usb_endpoint_is_hs_isoc_double() to figure out
  whether an endpoint uses isochronous double bandwidth and use the
  function in the xHCI driver and the usb core.
  xhci_eusb2_is_isoc_bw_double() is dropped, as well as the
  MAX_ISOC_XFER_SIZE_HS macro. usb_endpoint_is_hs_isoc_double() also
  includes check for bcdUSB == 0x220, to anticipate adding support for
  eUSB2V2.
- Merge condition for checking eUSB2 isoc double bw support for
  xHCI/endpoint in xhci_get_endpoint_mult().
- Improve comment regarding maximum packet size bits 12:11 in
  xhci_get_endpoint_max_burst().
- Aligned subject prefixes with the recent patches to the same files.

since v3:
  https://lore.kernel.org/linux-usb/20250807055355.1257029-1-sakari.ailus@linux.intel.com/
- Use spaces in aligning macro body for HCC2_EUSB2_DIC() (1st patch).
- Move usb_endpoint_max_isoc_bpi() to drivers/usb/core/usb.c (3rd patch).

since v2:
  https://lore.kernel.org/linux-usb/20250711083413.1552423-1-sakari.ailus@linux.intel.com
- Use ep-&gt;eusb2_isoc_ep_comp.bDescriptorType to determined whether the
  eUSB2 isochronous endpoint companion descriptor exists.
- Clean up eUSB2 double isoc bw maxp calculation.
- Drop le16_to_cpu(udev-&gt;descriptor.bcdUSB) == 0x220 check from
  xhci_eusb2_is_isoc_bw_double() -- it's redundant as
  ep-&gt;eusb2_isoc_ep_comp.dwBytesPerInterval will be zero otherwise.
- Add kernel-doc documentation for usb_endpoint_max_isoc_bpi().
- Check the endpoint has IN direction in usb_endpoint_max_isoc_bpi() and
  usb_submit_urb() as a condition for eUSB2 isoc double bw.

since v1:
  https://lore.kernel.org/linux-usb/20250616093730.2569328-2-mathias.nyman@linux.intel.com
- 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, including support
  for SuperSpeedPlus Isochronous Endpoint Companion.
- Use usb_endpoint_max_isoc_bpi() in the UVC driver instead of open-coding
  eUSB2 support there, also drop now-redundant uvc_endpoint_max_bpi().
- 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).

Link: https://lore.kernel.org/r/20250820143824.551777-1-sakari.ailus@linux.intel.com
Cc: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: core: support eUSB2 double bandwidth large isoc URB frames</title>
<updated>2025-09-06T13:25:05Z</updated>
<author>
<name>Rai, Amardeep</name>
<email>amardeep.rai@intel.com</email>
</author>
<published>2025-08-20T14:38:23Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=0666a012d25051d6d2b4e6b2c893e2f074b87d91'/>
<id>urn:sha1:0666a012d25051d6d2b4e6b2c893e2f074b87d91</id>
<content type='text'>
eUSB2 double isochronous in bandwidth devices support up to 6 transactions
per microframe, and thus doubles the total bytes possible to receive per
microframe.

Support larger URB isoc frame sizes for eUSB2 double isoc in endpoints.

Also usb_endpoint_maxp() returns a natural number so there's no need to
assume it could be &lt; 0.

Signed-off-by: Rai, Amardeep &lt;amardeep.rai@intel.com&gt;
Reviewed-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Co-developed-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Acked-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Link: https://lore.kernel.org/r/20250820143824.551777-9-sakari.ailus@linux.intel.com
</content>
</entry>
<entry>
<title>usb: core: Introduce usb_endpoint_is_hs_isoc_double()</title>
<updated>2025-09-06T13:25:05Z</updated>
<author>
<name>Sakari Ailus</name>
<email>sakari.ailus@linux.intel.com</email>
</author>
<published>2025-08-20T14:38:21Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=d6725169a9bbcb5bd1dd14b2891b874614c59f52'/>
<id>urn:sha1:d6725169a9bbcb5bd1dd14b2891b874614c59f52</id>
<content type='text'>
Introduce usb_endpoint_is_hs_isoc_double() tell whether an endpoint
conforms to USB 2.0 Isochronous Double IN Bandwidth ECN.

Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Acked-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Link: https://lore.kernel.org/r/20250820143824.551777-7-sakari.ailus@linux.intel.com
</content>
</entry>
<entry>
<title>usb: core: Add a function to get USB version independent periodic payload</title>
<updated>2025-09-06T13:25:05Z</updated>
<author>
<name>Rai, Amardeep</name>
<email>amardeep.rai@intel.com</email>
</author>
<published>2025-08-20T14:38:19Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=20f988320d2718ef28b1f0635acc88c12a216d29'/>
<id>urn:sha1:20f988320d2718ef28b1f0635acc88c12a216d29</id>
<content type='text'>
Add usb_endpoint_max_periodic_payload() to obtain maximum payload bytes in
a service interval for isochronous and interrupt endpoints in a USB
version independent way.

Signed-off-by: Rai, Amardeep &lt;amardeep.rai@intel.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Co-developed-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Reviewed-by: Hans de Goede &lt;hansg@kernel.org&gt;
Acked-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Link: https://lore.kernel.org/r/20250820143824.551777-5-sakari.ailus@linux.intel.com
</content>
</entry>
<entry>
<title>usb: core: eUSB2 companion descriptor is for isoc IN endpoints only</title>
<updated>2025-09-06T13:25:05Z</updated>
<author>
<name>Sakari Ailus</name>
<email>sakari.ailus@linux.intel.com</email>
</author>
<published>2025-08-20T14:38:18Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=53d76c6866a0362320b837dd292db4befcac31ba'/>
<id>urn:sha1:53d76c6866a0362320b837dd292db4befcac31ba</id>
<content type='text'>
The eUSB2 isochronous double bandwidth endpoint descriptor is allowed for
the isochronous IN endpoints, according to the ECN. Do not parse these
descriptors if they are found in interrupt or OUT endpoints.

Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Acked-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Link: https://lore.kernel.org/r/20250820143824.551777-4-sakari.ailus@linux.intel.com
</content>
</entry>
</feed>
