Loading drivers/usb/host/xhci-plat.c +8 −1 Original line number Diff line number Diff line Loading @@ -300,13 +300,19 @@ static int xhci_plat_runtime_suspend(struct device *dev) { struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); int ret; if (!xhci) return 0; dev_dbg(dev, "xhci-plat runtime suspend\n"); return xhci_suspend(xhci, true); disable_irq(hcd->irq); ret = xhci_suspend(xhci, true); if (ret) enable_irq(hcd->irq); return ret; } static int xhci_plat_runtime_resume(struct device *dev) Loading @@ -321,6 +327,7 @@ static int xhci_plat_runtime_resume(struct device *dev) dev_dbg(dev, "xhci-plat runtime resume\n"); ret = xhci_resume(xhci, false); enable_irq(hcd->irq); pm_runtime_mark_last_busy(dev); return ret; Loading drivers/usb/host/xhci.c +4 −0 Original line number Diff line number Diff line Loading @@ -949,6 +949,8 @@ int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup) if (xhci_handshake(xhci, &xhci->op_regs->status, STS_HALT, STS_HALT, delay)) { xhci_warn(xhci, "WARN: xHC CMD_RUN timeout\n"); set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); set_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags); spin_unlock_irq(&xhci->lock); return -ETIMEDOUT; } Loading @@ -964,6 +966,8 @@ int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup) if (xhci_handshake(xhci, &xhci->op_regs->status, STS_SAVE, 0, 10 * 1000)) { xhci_warn(xhci, "WARN: xHC save state timeout\n"); set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); set_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags); spin_unlock_irq(&xhci->lock); return -ETIMEDOUT; } Loading Loading
drivers/usb/host/xhci-plat.c +8 −1 Original line number Diff line number Diff line Loading @@ -300,13 +300,19 @@ static int xhci_plat_runtime_suspend(struct device *dev) { struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); int ret; if (!xhci) return 0; dev_dbg(dev, "xhci-plat runtime suspend\n"); return xhci_suspend(xhci, true); disable_irq(hcd->irq); ret = xhci_suspend(xhci, true); if (ret) enable_irq(hcd->irq); return ret; } static int xhci_plat_runtime_resume(struct device *dev) Loading @@ -321,6 +327,7 @@ static int xhci_plat_runtime_resume(struct device *dev) dev_dbg(dev, "xhci-plat runtime resume\n"); ret = xhci_resume(xhci, false); enable_irq(hcd->irq); pm_runtime_mark_last_busy(dev); return ret; Loading
drivers/usb/host/xhci.c +4 −0 Original line number Diff line number Diff line Loading @@ -949,6 +949,8 @@ int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup) if (xhci_handshake(xhci, &xhci->op_regs->status, STS_HALT, STS_HALT, delay)) { xhci_warn(xhci, "WARN: xHC CMD_RUN timeout\n"); set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); set_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags); spin_unlock_irq(&xhci->lock); return -ETIMEDOUT; } Loading @@ -964,6 +966,8 @@ int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup) if (xhci_handshake(xhci, &xhci->op_regs->status, STS_SAVE, 0, 10 * 1000)) { xhci_warn(xhci, "WARN: xHC save state timeout\n"); set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags); set_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags); spin_unlock_irq(&xhci->lock); return -ETIMEDOUT; } Loading