On Fri, 15 Apr 2016, Rafał Miłecki wrote: > Hello > > > I'm seeing some problems with EHCI stability on two families of > Broadcom devices: > 1) CONFIG_MIPS=y, CONFIG_BCM47XX=y > 2) CONFIG_ARM=y, CONFIG_ARCH_BCM_5301X=y > both of them use bcma-hcd driver which registers "ehci-platform" device. > > An interesting note is that this stability problem occurs only on > devices with a single USB port. These devices have simply a root hub: > 1d6b:0002 Linux Foundation 2.0 root hub > I can't reproduce this issue on devices with 2 USB ports that come with: > 1d6b:0002 Linux Foundation 2.0 root hub > 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB > > Moreover attaching an external USB hub I own: > 058f:6254 Alcor Micro Corp. USB Hub > to device with a single USB port (and using this hub instead) also > make the problem unreproducible. > > > OK, let me finally describe the problem. > Sometimes when (un)plugging USB device when I expect to see: > > ehci-platform ehci-platform.0: port 1 reset complete, port enabled > I'm getting > > ehci-platform ehci-platform.0: port 1 full speed --> companion > > hub 1-0:1.0: port_wait_reset: err = -16 > > not enabled, trying reset again... > instead. After that happens I can't use my USB port anymore. > Connecting/disconnecting USB device(s) doesn't trigger any kernel > reaction. To use USB port again I need to reload bcma-hcd module. > For the more complete log please see attached fail-1.txt. > > I'm not sure how sane it sounds, but I believe the easiest way to > trigger this problem is to plug in USB device very slowly. > On the other hand plugging and unplugging USB device quickly (over and > over) can trigger "detected XactErr len 0/8 retry %d" at some point, > but I'm trying to focus on one thing at a time. Let me know if you > think it's important though. > > > As I mentioned earlier, when using a USB hub (internal or external > one) I can't reproduce this problem. First of all, there is never a > standard "port 1 reset complete, port enabled" message, instead I can > see e.g. "not reset yet, waiting 10ms". I'm also never getting "port 1 > full speed --> companion" or "port_wait_reset: err = -16" with USB > hub. I can see errors like "device descriptor read/64, error -32" but > finally I'm always able to see my USB device and I never need to > reload the module. > > To see a bigger log (with some tries triggering "device descriptor > read/64, error -32" but always recovering fine) see attached > success-1.txt. > > > Do you have any idea what this problem may be related to? Can I debug > it any further to help solving it? Any extra info I can provide? > > There are more logs available at: > http://files.zajec.net/openwrt/ehci/ > if you need some. If you check fail-5.txt you'll see that "port 1 full > speed --> companion" can also occur when unplugging USB device. Do you always use the same device for testing, or do you test with multiple devices? What happens if you plug a USB-1.1 device (such as a mouse or keyboard) into your single-port system? Does your platform data have the has_tt flag set or the "has-transaction-translator" OF property? 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