On 09.01.2017 11:51, Patrice Chotard wrote:
Hi Mathias, Greg
Hi
I am working on ARM STi platform, since v4.10-rc1, when booting B2260 or B2120 STi boards platform with nothing plugged on USB3 connector, i observed the following kernel logs : .... [ 801.953836] usb usb6-port1: Cannot enable. Maybe the USB cable is bad?
That's odd, why does it try to reset the port if there's nothing there?
[ 801.960455] xhci-hcd xhci-hcd.0.auto: Cannot set link state.
This makes sense, nothing is connected, and we try to set link to U3 (PORT_PE == 0)
[ 801.966611] usb usb6-port1: cannot disable (err = -32)
xhci reutns -EPIPE as we try to set link state to U3 while port is not enabled (PORT_PE == 0)
[ 806.083772] usb usb6-port1: Cannot enable. Maybe the USB cable is bad?
Again, about 5 seconds later the same port is reset, while nothing is connected. Odd
[ 806.090370] xhci-hcd xhci-hcd.0.auto: Cannot set link state. [ 806.096494] usb usb6-port1: cannot disable (err = -32) [ 810.208766] usb usb6-port1: Cannot enable. Maybe the USB cable is bad? [ 810.215374] xhci-hcd xhci-hcd.0.auto: Cannot set link state. [ 810.221478] usb usb6-port1: cannot disable (err = -32) [ 814.333767] usb usb6-port1: Cannot enable. Maybe the USB cable is bad? [ 814.340364] xhci-hcd xhci-hcd.0.auto: Cannot set link state. ..... Another interesting thing is even if i plugged a device (a mass storage device in my case) on the USB3 connector, the above logs continue to appear. This is due to commit 37be66767e3ca "usb: hub: Fix auto-remount of safely removed or ejected USB-3 devices". I don't know if STi platforms are the only impacted by this issue. On v4.9 everything was ok.
Was there not a single "Cannot enable. Maybe USB cable is bad" message with 4.9? Before commit 37be66767e3ca we forced the port to RxDetect state via Disabled state, and cleared port change flags when a usb3_port_disable() was called. after we just set the port to U3. Maybe those STi platforms depend on that cycle somehow? Could you take logs (dmesg) of both 4.9 and 4.10-rc1 with both usb core and xhci debugging enabled: echo -n 'module xhci_hcd =p' > /sys/kernel/debug/dynamic_debug/control echo 'module usbcore =p' >/sys/kernel/debug/dynamic_debug/control -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