Hello, If I'm understanding everything correct you should do this to get a feature report to a usb device: /* set report_type and report_id in rinfo */ IOCGREPORTINFO(struct hiddev_report_info* rinfo) IOCGREPORT(struct hiddev_report_info* rinfo) /* set uref's report_id, report_type field_index and usage_index */ IOCGUSAGE(struct hiddev_usage_ref* uref) uref.value = 0x01; /* assign new value to be stored in the feature */ IOCSUSAGE(uref) IOCSREPORT(rinfo) I would expect the report to be sent to the device after the IOCSREPORT. That's what happens, accoring some debuginfo I added. But, it would look like that new requests for report_id 2 result in a report_id 1 coming back from the device (debugging in hid-core.c:hid_input_report). Is usb counting from 1 or 0? Or, is there some magic behind the scenes which updates everything for me? BTW, are these just warnings, or do they mean serious business? Jun 17 23:51:20 dwarf kernel: usb-uhci.c: interrupt, status 2, frame# 60 Jun 17 23:51:20 dwarf kernel: hid-core.c: ctrl urb status -32 received Jun 17 23:51:20 dwarf kernel: hid-core.c: nonzero status in irq -2 EJ _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: http://lists.sourceforge.net/lists/listinfo/linux-usb-devel