On Fri, 6 Jun 2003, Duncan Sands wrote:
> Here's the schedule. It finishes like this:
>
> [dee6e2d0] link (1ee6e212) element (18f33a50)
> 0: [d8f33a50] link (1ee6e302) e3 SPD IOC Active Length=0 MaxLen=34 DT1 EndPt=7
> Dev=2, PID=e1(OUT) (buf=193cd000)
> -- Queued QH's:
> [dee6e300] link (1ee6e212) element (18f33a80)
> 0: [d8f33a80] link (00000001) e3 SPD IOC Active Length=0 MaxLen=34 DT0 EndPt=7
> Dev=2, PID=e1(OUT) (buf=193e8000)
>
> Note how the links 1ee6e212 (i.e. link to QH at ?ee6e210) seem to be to a
> non-existant QH.
> It looks to me like these urbs have completed but haven't been retired correctly.
> Comments?
You must have had debug set to 1, because your listing did not include the
skeleton QH's. That's what's confusing you; the QH at dee6e210 is the
Terminating QH.
Your listing showed 5 URBs linked for device 2, not just 2 URBs:
ep 1-IN
ep 7-IN
ep 7-IN
ep 7-OUT
ep 7-OUT
The only one executed by the HC is the first, and it's still waiting
(marked with a NAK). The first TD for the second URB was not touched by
the HC. Maybe that's where the problem lies? Although it looks perfectly
okay to me.
Is it possible that a reserved bit was not set to 0? That wouldn't show
up in the debugging output. (Don't ask me how it could have happened.)
It might be worthwhile examining a dump made immediately after you queue
the problem-causing URB. Comparing that with the values after the HC has
halted might possibly (?) point to the source of the error.
Alan Stern
-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The best
thread debugger on the planet. Designed with thread debugging features
you've never dreamed of, try TotalView 6 free at www.etnus.com.
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel