Bug 82823 - HID device with many axes is discarded as invalid multitouch device
Summary: HID device with many axes is discarded as invalid multitouch device
Status: RESOLVED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-08-19 18:34 UTC by Leonid Borisenko
Modified: 2014-11-18 00:09 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg | grep Microsoft (726 bytes, text/plain)
2014-08-19 18:34 UTC, Leonid Borisenko
Details
'evtest /dev/input/event1' (only reporting header) (4.70 KB, text/plain)
2014-08-19 18:35 UTC, Leonid Borisenko
Details
'evtest /dev/input/event2' (only reporting header) (11.55 KB, text/plain)
2014-08-19 18:35 UTC, Leonid Borisenko
Details
'lsusb -v -d 45e:' (after unbinding specified device from usbhid driver) (29.95 KB, text/plain)
2014-08-19 19:10 UTC, Leonid Borisenko
Details

Description Leonid Borisenko 2014-08-19 18:34:34 UTC
Created attachment 104908 [details]
dmesg | grep Microsoft

HID device 'USB HID v1.11 Mouse' provided by Microsoft Wireless Optical
Desktop® 2.20 (connected to USB and identified as vendor 0x45e, product
0xe3, version 0x111) is reported as supporting EV_ABS event with ABS_MT_SLOT
code, but nevertheless libevdev_get_num_slots returns -1.

It means that mouse isn't recognized by libinput as a valid device, it's discarded and doesn't work in Weston.

As partially explained by LKML message [1] (Message-Id [2]):

    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.

Initial discussion of libinput patch fixing problem for mouse from Wireless Optical Desktop is at [3].

In my tests with evtest mouse didn't produce any MT_* events.

[1] https://lkml.org/lkml/2013/11/20/515
[2] 1384983141-31019-1-git-send-email-benjamin.tissoires@redhat.com
[3] http://lists.freedesktop.org/archives/wayland-devel/2014-August/016603.html
Comment 1 Leonid Borisenko 2014-08-19 18:35:22 UTC
Created attachment 104909 [details]
'evtest /dev/input/event1' (only reporting header)
Comment 2 Leonid Borisenko 2014-08-19 18:35:50 UTC
Created attachment 104910 [details]
'evtest /dev/input/event2' (only reporting header)
Comment 3 Leonid Borisenko 2014-08-19 19:10:48 UTC
Created attachment 104914 [details]
'lsusb -v -d 45e:' (after unbinding specified device from usbhid driver)
Comment 4 Peter Hutterer 2014-08-25 06:39:29 UTC
Leonid, are you working on this?
Comment 5 Peter Hutterer 2014-11-18 00:09:52 UTC
commit f04f58213fb50dbeeafb7f4a465bb9b3fc3632e0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Nov 5 11:01:45 2014 +1000

    evdev: handle fake MT devices


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.