diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-03-23 09:44:44 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-03-23 09:44:44 -0700 |
| commit | e12647abbd510353e346307a0a799ab130a0ae36 (patch) | |
| tree | ad5899b8a4f10a68c23eae73ac12acedc90869df /drivers/usb | |
| parent | 9e50ecf4cf70e77cbc2567cb1d454279aeb43878 (diff) | |
| parent | 5c3153dc84c39dc8ed55243298fa154509d93325 (diff) | |
Merge "usb: core: Enable xhci irq after starting controller"
Diffstat (limited to 'drivers/usb')
| -rw-r--r-- | drivers/usb/host/xhci.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 82391a0dbc7b..aab1c7903288 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -138,7 +138,13 @@ static int xhci_start(struct xhci_hcd *xhci) { u32 temp; int ret; + struct usb_hcd *hcd = xhci_to_hcd(xhci); + /* + * disable irq to avoid xhci_irq flooding due to unhandeled port + * change event in halt state, as soon as xhci_start clears halt bit + */ + disable_irq(hcd->irq); temp = readl(&xhci->op_regs->command); temp |= (CMD_RUN); xhci_dbg_trace(xhci, trace_xhci_dbg_init, "// Turn on HC, cmd = 0x%x.", @@ -159,6 +165,8 @@ static int xhci_start(struct xhci_hcd *xhci) /* clear state flags. Including dying, halted or removing */ xhci->xhc_state = 0; + enable_irq(hcd->irq); + return ret; } |
