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: [email protected]
Reported-by: Victor Quicksilver <[email protected]>
Signed-off-by: David Herrmann <[email protected]>
---
 drivers/hid/hid-wiimote-ext.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/hid/hid-wiimote-ext.c b/drivers/hid/hid-wiimote-ext.c
index 38ae877..0472191 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)
 
        if (ext->motionp) {
                input_report_key(ext->input,
-                       wiiext_keymap[WIIEXT_KEY_Z], !!(payload[5] & 0x04));
+                       wiiext_keymap[WIIEXT_KEY_Z], !(payload[5] & 0x04));
                input_report_key(ext->input,
-                       wiiext_keymap[WIIEXT_KEY_C], !!(payload[5] & 0x08));
+                       wiiext_keymap[WIIEXT_KEY_C], !(payload[5] & 0x08));
        } else {
                input_report_key(ext->input,
-                       wiiext_keymap[WIIEXT_KEY_Z], !!(payload[5] & 0x01));
+                       wiiext_keymap[WIIEXT_KEY_Z], !(payload[5] & 0x01));
                input_report_key(ext->input,
-                       wiiext_keymap[WIIEXT_KEY_C], !!(payload[5] & 0x02));
+                       wiiext_keymap[WIIEXT_KEY_C], !(payload[5] & 0x02));
        }
 
        input_sync(ext->input);
-- 
1.8.1.3

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to