[PATCH] usb: xhci: how to recover from stop endpoint timeout?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 --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);
-- 
2.30.2




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux