On Tue, 20 Feb 2007, Guido Körber wrote:

> OK, I am starting to understand where that comes from.
> 
> First of all USB does not allow to send two reports in a single  
> transfer.

That's right.  Section 8.4 of the USB HID specification explicitly says:

        Only one report is allowed in a single USB transfer.

However vendors do not always obey the specification.

> The effect that was described in the forum is likely something that  
> happens in the buffers of the host controller. Since he writes that  
> he had to ignore interrupts for a while to see it this situation  
> likely only arises if another transfer arrives before the last one  
> has been serviced.

They would still be presented as two separate transfers.  The host 
controller drivers are very careful about keeping different transfers 
apart.

> I would suspect that there is some problem in the host controller  
> driver that concatenates reports under certain conditions.

No.  In fact, the driver in question had requested a single packet
transfer.

Much more likely is that the delay caused by ignoring interrupts gave the
keyboard time to accumulate more events, and the keyboard combined the
reports into a single packet.  Without seeing the actual data, though, we
can only speculate about the real cause.

Alan Stern


-------------------------------------------------------------------------
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

Reply via email to