* Logitech Cordeless Desktop Keyboard fails to report class descriptor
@ 2005-01-27 23:23 Nico Huber
0 siblings, 0 replies; only message in thread
From: Nico Huber @ 2005-01-27 23:23 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 897 bytes --]
The receiver of my Logitech Cordeless Desktop fails to report the
keyboard's class descriptor most times I insert the usb-hid module
since I changed to linux 2.6. The modell of the receiver is C-BD9-DUAL
REV C.
The request seems not to fail but the count of received characters is zero.
As I said it only fails most times, I worked around making the following
changes in drivers/usb/input/hid-core.c from linux-2.6.11-rc2:
Following the good example of drivers/usb/core/message.c line 575, I
initialized the buffer in hid_get_class_descriptor() to zero.
In the loop of hid_get_class_descriptor() not waiting for any result but
waiting for a result wich is lower the requested size of the class
descriptor (line 1290).
usb_hid_configure() should not try to parse the expected length but the
received (line 1653).
attached is a patch to linux-2.6.11-rc2 with these changes
Nico Huber
.
[-- Attachment #2: linux-2.6.11-rc2-hid-class-descriptor.patch --]
[-- Type: text/plain, Size: 829 bytes --]
--- a/drivers/usb/input/hid-core.c 2005-01-27 23:59:52.000000000 +0100
+++ b/drivers/usb/input/hid-core.c 2005-01-28 00:06:31.000000000 +0100
@@ -1282,12 +1282,15 @@
unsigned char type, void *buf, int size)
{
int result, retries = 4;
+
+ memset(buf,0,size); // Make sure we parse really received data
+
do {
result = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
USB_REQ_GET_DESCRIPTOR, USB_RECIP_INTERFACE | USB_DIR_IN,
(type << 8), ifnum, buf, size, HZ * USB_CTRL_GET_TIMEOUT);
retries--;
- } while (result < 0 && retries);
+ } while (result < size && retries);
return result;
}
@@ -1650,7 +1653,7 @@
printk("\n");
#endif
- if (!(hid = hid_parse_report(rdesc, rsize))) {
+ if (!(hid = hid_parse_report(rdesc, n))) {
dbg("parsing report descriptor failed");
kfree(rdesc);
return NULL;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-01-27 23:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-27 23:23 Logitech Cordeless Desktop Keyboard fails to report class descriptor Nico Huber
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.