diff mbox series

[3/3] media: uvcvideo: eUSB2 double isochronous bandwidth support

Message ID 20250616093730.2569328-4-mathias.nyman@linux.intel.com
State New
Headers show
Series [1/3] xhci: Add host support for eUSB2 double isochronous bandwidth devices | expand

Commit Message

Mathias Nyman June 16, 2025, 9:37 a.m. UTC
From: Tao Q Tao <tao.q.tao@intel.com>

Add eUSB2 support to check total number of bytes, isochronous endpoint
will transfer every service interval(SI).

Co-developed-by: Amardeep Rai <amardeep.rai@intel.com>
Signed-off-by: Amardeep Rai <amardeep.rai@intel.com>
Signed-off-by: Tao Q Tao <tao.q.tao@intel.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
---
 drivers/media/usb/uvc/uvc_video.c | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c
index e3567aeb0007..a888f84208c6 100644
--- a/drivers/media/usb/uvc/uvc_video.c
+++ b/drivers/media/usb/uvc/uvc_video.c
@@ -1906,6 +1906,11 @@  u16 uvc_endpoint_max_bpi(struct usb_device *dev, struct usb_host_endpoint *ep)
 	case USB_SPEED_SUPER:
 	case USB_SPEED_SUPER_PLUS:
 		return le16_to_cpu(ep->ss_ep_comp.wBytesPerInterval);
+	case USB_SPEED_HIGH:
+		psize = usb_endpoint_maxp(&ep->desc);
+		if (psize == 0 && le16_to_cpu(dev->descriptor.bcdUSB) == 0x220)
+			return le32_to_cpu(ep->eusb2_isoc_ep_comp.dwBytesPerInterval);
+		fallthrough;
 	default:
 		psize = usb_endpoint_maxp(&ep->desc);
 		psize *= usb_endpoint_maxp_mult(&ep->desc);