• Benjamin Tissoires's avatar
    HID: input: do not increment usages when a duplicate is found · 190d7f02
    Benjamin Tissoires authored
    This is something that bothered us from a long time. When hid-input
    doesn't know how to map a usage, it uses *_MISC. But there is something
    else which increments the usage if the evdev code is already used.
    
    This leads to few issues:
    - some devices may have their ABS_X mapped to ABS_Y if they export a bad
      set of usages (see the DragonRise joysticks IIRC -> fixed in a specific
      HID driver)
    - *_MISC + N might (will) conflict with other defined axes (my Logitech
      H800 exports some multitouch axes because of that)
    - this prevents to freely add some new evdev usages, because "hey, my
      headset will now report ABS_COFFEE, and it's not coffee capable".
    
    So let's try to kill this nonsense, and hope we won't break too many
    devices.
    
    I my headset case, the ABS_MISC axes are created because of some
    proprietary usages, so we might not break that many devices.
    
    For backward compatibility, a quirk HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE
    is created and can be applied to any device that needs this behavior.
    Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    Acked-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
    Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    190d7f02
hid-input.c 50.6 KB