The kernel should give us ABS_X/Y for backwards compat but some devices don't. For now, ignore these devices as evdev is not suited to handle this yet and will crash if a device is set up without axes (i.e. pEvdev->vals == NULL) and later receives an event from an MT axis.
X.Org Bug 64029 <http://bugs.freedesktop.org/show_bug.cgi?id=64029> Signed-off-by: Peter Hutterer <[email protected]> --- not a solution, but it stops the crash src/evdev.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/evdev.c b/src/evdev.c index 94f5499..aec1447 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1283,6 +1283,15 @@ EvdevAddAbsValuatorClass(DeviceIntPtr device, int want_scroll_axes) num_axes--; } } + + /* device only has mt-axes. the kernel should give us ABS_X etc for + backwards compat but some devices don't have it. */ + if (num_axes == 0 && num_mt_axes > 0) { + xf86IDrvMsg(pInfo, X_ERROR, + "found only multitouch-axes. That shouldn't happen.\n"); + goto out; + } + #endif #ifdef HAVE_SMOOTH_SCROLLING -- 1.8.1.4 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
