Guennadi Liakhovetski wrote:
On Mon, 24 May 2004, David Brownell wrote:


Guennadi Liakhovetski wrote:

So, how can the initialisation of the USB chip affect the rest of the PCI
also without USB-devices attached and without USB-traffic? Does the OHCI
driver poll?

It turns on the periodic schedule processing, which means once every msec it does PCI DMA even if there are no devices connected.


Hm, that could be the reason. But, upon briefly looking through the code,
it looked like the driver sets up the timer with a period of
min(30ms, urb->interval), but well may be that I misunderstood what was
going on there.

Look at the OHCI spec, you'll see that what I mean. The periodic schedule is a tree, 32 slots, each one scanned near the beginning of each USB frame (== 1 msec). That chunk of code in 2.4 was relatively opaque, and didn't even handle ISO transfers with period != 1msec.

When you schedule a periodic URB (iso/interrupt), its
period gets rounded down to the nearest power'o'two and
spliced into one or more slots.  So period 30msec would
morph to 16 msec, and that same ED would be accessible
from two slots (like #3 and #19, if that was a good way
to balance the load).



Ok, it, probably, wouldn't be fixed for 2.4 any more (actually, looks like
a worthy fix, or not?), is it at least possible to increase the period,
and, if yes - how (if it is really 1ms)? And would it help
significantly?...

The best 2.4 fix would be someone taking my 2.4 backport of ohci-hcd and getting real about it ... OHCI is probably the most robust HCD on 2.4, but that doesn't mean it's as good as on 2.6 ! :)

That 1msec period is part of the USB spec, so the only control knob
in the driver is whether the periodic schedule is on or off.  If you
just counted the number of periodic transfers that are active, the
fix is simple:  turn off periodic schedule when count == 0, and
turn it on otherwise.

- Dave





-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&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