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]

Reply via email to