David Brownell wrote: > >> So, trying for some (bad) ASCII art here > >> > >> TDs 1-4 submitted to ED, > >> HC completed a few (say, 1 & 2) > >> > >> ed.tail ---------------------------+ > >> ed.head ----------+ I > >> I I > >> v v > >> td1 --> td2 --> td3 --> td4 --> dummy > >> > >> Where "td" is like td1, and clearly is not the first TD in > >> the queue.
Here's what I'm seeing now. kernel: ohci_hcd 0000:00:13.0: IRQ INTR_SF lossage kernel: ohci_hcd 0000:00:13.0: done_head:0x0 kernel: finish_unlinks kernel: finish_unlinks: 0x3e3d440 != 0x3e3d400 kernel: finish_unlinks:skip ed c3e3e280 kernel: ohci_hcd 0000:00:13.0: leak ed c3e3e280 (#82) state 0 (has tds) kernel: ohci_hcd 0000:00:13.0: free td c3e3d400 kernel: ohci_hcd 0000:00:13.0: freed kernel: ohci_hcd 0000:00:13.0: stalled endpoint, ed c3e3e280 state 0x1 type intr; next ed 00000000 kernel: ohci_hcd 0000:00:13.0: info 08405123 MAX=64 DQ SKIP EP=2-IN DEV=35 kernel: ohci_hcd 0000:00:13.0: tds: head 03e3d400 DATA0 tail 03e3d400 kernel: ohci_hcd 0000:00:13.0: -> td c3e3d440; urb c3f39840 index 0; hw next td 00000000 kernel: ohci_hcd 0000:00:13.0: info 02140000 CC=0 DATA0 DI=0 IN R kernel: ohci_hcd 0000:00:13.0: cbp 03e69505 be 03e6951f (len 27) As I understand it, the HC will not do any queue processing while HeadP and TailP are equal (which is the case here; they are both pointing to dummy). This explains why nothing is happening - the HC will never do anything more with this endpoint because it doesn't know that the HCD has added anything to the queue. To enqueue a new TD, the HCD fills the old dummy TD and appends a new TD to the end of the list. It should then update TailP. It *looks* like the HCD appended a TD to the queue next but didn't update ed->dummy or TailP. Does that make any sense? Mike ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel