On 11/17/2011 05:53 AM, Kevin O'Connor wrote:
Interesting. Good catch! If I understand this correctly, the issue occurs because all TDs being complete doesn't guarentee that the QH is complete, and thus the next transfer races with the controller on the QH update.
Yep.
Can't the code just use wait_pipe() at the end to eliminate the race?
Yes, that's correct. The previous call to usb_send_bulk guarantees that the QH is quiescent. It still works (tested with 15 consecutive boots, usually it fails in 2-3).
I'll reply to each modified individual patch with the v2, there's just a handful of them.
Paolo