diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:58:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 11:58:21 -0400 |
commit | d6454706c382ab74e2ecad7803c434cc6bd30343 (patch) | |
tree | 2a380b28eb948d114c491f0b6799c10406030849 /drivers/hid/hid-core.c | |
parent | 152a6a9da1bd3ed5dcbbf6ff17c7ebde0eb9a754 (diff) | |
parent | 11941a321d49cd2cafc8e64f66cbfed60fc1c691 (diff) |
Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid: (21 commits)
USB HID: don't warn on idVendor == 0
USB HID: add 'quirks' module parameter
USB HID: add support for dynamically-created quirks
USB HID: clarify static quirk handling as squirks
USB HID: encapsulate quirk handling into hid-quirks.c
USB HID: EMS USBII device needs HID_QUIRK_MULTI_INPUT
HID: update copyright and authorship macro
HID: introduce proper zeroing of unused bits in output reports
USB HID: add support for WiseGroup MP-8800 Quad Joypad
USB HID: add FF support for Logitech Force 3D Pro Joystick
USB HID: numlock quirk for dell W7658 keyboard
USB HID: Logitech MX3000 keyboard needs report descriptor quirk
USB HID: extend quirk for Logitech S510 keyboard
USB HID: usbkbd/usbmouse - handle errors when registering devices
USB HID: add QUIRK_HIDDEV for Belkin Flip KVM
HID: enable dead keys on a belkin wireless keyboard
USB HID: Thustmaster firestorm dual power v1 support
USB HID: specify explicit size for hid_blacklist.quirks
USB HID: fix retry & reset logic
USB HID: consolidate vendor/product ids
...
Diffstat (limited to 'drivers/hid/hid-core.c')
-rw-r--r-- | drivers/hid/hid-core.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 1cca32f46947..62e21cc73938 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * Copyright (c) 1999 Andreas Gal | 4 | * Copyright (c) 1999 Andreas Gal |
5 | * Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz> | 5 | * Copyright (c) 2000-2005 Vojtech Pavlik <vojtech@suse.cz> |
6 | * Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc | 6 | * Copyright (c) 2005 Michael Haboustak <mike-@cinci.rr.com> for Concept2, Inc |
7 | * Copyright (c) 2006 Jiri Kosina | 7 | * Copyright (c) 2006-2007 Jiri Kosina |
8 | */ | 8 | */ |
9 | 9 | ||
10 | /* | 10 | /* |
@@ -37,7 +37,7 @@ | |||
37 | */ | 37 | */ |
38 | 38 | ||
39 | #define DRIVER_VERSION "v2.6" | 39 | #define DRIVER_VERSION "v2.6" |
40 | #define DRIVER_AUTHOR "Andreas Gal, Vojtech Pavlik" | 40 | #define DRIVER_AUTHOR "Andreas Gal, Vojtech Pavlik, Jiri Kosina" |
41 | #define DRIVER_DESC "HID core driver" | 41 | #define DRIVER_DESC "HID core driver" |
42 | #define DRIVER_LICENSE "GPL" | 42 | #define DRIVER_LICENSE "GPL" |
43 | 43 | ||
@@ -872,8 +872,13 @@ static void hid_output_field(struct hid_field *field, __u8 *data) | |||
872 | unsigned count = field->report_count; | 872 | unsigned count = field->report_count; |
873 | unsigned offset = field->report_offset; | 873 | unsigned offset = field->report_offset; |
874 | unsigned size = field->report_size; | 874 | unsigned size = field->report_size; |
875 | unsigned bitsused = offset + count * size; | ||
875 | unsigned n; | 876 | unsigned n; |
876 | 877 | ||
878 | /* make sure the unused bits in the last byte are zeros */ | ||
879 | if (count > 0 && size > 0 && (bitsused % 8) != 0) | ||
880 | data[(bitsused-1)/8] &= (1 << (bitsused % 8)) - 1; | ||
881 | |||
877 | for (n = 0; n < count; n++) { | 882 | for (n = 0; n < count; n++) { |
878 | if (field->logical_minimum < 0) /* signed values */ | 883 | if (field->logical_minimum < 0) /* signed values */ |
879 | implement(data, offset + n * size, size, s32ton(field->value[n], size)); | 884 | implement(data, offset + n * size, size, s32ton(field->value[n], size)); |