Date: Mon, 6 Jan 2003 15:57:39 +0800 From: "David Xu" <davidxu@freebsd.org> To: <current@freebsd.org> Subject: usb hid device timeout Message-ID: <005e01c2b559$494b65b0$f001a8c0@davidw2k>
index | next in thread | raw e-mail
I have a CD Tower device (a USB HID device) which always failed to be identified
under CURRENT source without following patch, it is always timeout, could anyone
look the following patch:
Index: usb_subr.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/usb/usb_subr.c,v
retrieving revision 1.52
diff -u -u -r1.52 usb_subr.c
--- usb_subr.c 17 Jun 2002 20:52:26 -0000 1.52
+++ usb_subr.c 6 Jan 2003 07:48:51 -0000
@@ -1106,9 +1106,15 @@
usbd_reload_device_desc(usbd_device_handle dev)
{
usbd_status err;
-
+ int i;
+
/* Get the full device descriptor. */
- err = usbd_get_device_desc(dev, &dev->ddesc);
+ for (i = 0; i < 3; ++i) {
+ err = usbd_get_device_desc(dev, &dev->ddesc);
+ if (!err)
+ break;
+ usbd_delay_ms(dev, 200);
+ }
if (err)
return (err);
--
After patched, I can use usbhidctl to dump some informaton:
Report descriptor:
Collection page=0xffa0 usage=0x0001
Collection page=0xffa0 usage=0x0002
Input size=8 count=1 page=0xffa1 usage=0x0003, logical range -128..127, physical range 0..-1
Input size=8 count=1 page=0xffa1 usage=0x0004, logical range -128..127, physical range 0..-1
Input size=8 count=1 page=0xffa1 usage=0x0004, logical range -128..127, physical range 0..-1
Input size=8 count=1 page=0xffa1 usage=0x0004, logical range -128..127, physical range 0..-1
Input size=8 count=1 page=0xffa1 usage=0x0004, logical range -128..127, physical range 0..-1
Input size=8 count=1 page=0xffa1 usage=0x0004, logical range -128..127, physical range 0..-1
Input size=8 count=1 page=0xffa1 usage=0x0004, logical range -128..127, physical range 0..-1
Input size=8 count=1 page=0xffa1 usage=0x0004, logical range -128..127, physical range 0..-1
Output size=8 count=1 page=0xffa1 usage=0x0005, logical range -128..127, physical range 0..-1
Output size=8 count=1 page=0xffa1 usage=0x0006, logical range -128..127, physical range 0..-1
Output size=8 count=1 page=0xffa1 usage=0x0006, logical range -128..127, physical range 0..-1
Output size=8 count=1 page=0xffa1 usage=0x0006, logical range -128..127, physical range 0..-1
Output size=8 count=1 page=0xffa1 usage=0x0006, logical range -128..127, physical range 0..-1
Output size=8 count=1 page=0xffa1 usage=0x0006, logical range -128..127, physical range 0..-1
Output size=8 count=1 page=0xffa1 usage=0x0006, logical range -128..127, physical range 0..-1
Output size=8 count=1 page=0xffa1 usage=0x0006, logical range -128..127, physical range 0..-1
End collection
End collection
Total input size 8 bytes
Total output size 8 bytes
Total feature size 0 bytes
N…'²æìr¸›zǧvf¢–Ú&j:+v‰¨·ž è®"¶§²æìr¸›yúÞy»rêëz{bžØ^n‡r¡ûazg¬±¨
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?005e01c2b559$494b65b0$f001a8c0>
