Steve Calfee wrote:
At 11:04 AM 12/14/2003 -0500, Alan Stern wrote:
On Sun, 14 Dec 2003, Johann Deneux wrote:

> hid-lgff.c, which implements force feedback for this device, needs to
> submit output reports to the device. hid_submit_out submits an output
> bulk urb to the device.


There certainly is an excellent reason for not allowing low-speed bulk
transfers: They are illegal according to the USB specification!

What are we the protocol police? I thought there was a general rule to be as liberal as possible in what the kernel will accept and as strict as possible in what it sends.

And being "strict" means not sending more than one low-speed (non-control) OUT packet to a given endpoint per frame ...


From the outside world (on the USB wires) there is no way to tell a one shot bulk out from a one shot interrupt out.

Other than the fact that a 32 byte low speed bulk OUT transfer could involve up to four packets in a frame, while an interrupt OUT would always be limited to at most one per frame? :)

And that at high speed, the interrupt OUT transfers can be more than
512 bytes, and can also support high bandwidth modes?  And that, when
used with certain isochronous (== not low speed) synchronization modes,
there's a "no data toggle" mode for interrupt transfers?


One problem is that there really is (at least) two USB standards, the one from www.usb.org and the defacto one from Microsoft. I know that Win98 does not enforce the "no low speed bulk" rule. So if we (Linux) attempt to enforce the rule some device (current or future) may not work in Linux while it works in shudder, Windows.

But in this case the resolution would be a rather simple fix to the HID driver. (a) Look at the endpoint descriptors, use them unless they talk about illegal things like low speed bulk. (b) If they do use low speed bulk, morph that into low speed interrupt with period of one frame. Voila, problem solved!!

The history as I understand it is that USB 1.0 didn't include
interrupt OUT transfers, and they were added in USB 1.1 (along
with some hub tweaks) ... but older designs (with workarounds)
can still be seen.

- Dave





-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to