On Wed, 1 Dec 2004, Karl Bongers wrote: > Hi, > > So somehow I found myself here despite trying to avoid kernel hacking by > using libusb. libusb has this concept of submit a read/write with a timeout. > So I submit a read, and just pick a random timeout, say 1 second. > Lib usb then sits in a poll loop, after a second it cancels the read and > returns. My program then resubmits the read again and again. > > It appears that UHCI does not setup the right DATA0/DATA1 toggle > for this case. It keeps toggling with each new read. The DATA0/DATA1 > is suppose to toggle with each successfully completed packet. > The result in this case is the toggle gets advanced each time even > though no packet has been delivered, resulting in initial dropped packets. > So when the URB is canceled, there is some code > in the uhci_unlink_generic() call thats calculates the next appropriate > toggle to use. > > Heres a one line patch(against 2.6.9) that fixes it for me.
Thanks for sending this. Exactly the same change as you submitted has in fact already been applied to 2.6.10. Alan Stern ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel