On Tue, 9 Jun 2015, Li Jun wrote:
> > > -/* USB_DT_OTG (from OTG 1.0a supplement) */
> > > +/* USB_DT_OTG */
> > > struct usb_otg_descriptor {
> > > __u8 bLength;
> > > __u8 bDescriptorType;
> > >
> > > __u8 bmAttributes; /* support for HNP, SRP, etc */
> > > + struct bcdOTG otg_rev[0];
> >
> > why not just __le16 bcdOTG here ?
>
> usb_otg_descriptor of OTG 1.0 and 2.0 have different size, if directly add
> __le16 bcdOTG here, then it cannot used for OTG 1.0.
> I use a zero length array as Peter suggested here for bcdOTG, then the size
> of usb_otg_descriptor is still 3(not 5), which is compliant with OTG 1.x, if
> OTG
> 2.0 or later, we can use member of otg_rev to add bcdOTG, then the size
> of usb_otg_descriptor + bcdOTG will be 5, in one word, I want to use existing
> usb_otg_descriptor struct to cover both OTG 1.x and 2.0
In the end, you may find it is simpler to use two different
structures: usb_otg_descriptor and usb_otg_20_descriptor.
Try it and see.
Alan Stern
--
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