diff options
author | Peter Chen <peter.chen@nxp.com> | 2020-04-29 17:31:19 +0800 |
---|---|---|
committer | Peter Chen <peter.chen@nxp.com> | 2020-05-12 16:02:44 +0800 |
commit | c5d2317ea940a780241f9fc911c8029dea0f885f (patch) | |
tree | 51188e7af1db1b5a54d99e9c2e07d309a1704387 /drivers/usb/cdns3 | |
parent | ab5df6fb23e4c6e8db7b9c7a4a0e0ef0341a0c51 (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.c | 7 |
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; } |