Date: Tue, 27 Mar 2007 18:36:48 -0400 From: "Adam Kropelin" <akropel1@rochester.rr.com> To: "Hans Petter Selasky" <hselasky@c2i.net>, <freebsd-usb@freebsd.org> Subject: Re: usb/110855: ugen: interrupt in msgs are truncated when buffer is full Message-ID: <121101c770c0$67e79350$84163e05@kroptech.com> References: <200703261413.l2QEDUNQ060832@www.freebsd.org> <200703261630.23223.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?121101c770c0$67e79350$84163e05>