Re: USB/DVB - Old Technotrend TT-connect S-2400 regression tracked down

From: Alan Stern
Date: Sun May 24 2009 - 11:16:17 EST


On Sun, 24 May 2009, David wrote:

> Alan Stern wrote:
> > It's not obvious what could be causing this, so let's start out easy.
> > Try collecting two usbmon traces (instructions are in
> > Documentation/usb/usbmon.txt), showing what happens with and without
> > the reversion. Maybe some difference will stick ou
> >
> Traces attached. Took a while as my quad core hangs solid when 0u is
> piped to a file (I had to compile on a laptop and take the logs there).

I see a suggestive pattern, though the exact mechanism still isn't
clear. The log shows:

An URB for bulk endpoint 1-in (the only URB queued) completes.

About 150 us later, the driver does Clear-Halt on that
endpoint.

About 150 us after that, the driver submits another URB.
Without the patch this URB completes normally and transfers
64 bytes (i.e., only one packet). With the patch, the URB
times out.

We can safely conclude that the endpoint toggle setting is getting out
of sync between the device and the host, as a result of the Clear-Halt.
There is code in ehci-hcd to prevent this from happening; the question
is why doesn't it work now when it used to work before?

I'll think about it some more...

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/