• Hans de Goede's avatar
    HID: logitech-dj: Handle quad/bluetooth keyboards with a builtin trackpad · ee5e5841
    Hans de Goede authored
    Some quad/bluetooth keyboards, such as the Dinovo Edge (Y-RAY81) have a
    builtin touchpad. In this case when asking the receiver for paired devices,
    we get only 1 paired device with a device_type of REPORT_TYPE_KEYBOARD.
    
    This means that we do not instantiate a second dj_hiddev for the mouse
    (as we normally would) and thus there is no place for us to forward the
    mouse input reports to, causing the touchpad part of the keyboard to not
    work.
    
    There is no way for us to detect these keyboards, so this commit adds
    an array with device-ids for such keyboards and when a keyboard is on
    this list it adds STD_MOUSE to the reports_supported bitmap for the
    dj_hiddev created for the keyboard fixing the touchpad not working.
    
    Using a list of device-ids for this is not ideal, but there are only
    very few such keyboards so this should be fine. Besides the Dinovo Edge,
    other known wireless Logitech keyboards with a builtin touchpad are:
    
    * Dinovo Mini (TODO add its device-id to the list)
    * K400 (uses a unifying receiver so is not affected)
    * K600 (uses a unifying receiver so is not affected)
    
    Cc: stable@vger.kernel.org
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1811424
    Fixes: f2113c30 ("HID: logitech-dj: add support for Logitech Bluetooth Mini-Receiver")
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    ee5e5841
hid-logitech-dj.c 62.6 KB