usb: core: Introduce usb_endpoint_is_hs_isoc_double()
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 <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-7-sakari.ailus@linux.intel.compull/1354/merge
parent
24b8762e05
commit
d6725169a9
|
|
@ -1139,6 +1139,25 @@ u32 usb_endpoint_max_periodic_payload(struct usb_device *udev,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(usb_endpoint_max_periodic_payload);
|
||||
|
||||
/**
|
||||
* usb_endpoint_is_hs_isoc_double - Tell whether an endpoint uses USB 2
|
||||
* Isochronous Double IN Bandwidth
|
||||
* @udev: The USB device
|
||||
* @ep: The endpoint
|
||||
*
|
||||
* Returns: true if an endpoint @ep conforms to USB 2 Isochronous Double IN
|
||||
* Bandwidth ECN, false otherwise.
|
||||
*/
|
||||
bool usb_endpoint_is_hs_isoc_double(struct usb_device *udev,
|
||||
const struct usb_host_endpoint *ep)
|
||||
{
|
||||
return ep->eusb2_isoc_ep_comp.bDescriptorType &&
|
||||
le16_to_cpu(udev->descriptor.bcdUSB) == 0x220 &&
|
||||
usb_endpoint_is_isoc_in(&ep->desc) &&
|
||||
!le16_to_cpu(ep->desc.wMaxPacketSize);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(usb_endpoint_is_hs_isoc_double);
|
||||
|
||||
/*
|
||||
* Notifications of device and interface registration
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -2042,6 +2042,9 @@ static inline u16 usb_maxpacket(struct usb_device *udev, int pipe)
|
|||
u32 usb_endpoint_max_periodic_payload(struct usb_device *udev,
|
||||
const struct usb_host_endpoint *ep);
|
||||
|
||||
bool usb_endpoint_is_hs_isoc_double(struct usb_device *udev,
|
||||
const struct usb_host_endpoint *ep);
|
||||
|
||||
/* translate USB error codes to codes user space understands */
|
||||
static inline int usb_translate_errors(int error_code)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue