usb/118670: [ums] [patch] Razer Copperhead Laser Mouse shows up
as keyboard
John Baldwin
jhb at FreeBSD.org
Wed Feb 27 22:00:04 UTC 2008
The following reply was made to PR usb/118670; it has been noted by GNATS.
From: John Baldwin <jhb at freebsd.org>
To: bug-followup at freebsd.org, Uwe at grohnwaldt.eu
Cc: imp at freebsd.org
Subject: Re: usb/118670: [ums] [patch] Razer Copperhead Laser Mouse shows up as keyboard
Date: Wed, 27 Feb 2008 16:41:13 -0500
According to the USB spec, the protocol field is only defined if the subclass
is 1. So a subclass of 0 is really a violation of the spec. I think a
better fix is to put back the old hid_is_collection() test first and then
directly check the descriptor if that fails:
Index: ums.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/usb/ums.c,v
retrieving revision 1.97
diff -u -r1.97 ums.c
--- ums.c 26 Dec 2007 14:31:16 -0000 1.97
+++ ums.c 27 Feb 2008 21:40:48 -0000
@@ -198,7 +198,10 @@
if (err)
return (UMATCH_NONE);
- if (id->bInterfaceClass == UICLASS_HID &&
+ if (hid_is_collection(desc, size,
+ HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_MOUSE)))
+ ret = UMATCH_IFACECLASS;
+ else if (id->bInterfaceClass == UICLASS_HID &&
id->bInterfaceSubClass == UISUBCLASS_BOOT &&
id->bInterfaceProtocol == UIPROTO_MOUSE)
ret = UMATCH_IFACECLASS;
--
John Baldwin
More information about the freebsd-usb
mailing list