aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2013-03-11 12:40:31 +0200
committerFelipe Balbi <balbi@ti.com>2013-03-11 12:40:31 +0200
commit66e4afc77f76653460d7eb31ec793506ada1ad33 (patch)
tree081748dced8d451bf5c6bd2218b32cf86b42810c
parentc390b0363d6cc201db93de69b5e88f482322d821 (diff)
downloadlinux-hexagon-kernel-66e4afc77f76653460d7eb31ec793506ada1ad33.tar.gz
usb: gadget: pxa25x: fix disconnect reporting
when commit 6166c24 (usb: gadget: pxa25x_udc: convert to udc_start/udc_stop) converted this driver to udc_start/udc_stop, it failed to consider the fact that stop_activity() is called from disconnect interrupt. Fix the problem so that gadget drivers know about proper disconnect sequences. Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r--drivers/usb/gadget/pxa25x_udc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c
index 9aa9dd5168d83..d0f37484b6b0c 100644
--- a/drivers/usb/gadget/pxa25x_udc.c
+++ b/drivers/usb/gadget/pxa25x_udc.c
@@ -1303,6 +1303,10 @@ stop_activity(struct pxa25x_udc *dev, struct usb_gadget_driver *driver)
}
del_timer_sync(&dev->timer);
+ /* report disconnect; the driver is already quiesced */
+ if (driver)
+ driver->disconnect(&dev->gadget);
+
/* re-init driver-visible data structures */
udc_reinit(dev);
}