USB Gadget: Verify VBUS current before setting the device self-powered bit
Acked-by: David Brownell <dbrownell@users.sourceforge.net> Acked-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Praveena Nadahally <praveen.nadahally@stericsson.com> Signed-off-by: Parirajan Muthalagu <parirajan.muthalagu@stericsson.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
90593899de
commit
37b5801e16
2 changed files with 17 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
|
Reference in a new issue