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 11:38:10AM -0800, Greg KH wrote:
> 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...

Oh nevermind, it's a uapi file, BIT() doesn't work there, sorry for the
noise...

--
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