diff options
author | Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> | 2014-08-26 18:00:19 +0200 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2014-09-03 09:15:57 -0500 |
commit | ac9d032e739f13ca04bfe6e0fd04bd114f72c6e2 (patch) | |
tree | 6641afa8fb45b806f88e9837050f9e078cec30f9 | |
parent | 9267edaf8cd7b0ef2cd7785c677fe792c077b6ab (diff) | |
download | linux-ac9d032e739f13ca04bfe6e0fd04bd114f72c6e2.tar.bz2 |
usb: gadget: net2280: Fix invalid handling of Reset irq
Without this patch, some hosts keep restarting indefinitely the target.
Fixes: ae8e530 (usb: gadget: net2280: Code Cleanup)
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r-- | drivers/usb/gadget/udc/net2280.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/gadget/udc/net2280.c b/drivers/usb/gadget/udc/net2280.c index f4eac113690e..2e95715b50c0 100644 --- a/drivers/usb/gadget/udc/net2280.c +++ b/drivers/usb/gadget/udc/net2280.c @@ -3320,7 +3320,7 @@ static void handle_stat1_irqs(struct net2280 *dev, u32 stat) if (stat & tmp) { writel(tmp, &dev->regs->irqstat1); if ((((stat & BIT(ROOT_PORT_RESET_INTERRUPT)) && - (readl(&dev->usb->usbstat) & mask)) || + ((readl(&dev->usb->usbstat) & mask) == 0)) || ((readl(&dev->usb->usbctl) & BIT(VBUS_PIN)) == 0)) && (dev->gadget.speed != USB_SPEED_UNKNOWN)) { |