On Fri, Nov 16, 2012 at 03:51:29AM -0500, covici@xxxxxxxxxxxxxx wrote: > Sorry, did not do its job -- here is the log output. The patch did do what I expected. When the warm reset failed, it disabled and re-enabled the port. The good news is this stopped your endless enumeration issues. The bad news is that your device didn't reconnect after the port was disabled and re-enabled. It didn't even try to connect as a USB 2.0 device, which is what it's supposed to do if the SuperSpeed terminations are turned off (as they are when the port is disabled). Perhaps you just have a buggy device or a bad cable? I have a slightly more complex patch that tries several warm resets before disabling the ports. It may help with this device. I'll send you the branch later today, after I test it. Thanks for your patience, Sarah Sharp Notes: > Nov 16 03:36:28 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x340 Port is in Compliance Mode. > Nov 16 03:36:28 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x341 > Nov 16 03:36:28 ccs kernel: hub 4-0:1.0: warm reset port 2 > Nov 16 03:36:28 ccs kernel: xhci_hcd 0000:04:00.0: Port Status Change Event for port 2 > Nov 16 03:36:28 ccs kernel: usb 2-1: link qh256-0001/ffff88041ab57240 start 1 [1/0 us] We can't trust the device link state until the port is done resetting. > Nov 16 03:36:29 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x202b1 > Nov 16 03:36:29 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x102b1 > Nov 16 03:36:29 ccs kernel: hub 4-0:1.0: port 2 not warm reset yet, waiting 50ms > Nov 16 03:36:29 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x202f1 > Nov 16 03:36:29 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x102f1 > Nov 16 03:36:29 ccs kernel: hub 4-0:1.0: port 2 not warm reset yet, waiting 200ms > Nov 16 03:36:29 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x202f1 > Nov 16 03:36:29 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x102f1 > Nov 16 03:36:29 ccs kernel: hub 4-0:1.0: port 2 not warm reset yet, waiting 200ms > Nov 16 03:36:29 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x202f1 > Nov 16 03:36:29 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x102f1 > Nov 16 03:36:29 ccs kernel: hub 4-0:1.0: port 2 not warm reset yet, waiting 200ms > Nov 16 03:36:29 ccs kernel: device-mapper: uevent: version 1.0.3 > Nov 16 03:36:29 ccs kernel: device-mapper: ioctl: 4.23.0-ioctl (2012-07-25) initialised: dm-devel@xxxxxxxxxx > Nov 16 03:36:29 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x2a0340 Device connected, warm reset finishes after 650ms, back in Compliance Mode. > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x310341 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: clear port reset change, actual port 1 status = 0xa0340 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: clear port warm(BH) reset change, actual port 1 status = 0x20340 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: clear port link state change, actual port 1 status = 0x20340 Connect change bit still set here, we probably want to clear it before we disable the port. > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: Disable port 1 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x20280 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x10280 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: Enable port 1 > Nov 16 03:36:30 ccs kernel: hub 4-0:1.0: state 7 ports 2 chg 0004 evt 0004 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x202a0 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x102a0 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: clear port connect change, actual port 1 status = 0x2a0 No device connected, link is in the RxDetect state. > Nov 16 03:36:30 ccs kernel: hub 4-0:1.0: port 2, status 02a0, change 0001, 5.0 Gb/s > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x2a0 > Nov 16 03:36:30 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x2a0 > Nov 16 03:36:31 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x2e0 > Nov 16 03:36:31 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x2e0 > Nov 16 03:36:31 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x2e0 > Nov 16 03:36:31 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x2e0 > Nov 16 03:36:31 ccs kernel: async_tx: api initialized (async) > Nov 16 03:36:31 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x2e0 > Nov 16 03:36:31 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x2e0 Link is in the Polling state. > Nov 16 03:36:31 ccs kernel: raid6: sse2x1 9085 MB/s > Nov 16 03:36:31 ccs kernel: raid6: sse2x2 11273 MB/s > Nov 16 03:36:31 ccs kernel: xhci_hcd 0000:04:00.0: get port status, actual port 1 status = 0x2e0 > Nov 16 03:36:31 ccs kernel: xhci_hcd 0000:04:00.0: Get port status returned 0x2e0 No further port events in the log. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html