aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@gmail.com>2013-02-17 19:47:15 -0500
committerJiri Kosina <jkosina@suse.cz>2013-02-18 04:41:52 -0500
commit89bdd0c6f38ccf0de43d5a36ede384a730f3394e (patch)
tree09957ec9b910aecbfb0796b8bea2e3858d2991ea /drivers/hid
parent30b6b7d8d340f41d11eb75e5238d33dbc438fde4 (diff)
HID: wiimote: fix nunchuck button parser
The buttons of the Wii Remote Nunchuck extension are actually active low. Fix the parser to forward the inverted values. The comment in the function always said "0 == pressed" but the implementation was wrong from the beginning. Cc: stable@vger.kernel.org Reported-by: Victor Quicksilver <victor.quicksilver@gmail.com> Signed-off-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-wiimote-ext.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/hid/hid-wiimote-ext.c b/drivers/hid/hid-wiimote-ext.c
index 38ae87772e96..0472191d4a72 100644
--- a/drivers/hid/hid-wiimote-ext.c
+++ b/drivers/hid/hid-wiimote-ext.c
@@ -403,14 +403,14 @@ static void handler_nunchuck(struct wiimote_ext *ext, const __u8 *payload)
403 403
404 if (ext->motionp) { 404 if (ext->motionp) {
405 input_report_key(ext->input, 405 input_report_key(ext->input,
406 wiiext_keymap[WIIEXT_KEY_Z], !!(payload[5] & 0x04)); 406 wiiext_keymap[WIIEXT_KEY_Z], !(payload[5] & 0x04));
407 input_report_key(ext->input, 407 input_report_key(ext->input,
408 wiiext_keymap[WIIEXT_KEY_C], !!(payload[5] & 0x08)); 408 wiiext_keymap[WIIEXT_KEY_C], !(payload[5] & 0x08));
409 } else { 409 } else {
410 input_report_key(ext->input, 410 input_report_key(ext->input,
411 wiiext_keymap[WIIEXT_KEY_Z], !!(payload[5] & 0x01)); 411 wiiext_keymap[WIIEXT_KEY_Z], !(payload[5] & 0x01));
412 input_report_key(ext->input, 412 input_report_key(ext->input,
413 wiiext_keymap[WIIEXT_KEY_C], !!(payload[5] & 0x02)); 413 wiiext_keymap[WIIEXT_KEY_C], !(payload[5] & 0x02));
414 } 414 }
415 415
416 input_sync(ext->input); 416 input_sync(ext->input);