• Hans de Goede's avatar
    HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch 10E · b7c20f38
    Hans de Goede authored
    The Acer Aspire Switch 10E (SW3-016)'s keyboard-dock uses the same USB-ids
    as the Acer One S1003 keyboard-dock. Yet they are not entirely the same:
    
    1. The S1003 keyboard-dock has the same report descriptors as the
    S1002 keyboard-dock (which has different USB-ids)
    
    2. The Acer Aspire Switch 10E's keyboard-dock has different
    report descriptors from the S1002/S1003 keyboard docks and it
    sends 0x00880078 / 0x00880079 usage events when the touchpad is
    toggled on/off (which is handled internally).
    
    This means that all Acer kbd-docks handled by the hid-ite.c drivers
    report their touchpad being toggled on/off through these custom
    usage-codes with the exception of the S1003 dock, which likely is
    a bug of that dock.
    
    Add a QUIRK_TOUCHPAD_ON_OFF_REPORT quirk for the Aspire Switch 10E / S1003
    usb-id so that the touchpad toggling will get reported to userspace on
    the Aspire Switch 10E.
    
    Since the Aspire Switch 10E's kbd-dock has different report-descriptors,
    this also requires adding support for fixing those to ite_report_fixup().
    
    Setting the quirk will also cause ite_report_fixup() to hit the
    S1002/S1003 descriptors path on the S1003. Since the S1003 kbd-dock
    never generates any input-reports for the fixed up part of the
    descriptors this does not matter; and if there are versions out there
    which do actually send input-reports for the touchpad-toggle then the
    fixup should actually help to make things work.
    
    This was tested on both an Acer Aspire Switch 10E and on an Acer One S1003.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    b7c20f38
hid-ite.c 4.03 KB