]> www.infradead.org Git - users/hch/misc.git/commitdiff
usb: core: eUSB2 companion descriptor is for isoc IN endpoints only
authorSakari Ailus <sakari.ailus@linux.intel.com>
Wed, 20 Aug 2025 14:38:18 +0000 (17:38 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Sep 2025 13:25:05 +0000 (15:25 +0200)
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 <sakari.ailus@linux.intel.com>
Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20250820143824.551777-4-sakari.ailus@linux.intel.com
drivers/usb/core/config.c

index 29fcbd6de482cbdfc3ae836eadbab63fac560e9d..baf5bc844b6ffadcac6e27e559c7c025c3fe4ca1 100644 (file)
@@ -508,8 +508,7 @@ static int usb_parse_endpoint(struct device *ddev, int cfgno,
 
        /* Parse a possible eUSB2 periodic endpoint companion descriptor */
        if (udev->speed == USB_SPEED_HIGH && bcdUSB == 0x0220 &&
-           !le16_to_cpu(d->wMaxPacketSize) &&
-           (usb_endpoint_xfer_isoc(d) || usb_endpoint_xfer_int(d)))
+           !le16_to_cpu(d->wMaxPacketSize) && usb_endpoint_is_isoc_in(d))
                usb_parse_eusb2_isoc_endpoint_companion(ddev, cfgno, inum, asnum,
                                                        endpoint, buffer, size);