> > On 05/11/2012 03:53 AM, Quach, Brian wrote: >> Hello, >> >> I work for Texas Instruments on the group that develops our USB 3.0 products. >> Recently, we discovered a timing issue in our USB3.0 re-drivers that >> can delay the negotiation between a device and the host past the >> usual handshake timeout, and if that happens on the first insertion, >> the host controller port will enter in Compliance mode as per the >> xHCI spec. The host controller does not generate a Port Status Change >> (PSC) event as a result of a transition to compliance mode so the >> only way method to detect and resolve the issue is to periodically >> poll the port to check for compliance mode and issue a Warm Reset to >> recover the port. This polling is only required if the port had never previously entered U0. >> > > Does xHCI driver see this transition in GetPortStatus when it occurs? > >> We implemented a small app to monitor the device's PORTSC registers >> and to issue a warm reset whenever we find the port is in compliance >> mode. Although this seems to work-around the issue, we believe this >> should be implemented on the driver source code for robustness. >> >> Due to your bandwidth limitations, I was told that we should be >> making our own patches and submitting them to you for integration into the mainline. >> Based on the information I provided about the issue, can you provide >> any advice on how/where the source code the patch should be >> implemented so that it will be acceptable for the mainline and >> whether it should be a menuconfig option. >> > > Currently USB3.0 driver support warm reset and it will issue a warm > reset when detects a port in SS.Inactive state. See the code from > drivers/usb/core/hub.c:hub_events(): > > /* Warm reset a USB3 protocol port if it's in > * SS.Inactive state. > */ > if (hub_is_superspeed(hub->hdev) && > (portstatus & USB_PORT_STAT_LINK_STATE) > == USB_SS_PORT_LS_SS_INACTIVE) { > dev_dbg(hub_dev, "warm reset port > %d\n", i); > hub_port_reset(hub, i, NULL, > HUB_BH_RESET_TIME, > true); > } > > You can perform similar steps for a port in compliance mode if xHCI > driver can detect the port status. > > Thanks, > Andiry > > Hello Andiry, We really appreciate your feedback. We will confirm this and get back to you ASAP. Thanks, Jorge. -- 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