On Tue, Jun 09, 2015 at 03:56:44PM +0300, Roger Quadros wrote: > > > On Mon, 8 Jun 2015 23:01:56 +0800 > Li Jun <jun.li@xxxxxxxxxxxxx> wrote: > > > From: Macpaul Lin <macpaul@xxxxxxxxx> > > > > OTG 2.0 introduces bcdOTG to identify the OTG and EH supplement release > > number with which the OTG device is compliant, so adds it for > > usb_otg_descriptor. > > > > Signed-off-by: Macpaul Lin <macpaul@xxxxxxxxx> > > Signed-off-by: Li Jun <jun.li@xxxxxxxxxxxxx> > > --- > > include/uapi/linux/usb/ch9.h | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/include/uapi/linux/usb/ch9.h b/include/uapi/linux/usb/ch9.h > > index aa33fd1..ce405fb 100644 > > --- a/include/uapi/linux/usb/ch9.h > > +++ b/include/uapi/linux/usb/ch9.h > > @@ -665,13 +665,17 @@ struct usb_qualifier_descriptor { > > > > > > /*-------------------------------------------------------------------------*/ > > +struct bcdOTG { > > + __le16 bcdOTG; > > +}; > > > > -/* 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 Li Jun > > > } __attribute__ ((packed)); > > > > /* from usb_otg_descriptor.bmAttributes */ > > cheers, > -roger -- 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