On Fri, Feb 12, 2016 at 04:40:12PM +0200, Mathias Nyman wrote:
> 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 <[email protected]>
> ---
>  include/uapi/linux/usb/ch9.h | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/include/uapi/linux/usb/ch9.h b/include/uapi/linux/usb/ch9.h
> index 779a62a..a65f1f3 100644
> --- a/include/uapi/linux/usb/ch9.h
> +++ b/include/uapi/linux/usb/ch9.h
> @@ -234,6 +234,8 @@ struct usb_ctrlrequest {
>  #define USB_DT_PIPE_USAGE            0x24
>  /* From the USB 3.0 spec */
>  #define      USB_DT_SS_ENDPOINT_COMP         0x30
> +/* From the USB 3.1 spec */
> +#define      USB_DT_SSP_ISOC_ENDPOINT_COMP   0x31
>  
>  /* Conventional codes for class-specific descriptors.  The convention is
>   * defined in the USB "Common Class" Spec (3.11).  Individual class specs
> @@ -613,6 +615,20 @@ static inline int usb_endpoint_interrupt_type(
>  
>  /*-------------------------------------------------------------------------*/
>  
> +/* USB_DT_SSP_ISOC_ENDPOINT_COMP: SuperSpeedPlus Isochronous Endpoint 
> Companion
> + * descriptor
> + */
> +struct usb_ssp_isoc_ep_comp_descriptor {
> +     __u8  bLength;
> +     __u8  bDescriptorType;
> +     __le16 wReseved;
> +     __le32 dwBytesPerInterval;
> +} __attribute__ ((packed));
> +
> +#define USB_DT_SSP_ISOC_EP_COMP_SIZE         8
> +
> +/*-------------------------------------------------------------------------*/
> +
>  /* USB_DT_SS_ENDPOINT_COMP: SuperSpeed Endpoint Companion descriptor */
>  struct usb_ss_ep_comp_descriptor {
>       __u8  bLength;
> @@ -646,6 +662,8 @@ usb_ss_max_streams(const struct usb_ss_ep_comp_descriptor 
> *comp)
>  
>  /* Bits 1:0 of bmAttributes if this is an isoc endpoint */
>  #define USB_SS_MULT(p)                       (1 + ((p) & 0x3))
> +/* Bit 7 of bmAttributes if a SSP isoc endpoint companion descriptor exists 
> */
> +#define USB_SS_SSP_ISOC_COMP(p)              ((p) & (1 << 7))

BIT(7)?

Saves me the time of having someone do a coding style patch later on...

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to