--- On Wed, 8/25/10, Praveena Nadahally <praveen.nadahally@xxxxxxxxxxxxxx> wrote: > From: Praveena Nadahally <praveen.nadahally@xxxxxxxxxxxxxx> > Subject: [PATCH V1] USB Gadget: Verify VBUS current before setting the device self-powered bit > To: linux-usb@xxxxxxxxxxxxxxx > Cc: STEricsson_nomadik_linux@xxxxxxxxxxx, linus.walleij@xxxxxxxxxxxxxx, dbrownell@xxxxxxxxxxxxxxxxxxxxx, "Parirajan Muthalagu" <parirajan.muthalagu@xxxxxxxxxxxxxx>, "Praveena Nadahally" <praveen.nadahally@xxxxxxxxxxxxxx> > Date: Wednesday, August 25, 2010, 4:03 AM > From: Parirajan Muthalagu <parirajan.muthalagu@xxxxxxxxxxxxxx> > > > Acked-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> Yes, better -- thanks. > Acked-by: Linus Walleij <linus.walleij@xxxxxxxxxxxxxx> > Signed-off-by: Praveena Nadahally <praveen.nadahally@xxxxxxxxxxxxxx> > Signed-off-by: Parirajan Muthalagu <parirajan.muthalagu@xxxxxxxxxxxxxx> > --- > drivers/usb/gadget/composite.c | 8 +++++++- > include/linux/usb/ch9.h > | 10 ++++++++++ > 2 files changed, 17 insertions(+), 1 deletions(-) > > diff --git a/drivers/usb/gadget/composite.c > b/drivers/usb/gadget/composite.c > index e483f80..ef7760f 100644 > --- a/drivers/usb/gadget/composite.c > +++ b/drivers/usb/gadget/composite.c > @@ -1074,7 +1074,13 @@ static int composite_bind(struct > usb_gadget *gadget) > cdev->bufsiz = USB_BUFSIZ; > cdev->driver = composite; > > - usb_gadget_set_selfpowered(gadget); > + /* > + * As per USB compliance > update, a device that is actively drawing > + * more than 100mA from USB > must report itself as bus-powered in > + * the GetStatus(DEVICE) > call. > + */ > + if (CONFIG_USB_GADGET_VBUS_DRAW <= > USB_SELF_POWER_VBUS_MAX_DRAW) > + > usb_gadget_set_selfpowered(gadget); > > /* interface and string IDs start at > zero via kzalloc. > * we force endpoints to > start unassigned; few controller > diff --git a/include/linux/usb/ch9.h > b/include/linux/usb/ch9.h > index da2ed77..b0f7e9f 100644 > --- a/include/linux/usb/ch9.h > +++ b/include/linux/usb/ch9.h > @@ -808,4 +808,14 @@ enum usb_device_state { > */ > }; > > +/*-------------------------------------------------------------------------*/ > + > +/* > + * As per USB compliance update, a device that is actively > drawing > + * more than 100mA from USB must report itself as > bus-powered in > + * the GetStatus(DEVICE) call. > + * http://compliance.usb.org/index.asp?UpdateFile=Electrical&Format=Standard#34 > + */ > +#define USB_SELF_POWER_VBUS_MAX_DRAW > 100 > + > #endif /* __LINUX_USB_CH9_H */ > -- > 1.6.3.3 > > -- > 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 > -- 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