Date: Wed, 9 Mar 2005 19:30:06 GMT From: Jonathan Fosburgh <jonathan@fosburgh.org> To: freebsd-usb@FreeBSD.org Subject: Re: usb/77604: Sluggish Logitch LX700 USB Mouse Message-ID: <200503091930.j29JU6KB073744@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR usb/77604; it has been noted by GNATS. From: Jonathan Fosburgh <jonathan@fosburgh.org> To: FreeBSD-gnats-submit@freebsd.org, freebsd-usb@freebsd.org Cc: Subject: Re: usb/77604: Sluggish Logitch LX700 USB Mouse Date: Wed, 9 Mar 2005 13:24:35 -0600 --nextPart1551828.ILC4ddNh2E Content-Type: multipart/mixed; boundary="Boundary-01=_+10LCFumADhsQ4T" Content-Transfer-Encoding: 7bit Content-Disposition: inline --Boundary-01=_+10LCFumADhsQ4T Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Attached is a patch to -CURRENT that fixes this problem. It is based on a=20 patch to 5-STABLE sent to me by Morten Johansen. It is adapted from NetBSD'= s=20 version of the hid_report_size() function. I am sending both patches, since= =20 there are slight differences between HEAD and RELENG_5. =2D-=20 Jonathan Fosburgh AIX and Storage Administrator UT MD Anderson Cancer Center Houston, TX --Boundary-01=_+10LCFumADhsQ4T Content-Type: text/x-diff; charset="utf-8"; name="hid.c.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="hid.c.patch" =2D-- hid.c.orig Tue Feb 22 01:27:35 2005 +++ hid.c Tue Feb 22 01:38:44 2005 @@ -371,14 +371,22 @@ hid_report_size(void *buf, int len, enum { struct hid_data *d; struct hid_item h; =2D int size, id; + int hi, lo, size, id; =20 id =3D 0; + hi =3D lo =3D -1; for (d =3D hid_start_parse(buf, len, 1<<k); hid_get_item(d, &h); ) =2D if (h.report_ID !=3D 0) =2D id =3D h.report_ID; + if (h.kind =3D=3D k) { + if (h.report_ID !=3D 0 && !id) + id =3D h.report_ID; + if (h.report_ID =3D=3D id) { + if (lo < 0) + lo =3D h.loc.pos; + hi =3D h.loc.pos + h.loc.size * h.loc.count; + } + } hid_end_parse(d); =2D size =3D h.loc.pos; + size =3D hi - lo; if (id !=3D 0) { size +=3D 8; *idp =3D id; /* XXX wrong */ --Boundary-01=_+10LCFumADhsQ4T Content-Type: text/x-diff; charset="utf-8"; name="hid.c.patch.6" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="hid.c.patch.6" =2D-- hid.c.orig Sun Feb 6 06:41:00 2005 +++ hid.c Wed Mar 9 11:31:02 2005 @@ -371,14 +371,23 @@ { struct hid_data *d; struct hid_item h; =2D int size, id; + int hi, lo, size, id; =20 id =3D 0; + hi =3D lo =3D -1; for (d =3D hid_start_parse(buf, len, 1<<k); hid_get_item(d, &h); ) =2D if (h.report_ID !=3D 0 && !id) =2D id =3D h.report_ID; + if (h.kind =3D=3D k) { + if (h.report_ID !=3D 0 && !id) + id =3D h.report_ID; + if (h.report_ID =3D=3D id) { + if (lo < 0) + lo =3D h.loc.pos; + hi =3D h.loc.pos + h.loc.size * h.loc.count; + } + } + hid_end_parse(d); =2D size =3D h.loc.pos; + size =3D hi - lo; if (id !=3D 0) { size +=3D 8; *idp =3D id; /* XXX wrong */ --Boundary-01=_+10LCFumADhsQ4T-- --nextPart1551828.ILC4ddNh2E Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (FreeBSD) iD8DBQBCL02mqUvQmqp7omYRAlcIAKCOHYbmUIGW0FCucjYHgPOuhuhf9wCgzHoP 4k3s9PdK/SKyvjdLzWzlQe8= =+joQ -----END PGP SIGNATURE----- --nextPart1551828.ILC4ddNh2E--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503091930.j29JU6KB073744>