HID: introduce proper zeroing of unused bits in output reports
authorSimon Budig <simon@budig.de>
Mon, 12 Mar 2007 12:52:04 +0000 (13:52 +0100)
committerJiri Kosina <jkosina@suse.cz>
Wed, 11 Apr 2007 08:36:36 +0000 (10:36 +0200)
Some HID devices are looking on the unused bits in the HID reports they
receive. This is violating the specification, but we want to make those
devices work. Well-behaving devices are unaffected, as they don't care
about the unused bits.

If bitsused % 8 is 0 all bits in data[] get used and we don't need to
clear anything. Otherwise (bitsused % 8) bits of the last byte get used.
By shifting 1 for (bitsused % 8) bits and subtracting 1 we create a mask
consisting of (bitsused % 8) ones and remaining zeroes. By ANDing we
clear the upper unused bits.

Signed-off-by: Simon Budig <simon@budig.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

No differences found