Re: xhci: non-superspeed enumeration failure (was: Re: medtronic usb productId 0x8001: usbserial support, xhci enumeration)

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

 



On Sun, Apr 13, 2014 at 05:04:50PM -0700, Benjamin West wrote:
> On Thu, Apr 3, 2014 at 9:32 AM, Johan Hovold <johan@xxxxxxxxxx> wrote:

> >> Ok, looks like the same error as with usb-next. Could you provide a log
> >> with debugging enabled when enumeration fails on v3.14-rc7? Perhaps
> >> someone who knows more about xhci could be kind enough provide some
> >> further insight as to what might be going on then.
> >
> > Benjamin, did you look any further at this?
> 
> I thought I had enabled debugging.
> My boot config has
> * CONFIG_USB_DEBUG=y
> * CONFIG_USB_SERIAL_DEBUG=m
> and several other relevant looking items set to y, perhaps I simply
> need to dynamically enable debug by setting something in sysfs?

Yes, dynamic debugging and 

	echo module xhci_hcd +p >/sys/kernel/debug/dynamic_debug/control

should do the trick.

> I've been playing with this this (v3.14-rc7) extensively over the past
> few weeks.
> 
> * The first insert of the device rarely works, but occasionally it
>   does appear on boot
> * usually lsusb blocks for a long time (10's of seconds) if the
>   enumeration is not working
> 
> What I've found is that removing the usb stick while lsusb is hanging,
> and re-inserting, on the third try the device enumerates.  After this,
> plugging in/removing enumerates as expected.  Once the device
> enumerates successfully, it seems to consistently enumerate
> afterwards.
> 
> Each port seems to experience this problem independently of the
> others.  Eg, plugging in the device 3 times on a port seems to make it
> enumerate, but the first few times lsusb tends to hang for a long
> time.

I guess that points to the HC rather than the device then.

> To test this, I just tried waiting the full length between timeouts.
> There is a log of the result here:
>   https://gist.githubusercontent.com/bewest/6488955/raw/77a431e50ebadd27641e2685dc1184aa96da05c6/annotated-runs-3.14.0-rc7-bewest-test-3.14-rc7-carelink-01.log
> 
> The procedure was to insert/remove the stick only after waiting for
> the full timeout, eg, waiting for lsusb to return, and never
> interrupting the process.
> After several attempts, something happened, and the usb stack as a
> whole seems to have reset or something, I lost access to my internal
> bluetooth, and the Atheros entry usually present from lsusb output was missing.
> 
> On reboot, I continued and kept the entire syslog from reboot | grep
> kernel, here:
> https://gist.githubusercontent.com/bewest/6488955/raw/c436764d806426d373c36b25d4eb96276a16c1ae/theory-grep-kernel-3.14.0-rc7-bewest-test-3.14-rc7-carelink-01.log
> 
> In this one, I did not wait for lsusb to timeout; the number of
> attempts doesn't seem to matter, but the timing does.  This time I
> seem to be able to moderate what happens by removing the usb stick
> just after I see:
> 
>     Apr 13 15:51:16 patient kernel: [  431.837705] xhci_hcd
> 0000:00:14.0: Timeout while waiting for setup address command
> 
> I'm doing "watch lsusb" in another terminal, and removing the device
> as soon as I see this message, then inserting it again.  I stop doing
> the lsusb/syslog output indicates that the device has enumerated.
> 
> > Benjamin, have you tried the device on a different host controller?
> >
> No, I haven't, my access to different machines is limited right now.
>  I have spares of this device, I'd be willing to mail one to someone
> if it'd be helpful.

I guess that would be Mathias or some other xhci-person.

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