On Sat, Apr 29, 2000, tom <[EMAIL PROTECTED]> wrote: > > while fiddling with interrupt in/out in 2.3.99pre6, I found what I > believe is a bug in uhci.c. My interrupt transfers were going at twice > the rate they should have. The device under test was a low-speed > joystick with pretty sick D/A converters (constantly sending jittery > reports). I had an Interrupt Transfer set up to get a packet and store > the data coming in. As an experiment, I added code which increments a > counter, and when it reaches 125 it prints the number of jiffies for > those 125 reports. > > The device under test is, as mentioned, low-speed USB, with an interval > of 10ms. This value gets rounded down to the 8ms queue, right? So, for > 125 transfers back to back I would expect 1000ms (or 100 jiffies on my > Celeron). Well, the AFS usb-uhci gave me very precisely that number, > while your uhci gave me 50. The same also happens for interrupt out > (that's when I really noticed it - the joystick didn't feel right). I > haven't tried on OHCI yet. > > Attached is a patch against 2.3.99pre6 which fixes this issue - however, > as I am not very familiar with neither your code nor the UHCI low-level > specs, it might introduce problems. Please review carefully - > fortunately it's a one-liner ;-) Excellent catch. This is the correct fix. I think I introduced this bug with my last patch. > PS: Your driver honors the completion routine returning with an interval > of 0 as I expect, with terminating the interrupt-transfer-recycling, > whereas the AFS usb-uhci does continue to do transfers. That'll be my > next area of investigation. I'm kinda surprised this problem didn't show on other drivers. JE --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
