On 15.07.2015 14:54, Jean-Francois SIMON wrote: > Hi, > > We have designed a h/w system with the Renesas USB 3.0 upd7202 controller. > We are seeing that sometimes xhci initialization fails with a "can't > setup" error message. > As a result lsusb doesn't report the USB3.0 ports. > > Adding traces to the kernel we could see that this is happening in > xhci_reset() --> xhci_handshake() sequence, where xhci_handshake exits > in time out. (I tried to increase the time out value by 10 times..it > didn't help) Does changing the delay time in the busyloop make a difference? Just thinking that as you have some complicated pci setup and try to read a pci register in a busyloop every microsecond it could cause issues. something like: @@ -71,8 +71,8 @@ int xhci_handshake(void __iomem *ptr, u32 mask, u32 done, int usec) result &= mask; if (result == done) return 0; - udelay(1); - usec--; + udelay(10); + usec -= 10; I also see that there are some bus auto-suspend messages, do you have the patch that prevents suspend while xhci is in between loading usb2 and usb3 buses: commit bcffae7708eb8352f44dc510b326541fe43a02a4 xhci: Prevent runtime pm from autosuspending during initialization -Mathias -- 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