I doubt its a bad cable, if I shut the power off it will work every time. Also it always works on that other OS, but that may be irrelevant. It would not be very much use for it to come up using usb2, that would be quite slow. I wonder, is there an actual way I can tell whether its using usb3 or usb2? Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx> wrote: > 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. -- Your life is like a penny. You're going to lose it. The question is: How do you spend it? John Covici covici@xxxxxxxxxxxxxx -- 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