linux/drivers/hid/usbhid
Jiri Kosina affbb8c6e6 HID: support larger reports than 64 bytes in hiddev
hiddev userspace driver uses a rignbuffer to store the parsed usages
that should be returned through read(). This buffer is 64 bytes long,
which is sufficient for queueing single USB 1.0 low-speed report, which
is of maximum size 48 bytes.

There are however USB HID devices which are full-speed USB devices, and
therefore they are free to produce reports 64 bytes long. This is correctly
handled by HID core, but read() on hiddev node gets stuck forever, because
the ring buffer loops infinitely (as it is exactly 64 bytes long as well),
never advancing the buffer pointer.

Plus, the core driver is ready to handle highspeed devices, so we should be
able to handle reports from such devices in the hiddev driver as well, which
means we need larger ringbuffer.

Reported-by: Michael Zeisel <michael.zeisel@philips.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2009-08-20 12:04:14 +02:00
..
hid-core.c HID: local function should be static 2009-08-18 13:57:10 +02:00
hid-pidff.c HID: fix a lockup regression when using force feedback on a PID device 2008-10-14 23:51:02 +02:00
hid-quirks.c HID: add NOGET quirk for devices from CH Products 2009-05-11 17:09:21 +02:00
hiddev.c HID: support larger reports than 64 bytes in hiddev 2009-08-20 12:04:14 +02:00
Kconfig HID: make boot protocol drivers depend on EMBEDDED 2009-01-04 01:00:53 +01:00
Makefile HID: remove hid-ff 2008-10-14 23:51:01 +02:00
usbhid.h HID: autosuspend support for USB HID 2009-03-25 17:57:57 +01:00
usbkbd.c HID: remove warn() macro from usb hid drivers 2008-10-14 23:51:03 +02:00
usbmouse.c HID: remove info() macro from usb HID drivers 2008-10-14 23:51:03 +02:00