On Wednesday 27 September 2006 1:11 pm, Laurent Pinchart wrote:
> Logitech has been kind enough to investigate the problem. It seems a hardware
> bug is triggered when the control transfer transactions are sent "too fast".
> Preliminary results show that the hardware misses the second transaction in a
> control transfer when both the SETUP and IN/OUT transactions are in the same
> USB frame.
So I guess they never bothered to throw this hardware at Linux before, eh?
You might point out to them that the "usbtest" driver, case 10, does nothing
except throw back-to-back control transfers at peripherals ... and that it's
rare for hardware not to be able to withstand that for minutes at a time.
(Though I will observe that for folk writing peripheral controller drivers,
that test is annoyingly good at shaking out nasty cases with races between
three components: the host sending packets, the hardware responding to the
different states of control transfers, and the peripheral side software as
it interacts with both of those.)
> I was wondering if anyone has ever seen such behaviour with other devices. It
> seems the bug is never triggered when using Microsoft Windows, so I suspect
> that Linux uses a faster scheduler. Is there a way to hack the USB scheduler
> to make it split control transfers across USB frames ? We would like to test
> if the hardware bug would then be still triggered.
Almost every Linux host controller driver just sticks the transfers (e.g.
SETUP, IN/DATA, then OUT/STATUS) into a hardware queue and lets the controller
handle the rest ... which as a rule means back-to-back transfers, all in the
same frame. (Though it depends on scheduling.)
There are a few controllers that must do software scheduling, because the
silicon designers didn't spend time/effort to do that in hardware. The most
readily available example of that a CompactFlash I/O card [1] using sl811-hcd;
it ought to be simple enough to hack the software scheduler for that one.
In any case that's the simplest software scheduler I know about.
- Dave
[1] RATOC REX-CFU1U ... Google it. It's "type 2" which means fatter than
a memory card, more like a MicroDrive, so many/most PCMCIA adapters
won't work with it.
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel