Re: [PATCH 1/7] usb: Add USB3.1 SuperSpeedPlus Isoc Endpoint Companion descriptor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <mathias.nyman@xxxxxxxxxxxxxxx>
> ---
>  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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux