diff options
author | Hao Wu <hao.wu@intel.com> | 2010-11-29 02:17:03 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-11-30 19:46:34 -0500 |
commit | b23f2f94136884ebeb1b5e2196f4a53086444afa (patch) | |
tree | 3c5195b1e5750c45377ba07b979ddd42234a3f4e /drivers/usb/gadget | |
parent | c3d6450e741da08c3bc2e2ba06d743c27540abac (diff) |
usb: composite gadget: set vbus_draw current limitation during suspend
This patch modifies the composite gadget to set vbus_draw current limitation
during suspend state. This current limitation in suspend state shouldn't be
more than 2.5mA
Signed-off-by: Hao Wu <hao.wu@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/composite.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index d3493fede64a..21dc0da36ab7 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c | |||
@@ -1188,6 +1188,8 @@ composite_suspend(struct usb_gadget *gadget) | |||
1188 | composite->suspend(cdev); | 1188 | composite->suspend(cdev); |
1189 | 1189 | ||
1190 | cdev->suspended = 1; | 1190 | cdev->suspended = 1; |
1191 | |||
1192 | usb_gadget_vbus_draw(gadget, 2); | ||
1191 | } | 1193 | } |
1192 | 1194 | ||
1193 | static void | 1195 | static void |
@@ -1195,6 +1197,7 @@ composite_resume(struct usb_gadget *gadget) | |||
1195 | { | 1197 | { |
1196 | struct usb_composite_dev *cdev = get_gadget_data(gadget); | 1198 | struct usb_composite_dev *cdev = get_gadget_data(gadget); |
1197 | struct usb_function *f; | 1199 | struct usb_function *f; |
1200 | u8 maxpower; | ||
1198 | 1201 | ||
1199 | /* REVISIT: should we have config level | 1202 | /* REVISIT: should we have config level |
1200 | * suspend/resume callbacks? | 1203 | * suspend/resume callbacks? |
@@ -1207,6 +1210,11 @@ composite_resume(struct usb_gadget *gadget) | |||
1207 | if (f->resume) | 1210 | if (f->resume) |
1208 | f->resume(f); | 1211 | f->resume(f); |
1209 | } | 1212 | } |
1213 | |||
1214 | maxpower = cdev->config->bMaxPower; | ||
1215 | |||
1216 | usb_gadget_vbus_draw(gadget, maxpower ? | ||
1217 | (2 * maxpower) : CONFIG_USB_GADGET_VBUS_DRAW); | ||
1210 | } | 1218 | } |
1211 | 1219 | ||
1212 | cdev->suspended = 0; | 1220 | cdev->suspended = 0; |