Am 20.02.2007 um 19:04 schrieb Alan Stern:

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

It is a matter of fact that some vendors are really challenged when  
it comes to reading and following specs.

But any device not following the specs will hit a wall with Windows  
and MacOS as well. I don't think it is a good approach to break the  
well behaving devices to support the misbehaving ones.

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

Having seen my share of bad designs I would assume that there may be  
such pieces of junk around. Though the spec is also clear about the  
behaviour in such situations: If the buffer of the device is full it  
just overwrites entries.


--------------------------------------
Code Mercenaries
Hard- und Software GmbH
Karl-Marx-Str. 147a
12529 Schönefeld OT Grossziethen
Germany

Tel: x49-3379-2050920
Fax: x49-3379-2050930

HRB 16007 Potsdam
Geschäftsführer: Guido Körber, Christian Lucht

Did you subscribe to our Newsletter?
If not, do so immediately by sending mail to: [EMAIL PROTECTED]

Check out: www.codemercs.com



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