Thread (3 messages) 3 messages, 3 authors, 2015-07-24

Re: [PATCH] hid: sony: Drop invalid Sixaxis input reports

From: Jiri Kosina <hidden>
Date: 2015-07-24 13:00:20

On Thu, 23 Jul 2015, Frank Praznik wrote:
quoted hunk ↗ jump to hunk
When connected via Bluetooth the sixaxis periodically sends reports with
an ID of 1, the second byte 0xff and the rest zeroed.  These reports are
not related to the controller state and must be dropped to avoid generating
false input events.

Signed-off-by: Frank Praznik <redacted>
---
 drivers/hid/hid-sony.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
index ed2f008..beb2b02 100644
--- a/drivers/hid/hid-sony.c
+++ b/drivers/hid/hid-sony.c
@@ -1270,6 +1270,17 @@ static int sony_raw_event(struct hid_device *hdev, struct hid_report *report,
 	 * has to be BYTE_SWAPPED before passing up to joystick interface
 	 */
 	if ((sc->quirks & SIXAXIS_CONTROLLER) && rd[0] == 0x01 && size == 49) {
+		/*
+		 * When connected via Bluetooth the Sixaxis occasionally sends
+		 * a report with the second byte 0xff and the rest zeroed.
+		 *
+		 * This report does not reflect the actual state of the
+		 * controller must be ignored to avoid generating false input
+		 * events.
+		 */
+		if (rd[1] == 0xff)
+			return -EINVAL;
+
Given that this is not a regression and given the current development 
phase, I've applied it to for-4.3/sony.

Thanks,

-- 
Jiri Kosina
SUSE Labs
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help