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
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to