Message ID | 20191104055217.10475-1-kai.heng.feng@canonical.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 7c67cf6658cec70d8a43229f2ce74ca1443dc95e |
Headers | show |
Series | xhci: Increase STS_HALT timeout in xhci_suspend() | expand |
Hi Matthias, > On Nov 4, 2019, at 13:52, Kai-Heng Feng <kai.heng.feng@canonical.com> wrote: > > I've recently observed failed xHCI suspend attempt on AMD Raven Ridge > system: > kernel: xhci_hcd 0000:04:00.4: WARN: xHC CMD_RUN timeout > kernel: PM: suspend_common(): xhci_pci_suspend+0x0/0xd0 returns -110 > kernel: PM: pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -110 > kernel: PM: dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -110 > kernel: PM: Device 0000:04:00.4 failed to suspend async: error -110 > > Similar to commit ac343366846a ("xhci: Increase STS_SAVE timeout in > xhci_suspend()") we also need to increase the HALT timeout to make it be > able to suspend again. Seems like there are more broken AMD xHCI in the wild, so please merge this patch if there's no further concerns. Kai-Heng > > Fixes: f7fac17ca925 ("xhci: Convert xhci_handshake() to use readl_poll_timeout_atomic()") > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> > --- > drivers/usb/host/xhci.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c > index 6c17e3fe181a..53720c41891a 100644 > --- a/drivers/usb/host/xhci.c > +++ b/drivers/usb/host/xhci.c > @@ -973,7 +973,7 @@ static bool xhci_pending_portevent(struct xhci_hcd *xhci) > int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup) > { > int rc = 0; > - unsigned int delay = XHCI_MAX_HALT_USEC; > + unsigned int delay = XHCI_MAX_HALT_USEC * 2; > struct usb_hcd *hcd = xhci_to_hcd(xhci); > u32 command; > u32 res; > -- > 2.17.1 >
On 22.11.2019 18.36, Kai-Heng Feng wrote: > Hi Matthias, > >> On Nov 4, 2019, at 13:52, Kai-Heng Feng <kai.heng.feng@canonical.com> wrote: >> >> I've recently observed failed xHCI suspend attempt on AMD Raven Ridge >> system: >> kernel: xhci_hcd 0000:04:00.4: WARN: xHC CMD_RUN timeout >> kernel: PM: suspend_common(): xhci_pci_suspend+0x0/0xd0 returns -110 >> kernel: PM: pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -110 >> kernel: PM: dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -110 >> kernel: PM: Device 0000:04:00.4 failed to suspend async: error -110 >> >> Similar to commit ac343366846a ("xhci: Increase STS_SAVE timeout in >> xhci_suspend()") we also need to increase the HALT timeout to make it be >> able to suspend again. > > Seems like there are more broken AMD xHCI in the wild, so please merge this patch if there's no further concerns. > > Kai-Heng Added to queue, -Mathias
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 6c17e3fe181a..53720c41891a 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -973,7 +973,7 @@ static bool xhci_pending_portevent(struct xhci_hcd *xhci) int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup) { int rc = 0; - unsigned int delay = XHCI_MAX_HALT_USEC; + unsigned int delay = XHCI_MAX_HALT_USEC * 2; struct usb_hcd *hcd = xhci_to_hcd(xhci); u32 command; u32 res;
I've recently observed failed xHCI suspend attempt on AMD Raven Ridge system: kernel: xhci_hcd 0000:04:00.4: WARN: xHC CMD_RUN timeout kernel: PM: suspend_common(): xhci_pci_suspend+0x0/0xd0 returns -110 kernel: PM: pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -110 kernel: PM: dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -110 kernel: PM: Device 0000:04:00.4 failed to suspend async: error -110 Similar to commit ac343366846a ("xhci: Increase STS_SAVE timeout in xhci_suspend()") we also need to increase the HALT timeout to make it be able to suspend again. Fixes: f7fac17ca925 ("xhci: Convert xhci_handshake() to use readl_poll_timeout_atomic()") Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> --- drivers/usb/host/xhci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)