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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to