summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2025-08-20 17:38:18 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-09-06 15:25:05 +0200
commit53d76c6866a0362320b837dd292db4befcac31ba (patch)
tree44979971a2c61f58d927326d0d1d8c5820282bc1
parent030ab58b075c04b5286d2787860373dcc30020c6 (diff)
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 <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
-rw-r--r--drivers/usb/core/config.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 29fcbd6de482..baf5bc844b6f 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);