Skip to content

Commit

Permalink
usb: gadget: net2280: use udc-core's reset notifier
Browse files Browse the repository at this point in the history
This patch adds support for the new udc-core reset notifier to the
net2280 driver.

Signed-off-by: Alan Stern <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
Signed-off-by: Peter Chen <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
  • Loading branch information
AlanStern authored and Felipe Balbi committed Nov 10, 2014
1 parent 8480484 commit b611e42
Showing 1 changed file with 35 additions and 10 deletions.
45 changes: 35 additions & 10 deletions drivers/usb/gadget/udc/net2280.c
Original file line number Diff line number Diff line change
Expand Up @@ -3308,17 +3308,42 @@ static void handle_stat1_irqs(struct net2280 *dev, u32 stat)
* only indicates a change in the reset state).
*/
if (stat & tmp) {
bool reset = false;
bool disconnect = false;

/*
* Ignore disconnects and resets if the speed hasn't been set.
* VBUS can bounce and there's always an initial reset.
*/
writel(tmp, &dev->regs->irqstat1);
if ((((stat & BIT(ROOT_PORT_RESET_INTERRUPT)) &&
((readl(&dev->usb->usbstat) & mask) == 0)) ||
((readl(&dev->usb->usbctl) &
BIT(VBUS_PIN)) == 0)) &&
(dev->gadget.speed != USB_SPEED_UNKNOWN)) {
ep_dbg(dev, "disconnect %s\n",
dev->driver->driver.name);
stop_activity(dev, dev->driver);
ep0_start(dev);
return;
if (dev->gadget.speed != USB_SPEED_UNKNOWN) {
if ((stat & BIT(VBUS_INTERRUPT)) &&
(readl(&dev->usb->usbctl) &
BIT(VBUS_PIN)) == 0) {
disconnect = true;
ep_dbg(dev, "disconnect %s\n",
dev->driver->driver.name);
} else if ((stat & BIT(ROOT_PORT_RESET_INTERRUPT)) &&
(readl(&dev->usb->usbstat) & mask)
== 0) {
reset = true;
ep_dbg(dev, "reset %s\n",
dev->driver->driver.name);
}

if (disconnect || reset) {
stop_activity(dev, dev->driver);
ep0_start(dev);
spin_unlock(&dev->lock);
if (reset)
usb_gadget_udc_reset
(&dev->gadget, dev->driver);
else
(dev->driver->disconnect)
(&dev->gadget);
spin_lock(&dev->lock);
return;
}
}
stat &= ~tmp;

Expand Down

0 comments on commit b611e42

Please sign in to comment.