On Thu, 3 Apr 2014, vichy wrote: > I add more description. > in Below #1, since connect status is zero, handshake will fail with > return -ETIMEDOUT. > Then go to #2 error label. > and finally hub_port_status get -32, -EPIPE. > > 1. Platform-ehci Platform-ehci.0: port 1 reset error -110 > the -110 is due to below handshake timeout. > retval = handshake(ehci, status_reg, > PORT_RESET, 0, 1000); > if (retval != 0) { > ehci_err (ehci, "port %d reset error %d\n", > wIndex + 1, retval); > goto error; > } Right -- although the handshake shouldn't time out. That's a bug in the hardware. > 2. hub 4-0:1.0: hub_port_status failed (err = -32) > the -32 is due to below error label we set retval = -EPIPE > error: > /* "stall" on error */ > retval = -EPIPE; But... This will happen only the first time we get the port status. After that, ehci->reset_done[wIndex] will be 0 and so handshake() won't get called. hub_port_status() calls get_port_status(), which performs the operation up to 3 times. The first time it will fail with -EPIPE, but what about the second time? Alan Stern -- 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