• Anssi Hannula's avatar
    Input: HID - add a quirk for the Logitech USB Receiver · 41ad5fba
    Anssi Hannula authored
    Logitech USB Receiver (046d:c101) has two interfaces. The first one
    contains fields from HID_UP_KEYBOARD and HID_UP_LED, and the other one
    contains fields from HID_UP_CONSUMER and HID_UP_LOGIVENDOR. This device
    is used with multiple wireless Logitech products, including UltraX Media
    Remote.
    
    All fields on both interfaces are either keys or leds. All fields in the
    first interface are marked as Absolute, while the fields in the second
    interface are marked as Relative. Marking the keys as relative causes
    hidinput_hid_event() to send release events right after key press
    events.
    
    The device has EV_REP set, so the userspace expects the device to send
    repeat events if a key is held down. However, as hidinput_hid_event()
    sends release events immediately, repeat events are not sent at all. In
    fact, the userspace has no way of knowing if a key is being held down.
    
    Fix this by adding a quirk for 046d:c101 which changes relative keys to
    absolute ones.
    Signed-off-by: default avatarAnssi Hannula <anssi.hannula@gmail.com>
    Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
    41ad5fba
hid-core.c 63.8 KB