Input: HID - handle multi-transascion reports
authorMichael Haboustak <mike-@cinci.rr.com>
Mon, 5 Sep 2005 05:12:01 +0000 (00:12 -0500)
committerDmitry Torokhov <dtor_core@ameritech.net>
Mon, 5 Sep 2005 05:12:01 +0000 (00:12 -0500)
commitbf0964dcda97e42964d312d0ff73a832171e080a
tree6435056655586ed66a96fbba03305331f8828a28
parent903b126bffb77dc313b7c2971880df408bf41a9e
Input: HID - handle multi-transascion reports

Fixes handling of multi-transaction reports for HID devices. New
function hid_size_buffers() that calculates the longest report
for each endpoint and stores the result in the hid_device object.
These lengths are used to allocate buffers that are large enough
to store any report on the endpoint. For compatibility, the minimum
size for an endpoint buffer set to HID_BUFFER_SIZE rather than the
known optimal case (the longest report length).

It fixes bug #3063 in bugzilla.

Signed-off-by: Michael Haboustak <mike-@cinci.rr.com>
I simplified the patch a bit to use just a single buffer size.

Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/usb/input/hid-core.c
drivers/usb/input/hid.h