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