Hans Petter Selasky wrote:
The new USB stack has this fixed already. What I do is that the USB
driver stops polling the interrupt endpoint when the user-land
application does not read data. When the user-land application has
read a packet, the interrupt endpoint is started again. The only
problem is that some devices, like a Microsoft mouse I have, stops
working immediately when its internal buffer overflows. Bad hardware
design. But if your hardware is not like that, the new ugen, which is
part of the new USB driver, will work great for you.

Also packet alignment is kept between reads: Only one packet per read.

And there was much rejoicing! The old ugen behavior of returning multiple reports in a single read() -- or a report-and-a-half if your buffer was unfortunately sized -- has caused me untold anguish. I look forward to the new stack going mainline...

--Adam

_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to