Re: Possible causes of EOVERFLOW (babble) error?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

On Wed, 24 Oct 2007, Phil Endecott wrote:

> Alan Stern wrote:
> > Interrupt endpoints don't pack more than one message into a single
> > packet.
> OK.  So considering the example of a keyboard where the user has 
> pressed two keys within one polling period, they have to be returned in 
> two separate packets, which will be one polling period apart.  (Or 
> maybe discard one of them.)  Right?

You should _read_ the USB HID specification instead of guessing about
what it says.  According to Appendix C, each report from a keyboard is
supposed to indicate the current set of keys being pressed, and the
host is supposed to figure out what has happened by comparing the
current state with the previous state.

In short -- No, if the user has pressed two keys within one polling
period then the keyboard has to include both of them in a single packet
in the next report.

> > If an interrupt
> > endpoint has a polling period of 32 ms, then it is guaranteed the
> > device will have a chance to report each event to the host within 32 ms
> > of the time it occurs.
> ..unless it generates events at a rate of more than one each 32 ms, in 
> which case they will have to wait (or be discarded).

No.  The device has the chance to report events every 32 ms.  Which 
events it chooses to report is up to it.

Alan Stern

This email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>
To unsubscribe, use the last form field at:

[Index of Archives]     [Linux USB]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [XFree86]