From 53d76c6866a0362320b837dd292db4befcac31ba Mon Sep 17 00:00:00 2001 From: Sakari Ailus Date: Wed, 20 Aug 2025 17:38:18 +0300 Subject: [PATCH] usb: core: eUSB2 companion descriptor is for isoc IN endpoints only 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 Acked-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman Link: https://lore.kernel.org/r/20250820143824.551777-4-sakari.ailus@linux.intel.com --- drivers/usb/core/config.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c index 29fcbd6de482c..baf5bc844b6ff 100644 --- a/drivers/usb/core/config.c +++ b/drivers/usb/core/config.c @@ -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); -- 2.47.3