Skip site navigation (1)Skip section navigation (2)
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>