aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Herrero <gregory.herrero@intel.com>2015-01-30 09:09:37 +0100
committerFei Wang <w.f@huawei.com>2015-02-06 12:57:46 +0800
commit7f3f0ebe5d41c7f7a6afe35213702ddbef7bc0ca (patch)
tree08b71c2e3038c0d6dd0d8fbaf4fd9ab4bf6edd72
parent7a18cb6f4aac72f8b311c2cf074864d9220a8cde (diff)
usb: dwc2: gadget: initialize controller in pullup callback
USB reset interrupt is no more used to reset the controller. Thus, reset the controller in pullup callback as described by Synopsys programming guide. Otherwise enumeration sometimes fails when usb configuration is switched without physical disconnection. Tested-by: Robert Baldyga <r.baldyga@samsung.com> Acked-by: John Youn <johnyoun@synopsys.com> Signed-off-by: Gregory Herrero <gregory.herrero@intel.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r--drivers/usb/dwc2/gadget.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index 9b6c8e4d21e2..364cd9614fe7 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -3158,6 +3158,7 @@ static int s3c_hsotg_pullup(struct usb_gadget *gadget, int is_on)
if (is_on) {
clk_enable(hsotg->clk);
hsotg->enabled = 1;
+ s3c_hsotg_core_init_disconnected(hsotg, false);
s3c_hsotg_core_connect(hsotg);
} else {
s3c_hsotg_core_disconnect(hsotg);