aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorMathias Nyman <mathias.nyman@linux.intel.com>2016-02-12 09:40:12 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-02-14 20:03:23 -0500
commitc8b1d8977eee3acc63a65811dd72ec4a93b74388 (patch)
tree285639fb6ff88f2bc1a063541dfc02c405dd73a6 /include/uapi/linux
parent172ad9af55d236cb124d67de7314a90dedb50df1 (diff)
usb: Add USB3.1 SuperSpeedPlus Isoc Endpoint Companion descriptor
USB3.1 specifies a SuperSpeedPlus Isoc endpoint companion descriptor which is returned as part of the devices complete configuration descriptor. It contains number of bytes per service interval which is needed when reserving bus time in the schedule for transfers over 48K bytes per service interval. If bmAttributes bit 7 is set in the old SuperSpeed Endpoint Companion descriptor, it will be ollowed by the new SuperSpeedPlus Isoc Endpoint Companion descriptor. Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/usb/ch9.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/uapi/linux/usb/ch9.h b/include/uapi/linux/usb/ch9.h
index 779a62aafafe..a65f1f328de1 100644
--- a/include/uapi/linux/usb/ch9.h
+++ b/include/uapi/linux/usb/ch9.h
@@ -234,6 +234,8 @@ struct usb_ctrlrequest {
234#define USB_DT_PIPE_USAGE 0x24 234#define USB_DT_PIPE_USAGE 0x24
235/* From the USB 3.0 spec */ 235/* From the USB 3.0 spec */
236#define USB_DT_SS_ENDPOINT_COMP 0x30 236#define USB_DT_SS_ENDPOINT_COMP 0x30
237/* From the USB 3.1 spec */
238#define USB_DT_SSP_ISOC_ENDPOINT_COMP 0x31
237 239
238/* Conventional codes for class-specific descriptors. The convention is 240/* Conventional codes for class-specific descriptors. The convention is
239 * defined in the USB "Common Class" Spec (3.11). Individual class specs 241 * defined in the USB "Common Class" Spec (3.11). Individual class specs
@@ -613,6 +615,20 @@ static inline int usb_endpoint_interrupt_type(
613 615
614/*-------------------------------------------------------------------------*/ 616/*-------------------------------------------------------------------------*/
615 617
618/* USB_DT_SSP_ISOC_ENDPOINT_COMP: SuperSpeedPlus Isochronous Endpoint Companion
619 * descriptor
620 */
621struct usb_ssp_isoc_ep_comp_descriptor {
622 __u8 bLength;
623 __u8 bDescriptorType;
624 __le16 wReseved;
625 __le32 dwBytesPerInterval;
626} __attribute__ ((packed));
627
628#define USB_DT_SSP_ISOC_EP_COMP_SIZE 8
629
630/*-------------------------------------------------------------------------*/
631
616/* USB_DT_SS_ENDPOINT_COMP: SuperSpeed Endpoint Companion descriptor */ 632/* USB_DT_SS_ENDPOINT_COMP: SuperSpeed Endpoint Companion descriptor */
617struct usb_ss_ep_comp_descriptor { 633struct usb_ss_ep_comp_descriptor {
618 __u8 bLength; 634 __u8 bLength;
@@ -646,6 +662,8 @@ usb_ss_max_streams(const struct usb_ss_ep_comp_descriptor *comp)
646 662
647/* Bits 1:0 of bmAttributes if this is an isoc endpoint */ 663/* Bits 1:0 of bmAttributes if this is an isoc endpoint */
648#define USB_SS_MULT(p) (1 + ((p) & 0x3)) 664#define USB_SS_MULT(p) (1 + ((p) & 0x3))
665/* Bit 7 of bmAttributes if a SSP isoc endpoint companion descriptor exists */
666#define USB_SS_SSP_ISOC_COMP(p) ((p) & (1 << 7))
649 667
650/*-------------------------------------------------------------------------*/ 668/*-------------------------------------------------------------------------*/
651 669