linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Fixes for multitouch / generic gamepads interaction
@ 2013-11-20 21:32 Benjamin Tissoires
  2013-11-20 21:32 ` [PATCH 1/3] Only process ABS_MT_SLOT where there are slots available Benjamin Tissoires
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Benjamin Tissoires @ 2013-11-20 21:32 UTC (permalink / raw)
  To: Benjamin Tissoires, Jiri Kosina, Dmitry Torokhov, David Herrmann,
	Henrik Rydberg, Antonio Ospite, simon, case, linux-input,
	linux-kernel

Hi guys,

I have been reported recently a problem with the Sixaxis controller
(http://www.spinics.net/lists/linux-input/msg28098.html).
The root of the problem comes from hid-input, which maps unknown axis to
ABS_MISC. However, when an event code is already in use, hid-input uses the one
after, leading to uses of ABS_MISC + N, where N is the number of unknown axis.

We are encountering a problem with the multitouch protocol here because if a
device has more than 7 unknown axis (which is the case for the PS3 Sixaxis
controller), then the unknown axis get maps to ABS_MT_SLOT and beyond.

This infers two problems:
- the axis currently mapped on ABS_MT_SLOT is a special case in the kernel,
and it is not updated
- the axis after ABS_MT_SLOT are not filtered anymore, as the kernel things
the device is using a multitouch protocol A.

The patch 0001 solves the first problem, whereas the patches 0002 and 0003
fix the second. Bonus point: the userspace is now correctly notified that one of
the multitouch protocols is in used, so it does not have to rely on bad designed
heuristics.

Cheers,
Benjamin

Antonio Ospite (1):
  Only process ABS_MT_SLOT where there are slots available

Benjamin Tissoires (2):
  input: Introduce INPUT_PROP_MT
  input: reintroduce filtering of mt axis when the device is not
    multitouch

 Documentation/input/event-codes.txt          | 7 +++++++
 Documentation/input/multi-touch-protocol.txt | 6 ++++++
 drivers/hid/hid-ntrig.c                      | 1 +
 drivers/input/input-mt.c                     | 2 ++
 drivers/input/input.c                        | 7 ++++---
 drivers/input/touchscreen/auo-pixcir-ts.c    | 1 +
 drivers/input/touchscreen/bu21013_ts.c       | 1 +
 drivers/input/touchscreen/pixcir_i2c_ts.c    | 1 +
 drivers/input/touchscreen/st1232.c           | 1 +
 include/uapi/linux/input.h                   | 1 +
 10 files changed, 25 insertions(+), 3 deletions(-)

-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-11-21 15:54 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-20 21:32 [PATCH 0/3] Fixes for multitouch / generic gamepads interaction Benjamin Tissoires
2013-11-20 21:32 ` [PATCH 1/3] Only process ABS_MT_SLOT where there are slots available Benjamin Tissoires
2013-11-21  1:45   ` simon
2013-11-21  4:56   ` Dmitry Torokhov
2013-11-21 10:25     ` Antonio Ospite
2013-11-21 15:53     ` Benjamin Tissoires
2013-11-20 21:32 ` [PATCH 2/3] input: Introduce INPUT_PROP_MT Benjamin Tissoires
2013-11-21  4:57   ` Dmitry Torokhov
2013-11-20 21:32 ` [PATCH 3/3] input: reintroduce filtering of mt axis when the device is not multitouch Benjamin Tissoires
2013-11-21 12:38 ` [PATCH 0/3] Fixes for multitouch / generic gamepads interaction Henrik Rydberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).