diff options
Diffstat (limited to 'drivers/usb/host/ehci-arc.c')
-rw-r--r-- | drivers/usb/host/ehci-arc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-arc.c b/drivers/usb/host/ehci-arc.c index 4e6674a684df..1d015c92fc9c 100644 --- a/drivers/usb/host/ehci-arc.c +++ b/drivers/usb/host/ehci-arc.c @@ -155,6 +155,16 @@ static irqreturn_t ehci_fsl_pre_irq(int irq, void *dev) pdata->wakeup_event = 0; fsl_usb_recover_hcd(pdev); return IRQ_HANDLED; + } else { + u32 portsc = 0; + struct ehci_hcd *ehci = hcd_to_ehci(hcd); + portsc = ehci_readl(ehci, &ehci->regs->port_status[0]); + /* PORT_USB11 macro is used to judge line state K*/ + if ((PORT_USB11(portsc)) && (portsc & PORT_SUSPEND)) { + pdata = hcd->self.controller->platform_data; + if (pdata->platform_resume) + pdata->platform_resume(pdata); + } } return IRQ_NONE; } |