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);
|
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
|
* 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,
|
u32 usb_endpoint_max_periodic_payload(struct usb_device *udev,
|
||||||
const struct usb_host_endpoint *ep);
|
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 */
|
/* translate USB error codes to codes user space understands */
|
||||||
static inline int usb_translate_errors(int error_code)
|
static inline int usb_translate_errors(int error_code)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue