fengwei yin wrote:
I need guidance About the TD queue processing.

Let me take usb_set_address as example.

Before TD queue processing,the TD queue as following:
                                    TailP
                                     |
                                     |
                                     V
HeadP---->dummy TD------>td[0]------>td[1]

Erm, no. It should be

  HeadP -> td[0]/SETUP -> td[1]/STATUS -> dummy
  TailP -> dummy


After TD queue processing,the queue as following:

HccaDoneHead---->td[0]----->dummy TD

Then

  HeadP -> dummy
  TailP -> dummy

which is to say, an empty queue.  And if no other endpoint
was working, the donelist would be

  hcca DoneHead -> td[1] -> td[0] -> NULL

Which is why the donelist gets reversed (to td[0] then td[1])
before it's processed.

- Dave




------------------------------------------------------- This SF.Net email is sponsored by: SourceForge.net Broadband Sign-up now for SourceForge Broadband and get the fastest 6.0/768 connection for only $19.95/mo for the first 3 months! http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to