>From b23f2f94136884ebeb1b5e2196f4a53086444afa Mon Sep 17 00:00:00 2001
From: Hao Wu <[email protected]>
Date: Mon, 29 Nov 2010 15:17:03 +0800
Subject: [PATCH] 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 <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 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 d3493fe..21dc0da 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -1188,6 +1188,8 @@ composite_suspend(struct usb_gadget *gadget)
                composite->suspend(cdev);
 
        cdev->suspended = 1;
+
+       usb_gadget_vbus_draw(gadget, 2);
 }
 
 static void
@@ -1195,6 +1197,7 @@ composite_resume(struct usb_gadget *gadget)
 {
        struct usb_composite_dev        *cdev = get_gadget_data(gadget);
        struct usb_function             *f;
+       u8                              maxpower;
 
        /* REVISIT:  should we have config level
         * suspend/resume callbacks?
@@ -1207,6 +1210,11 @@ composite_resume(struct usb_gadget *gadget)
                        if (f->resume)
                                f->resume(f);
                }
+
+               maxpower = cdev->config->bMaxPower;
+
+               usb_gadget_vbus_draw(gadget, maxpower ?
+                       (2 * maxpower) : CONFIG_USB_GADGET_VBUS_DRAW);
        }
 
        cdev->suspended = 0;
-- 
1.7.3.2

Attachment: 0003-usb-composite-gadget-set-vbus_draw-current-limitat.patch
Description: 0003-usb-composite-gadget-set-vbus_draw-current-limitat.patch

_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to