Would you recommend the product? no | Price you paid?: None indicated | Rating: 9
|
Kernel (uname -r):
|
2.6.9
|
|
Distribution:
|
N/A
|
edit:
ok I made a patch for 2.6.10 based on the old working hid-core.c that seems to work:
--- hid-core.c 2005-01-17 16:42:27.000000000 +0100
+++ hid-core.c-foobar 2005-01-17 20:55:10.000000000 +0100
@@ -1314,6 +1314,7 @@
struct hid_report_enum *report_enum;
struct hid_report *report;
struct list_head *list;
+ int len;
int err, ret;
/*
@@ -1364,14 +1365,17 @@
warn("timeout initializing reportsn");
report_enum = hid->report_enum + HID_INPUT_REPORT;
- list = report_enum->report_list.next;
- while (list != &report_enum->report_list) {
- report = (struct hid_report *) list;
- usb_control_msg(hid->dev, usb_sndctrlpipe(hid->dev, 0),
- HID_REQ_SET_IDLE, USB_TYPE_CLASS | USB_RECIP_INTERFACE, report->id,
- hid->ifnum, NULL, 0, HZ * USB_CTRL_SET_TIMEOUT);
+ list = report_enum->report_list.next;
+ while (list != &report_enum->report_list) {
+ report = (struct hid_report *) list;
+ len = ((report->size - 1) >> 3) + 1 + report_enum->numbered;
+ if (len > hid->urbin->transfer_buffer_length)
+ hid->urbin->transfer_buffer_length = len < HID_BUFFER_SIZE ? len : HID_BUFFER_SIZE;
+ usb_control_msg(hid->dev, usb_sndctrlpipe(hid->dev, 0),
+ HID_REQ_SET_IDLE, USB_TYPE_CLASS | USB_RECIP_INTERFACE, report->id,
+ hid->ifnum, NULL, 0, HZ * USB_CTRL_SET_TIMEOUT);
list = list->next;
- }
+ }
}
#define USB_VENDOR_ID_WACOM 0x056a
|