diff mbox series

usb: xhci: how to recover from stop endpoint timeout?

Message ID 20220118104605.1861175-1-martin.kepplinger@puri.sm (mailing list archive)
State New, archived
Headers show
Series usb: xhci: how to recover from stop endpoint timeout? | expand

Commit Message

Martin Kepplinger Jan. 18, 2022, 10:46 a.m. UTC
I haven't done anything in the usb host controller drivers yet, so here's
my question: I sometimes see
"xHCI host not responding to stop endpoint command." which is obviously
followed by "xhci died" and nothing works anymore.

I see it after "Port resume timed out, port 1-1: 0xfe3" so resuming somehow
fails.

How would I distinguish between ETIMEDOUT and other paths
when we're in xhci_stop_endpoint_command_watchdog() before calling
xhci_hc_died()?

How would a "host controller reset" look like, when I'd want to test?
Something similar to suspend and resume, or something even simpler?

I'd be very happy about some hints from usb developers as a first
step here.

thank you all a lot!

                                  martin
---
 drivers/usb/host/xhci-ring.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index a0623b2b4dd6..d5c0e119e1da 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1293,7 +1293,7 @@  void xhci_stop_endpoint_command_watchdog(struct timer_list *t)
 
 	/*
 	 * handle a stop endpoint cmd timeout as if host died (-ENODEV).
-	 * In the future we could distinguish between -ENODEV and -ETIMEDOUT
+	 * TODO In the future we could distinguish between -ENODEV and -ETIMEDOUT
 	 * and try to recover a -ETIMEDOUT with a host controller reset
 	 */
 	xhci_hc_died(xhci);