summaryrefslogtreecommitdiff
path: root/drivers/usb/cdns3
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@nxp.com>2020-04-29 17:31:19 +0800
committerPeter Chen <peter.chen@nxp.com>2020-05-12 16:02:44 +0800
commitc5d2317ea940a780241f9fc911c8029dea0f885f (patch)
tree51188e7af1db1b5a54d99e9c2e07d309a1704387 /drivers/usb/cdns3
parentab5df6fb23e4c6e8db7b9c7a4a0e0ef0341a0c51 (diff)
MLK-23913-5 usb: cdns3: gadget: clear the interrupt status when disconnect the host
We do not want to handle any interrupts after usb_gadget_disconnect is called. Reviewed-by: Jun Li <jun.li@nxp.com> Signed-off-by: Peter Chen <peter.chen@nxp.com>
Diffstat (limited to 'drivers/usb/cdns3')
-rw-r--r--drivers/usb/cdns3/gadget.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c
index d153d25d9a54..157f2e5f9dfe 100644
--- a/drivers/usb/cdns3/gadget.c
+++ b/drivers/usb/cdns3/gadget.c
@@ -2036,10 +2036,13 @@ static int cdns3_gadget_pullup(struct usb_gadget *gadget, int is_on)
if (!priv_dev->start_gadget)
return 0;
- if (is_on)
+ if (is_on) {
writel(USB_CONF_DEVEN, &priv_dev->regs->usb_conf);
- else
+ } else {
+ writel(~0, &priv_dev->regs->ep_ists);
+ writel(~0, &priv_dev->regs->usb_ists);
writel(USB_CONF_DEVDS, &priv_dev->regs->usb_conf);
+ }
return 0;
}