PERFORCE change 161718 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Thu May 7 11:15:54 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=161718
Change 161718 by hselasky at hselasky_laptop001 on 2009/05/07 11:15:49
USB CORE: HID parsing
- make sure collections have the usage field set.
- improve hid_is_collection() function.
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb/usb_hid.c#31 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb/usb_hid.c#31 (text+ko) ====
@@ -309,6 +309,7 @@
c->kind = hid_collection;
c->collection = dval;
c->collevel++;
+ c->usage = s->usage_last;
*h = *c;
return (1);
case 11: /* Feature */
@@ -408,6 +409,9 @@
if (bSize != 4)
dval = (dval & mask) | c->_usage_page;
+ /* set last usage, in case of a collection */
+ s->usage_last = dval;
+
if (s->nusage < MAXUSAGE) {
s->usages_min[s->nusage] = dval;
s->usages_max[s->nusage] = dval;
@@ -630,9 +634,11 @@
if (hd == NULL)
return (0);
- err = hid_get_item(hd, &hi) &&
- hi.kind == hid_collection &&
- hi.usage == usage;
+ while ((err = hid_get_item(hd, &hi))) {
+ if (hi.kind == hid_collection &&
+ hi.usage == usage)
+ break;
+ }
hid_end_parse(hd);
return (err);
}
More information about the p4-projects
mailing list