Re: xhci: non-superspeed enumeration failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Apr 13, 2014 at 05:53:10PM -0700, Benjamin West wrote:
> On Tue, Apr 8, 2014 at 12:52 AM, Johan Hovold <johan@xxxxxxxxxx> wrote:
> > On Mon, Apr 07, 2014 at 07:26:01PM +0300, Mathias Nyman wrote:
> >> On 04/03/2014 07:32 PM, Johan Hovold wrote:
> >> > Hi Mathias and Benjamin,
> >> >
> >> > Mathias, I understand you've got quite a lot on your plate with xhci at
> >> > the moment, but have you had a change to look at this issue yet? It's an
> >> > xhci-issue (possibly due to buggy hw) which seems related to the
> >> > non-superspeed enumeration work that was made by Sarah and Dan during
> >> > the fall.
> >> >
> >> > In summary, the device works fine with ehci, but fails to enumerate
> >> > with xhci. Prior to 3.14 this resulted in babble errors, but since 3.14
> >> > it appears that enumeration times out instead:
> >> >
> >> >     xhci_hcd 0000:00:14.0: Timeout while waiting for setup address command
> >> >
> >> > Sometimes it enumerates successfully with 3.14, though.
> >> >
> >> > Not sure if it's related, but Benjamin was also able to trigger:
> >> >
> >> >     xhci_hcd 0000:00:14.0: HC died; cleaning up
> >> >
> >> > The full thread is available here:
> >> >
> >> >     http://marc.info/?l=linux-usb&m=139464536212863&w=2
> >> >
> >> > (The usb-serial related bits are really just about recognising the
> >> > VID/PID and is unrelated to the xhci-enumeration problem.)
> >> >
> >> > Do you need any further information from Benjamin?
> >>
> >> It might be related to Dan's enumeration scheme change, but
> >> looking at the xhci parts of the logs there seems to be both Address
> >> command timeout and halting/stalling endpoint clearing issues.
> >>
> >> There is currently an issue with clearing halted endpoints and toggle
> >> bit getting out of sync on xhci which I'm about to take on, this could
> >> be related.
> >>
> >> http://marc.info/?l=libusb-devel&m=134930472420570&w=2
> >>
> >> Hopefully, fixing that will solve some of the issues you are seeing as well.
> >>
> >> There's also a rfc patchset which completely changes how xhci handles
> >> command timeouts. You could also test if it has any impact on the
> >> address command timeout.
> >>
> >> http://marc.info/?l=linux-usb&m=139653559120996&w=2
> >
> > Alright, thanks for taking a look.
> >
> > Benjamin, were you able to reproduce this on a different host
> > controller? If you're interested in debugging this further you could try
> > Mathias timeout RFC. I could prepare a branch for you to pull if that'd
> > simplify things.
>
> This sounds interesting.
> If you prepare a branch, I'll certainly give it a try, thank you.

There's a completely untested xhci-cmdqueue branch in my tree now that
you could try:

	https://git.kernel.org/cgit/linux/kernel/git/johan/usb-serial.git/log/?h=xhci-cmdqueue

I've simply applied Mathias series from here:

	http://marc.info/?l=linux-usb&m=139653559120996&w=2

to v3.15-rc1.

> I'll look for a way to test this on other hardware/different host
> controller.

I'd definitely recommend that.

> It may or may not be relevant, but the vendor admits that there are
> issues in Windows and Mac that also prevents their software from
> working with USB 3.0 ports.  When I asked them on the phone, they told
> me the reason was because "the ports are the wrong size and it's not a
> universal system."  So I know the issue is a generic one involving 3.0
> handling across different operating systems/hardware, not just mine.
> I'll look for an opportunity to test on other hardware.

"Wrong size"? :)

Well, if the device doesn't enumerate under those other OSes either,
this may be a long shot.

But best of luck!

Johan
--
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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux