PERFORCE change 166592 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Sun Jul 26 17:45:50 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=166592
Change 166592 by hselasky at hselasky_laptop001 on 2009/07/26 17:45:02
USB input:
- improve last patch
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb/input/ums.c#22 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb/input/ums.c#22 (text+ko) ====
@@ -190,6 +190,7 @@
struct usb_page_cache *pc;
uint8_t *buf = sc->sc_temp;
int32_t buttons = 0;
+ int32_t buttons_found = 0;
int32_t dw = 0;
int32_t dx = 0;
int32_t dy = 0;
@@ -268,19 +269,21 @@
uint32_t mask;
mask = 1UL << UMS_BUT(i);
/* check for correct button ID */
- if (id != info->sc_iid_btn[i]) {
- /* keep old button value */
- buttons |= sc->sc_status.button & mask;
+ if (id != info->sc_iid_btn[i])
continue;
- }
/* check for button pressed */
if (hid_get_data(buf, len, &info->sc_loc_btn[i]))
buttons |= mask;
+ /* register button mask */
+ buttons_found |= mask;
}
if (++info != &sc->sc_info[UMS_INFO_MAX])
goto repeat;
+ /* keep old button value(s) for non-detected buttons */
+ buttons |= sc->sc_status.button & ~buttons_found;
+
if (dx || dy || dz || dt || dw ||
(buttons != sc->sc_status.button)) {
More information about the p4-projects
mailing list