|
@@ -1350,16 +1350,12 @@ static int goku_udc_start(struct usb_gadget *g,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static void
|
|
|
-stop_activity(struct goku_udc *dev, struct usb_gadget_driver *driver)
|
|
|
+static void stop_activity(struct goku_udc *dev)
|
|
|
{
|
|
|
unsigned i;
|
|
|
|
|
|
DBG (dev, "%s\n", __func__);
|
|
|
|
|
|
- if (dev->gadget.speed == USB_SPEED_UNKNOWN)
|
|
|
- driver = NULL;
|
|
|
-
|
|
|
/* disconnect gadget driver after quiesceing hw and the driver */
|
|
|
udc_reset (dev);
|
|
|
for (i = 0; i < 4; i++)
|
|
@@ -1377,7 +1373,7 @@ static int goku_udc_stop(struct usb_gadget *g,
|
|
|
|
|
|
spin_lock_irqsave(&dev->lock, flags);
|
|
|
dev->driver = NULL;
|
|
|
- stop_activity(dev, driver);
|
|
|
+ stop_activity(dev);
|
|
|
spin_unlock_irqrestore(&dev->lock, flags);
|
|
|
|
|
|
return 0;
|
|
@@ -1521,7 +1517,7 @@ rescan:
|
|
|
if (unlikely(stat & INT_DEVWIDE)) {
|
|
|
if (stat & INT_SYSERROR) {
|
|
|
ERROR(dev, "system error\n");
|
|
|
- stop_activity(dev, dev->driver);
|
|
|
+ stop_activity(dev);
|
|
|
stat = 0;
|
|
|
handled = 1;
|
|
|
// FIXME have a neater way to prevent re-enumeration
|
|
@@ -1536,7 +1532,7 @@ rescan:
|
|
|
} else {
|
|
|
DBG(dev, "disconnect\n");
|
|
|
if (dev->gadget.speed == USB_SPEED_FULL)
|
|
|
- stop_activity(dev, dev->driver);
|
|
|
+ stop_activity(dev);
|
|
|
dev->ep0state = EP0_DISCONNECT;
|
|
|
dev->int_enable = INT_DEVWIDE;
|
|
|
writel(dev->int_enable, &dev->regs->int_enable);
|