09 Nov, 2020

1 commit


24 Oct, 2020

1 commit


31 Aug, 2020

1 commit

  • The Saitek X52 family of joysticks has a pair of axes that were
    originally (by the Windows driver) used as mouse pointer controls. The
    corresponding usage page is the Game Controls page, which is not
    recognized by the generic HID driver, and therefore, both axes get
    mapped to ABS_MISC. The quirk makes the second axis get mapped to
    ABS_MISC+1, and therefore made available separately.

    One Saitek X52 device is already fixed. This patch fixes the other two
    known devices with VID/PID 06a3:0255 and 06a3:0762.

    Signed-off-by: Nirenjan Krishnan
    Signed-off-by: Jiri Kosina

    Nirenjan Krishnan
     

17 Aug, 2020

1 commit

  • The PixArt OEM mice are known for disconnecting every minute in
    runlevel 1 or 3 if they are not always polled. One Lenovo PixArt
    mouse is already fixed. Got two references for 17ef:602e and three
    references for 17ef:6019 misbehaving like this. Got one direct bug
    report for 17ef:6093 from Wyatt Ward (wyatt8740). So add
    HID_QUIRK_ALWAYS_POLL for all of them.

    Link: https://github.com/sriemer/fix-linux-mouse issue 22
    Signed-off-by: Sebastian Parschauer
    Signed-off-by: Jiri Kosina

    Sebastian Parschauer
     

21 Jul, 2020

1 commit

  • Add HID_QUIRK_NOGET for Logitech GROUP device.

    Logitech GROUP is a compound with camera and audio.
    When the HID interface in an audio device is requested to get
    specific report id, all following control transfers are stalled
    and never be restored back.

    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=203419
    Signed-off-by: Ikjoon Jang
    Signed-off-by: Jiri Kosina

    Ikjoon Jang
     

24 Jun, 2020

1 commit


16 Jun, 2020

1 commit

  • The Obins Anne Pro 2 keyboard (04d9:a293) disconnects after a few
    minutes of inactivity when using it wired and typing does not result
    in any input events any more. This is a common firmware flaw. So add
    the ALWAYS_POLL quirk for this device.

    GitHub user Dietrich Moerman (dietrichm) tested the quirk and
    requested my help in my project
    https://github.com/sriemer/fix-linux-mouse issue 22 to provide
    this patch.

    Link: https://www.reddit.com/r/AnnePro/comments/gruzcb/anne_pro_2_linux_cant_type_after_inactivity/
    Signed-off-by: Sebastian Parschauer
    Cc: stable@vger.kernel.org # v4.16+
    Signed-off-by: Jiri Kosina

    Sebastian Parschauer
     

16 May, 2020

1 commit

  • The Trust Panora Graphic Tablet has two interfaces. Interface zero reports pen
    movement, pen pressure and pen buttons. Interface one reports tablet buttons
    and tablet scroll. Both use the mouse protocol.

    Without these quirks, libinput gets confused about what device it talks to.

    For completeness, here is the usbhid-dump:

    ```
    $ sudo usbhid-dump -d 145f:0212
    003:013:001:DESCRIPTOR 1588949402.559961
    05 0D 09 01 A1 01 85 07 A1 02 09 00 75 08 95 07
    81 02 C0 C0 09 0E A1 01 85 05 09 23 A1 02 09 52
    09 53 25 0A 75 08 95 02 B1 02 C0 C0 05 0C 09 36
    A1 00 85 06 05 09 19 01 29 20 15 00 25 01 95 20
    75 01 81 02 C0

    003:013:000:DESCRIPTOR 1588949402.563942
    05 01 09 02 A1 01 85 08 09 01 A1 00 05 09 19 01
    29 03 15 00 25 01 95 03 75 01 81 02 95 05 81 01
    05 01 09 30 09 31 09 38 09 00 15 81 25 7F 75 08
    95 04 81 06 C0 C0 05 01 09 02 A1 01 85 09 09 01
    A1 00 05 09 19 01 29 03 15 00 25 01 95 03 75 01
    81 02 95 05 81 01 05 01 09 30 09 31 26 FF 7F 95
    02 75 10 81 02 05 0D 09 30 26 FF 03 95 01 75 10
    81 02 C0 C0 05 01 09 00 A1 01 85 04 A1 00 26 FF
    00 09 00 75 08 95 07 B1 02 C0 C0
    ```

    Signed-off-by: Cristian Klein
    Signed-off-by: Jiri Kosina

    Cristian Klein
     

04 May, 2020

1 commit


01 Apr, 2020

1 commit


17 Mar, 2020

1 commit

  • A lenovo pixart mouse (17ef:608d) is afflicted common the the malfunction
    where it disconnects and reconnects every minute--each time incrementing
    the device number. This patch adds the device id of the device and
    specifies that it needs the HID_QUIRK_ALWAYS_POLL quirk in order to
    work properly.

    Signed-off-by: Tony Fischetti
    Signed-off-by: Jiri Kosina

    Tony Fischetti
     

12 Feb, 2020

1 commit

  • The ITE 8595 chip used in various 2-in-1 keyboard docks works fine with
    the hid-generic driver (minus the RF_KILL key) and also keeps working fine
    when swapping drivers, so there is no need to have it in the
    hid_have_special_driver list.

    Note the other 2 USB ids in hid-ite.c were never added to
    hid_have_special_driver.

    Signed-off-by: Hans de Goede
    Signed-off-by: Jiri Kosina

    Hans de Goede
     

13 Dec, 2019

1 commit


30 Nov, 2019

1 commit


18 Nov, 2019

1 commit


14 Nov, 2019

1 commit

  • The PixArt OEM mouse disconnets/reconnects every minute on
    Linux. All contents of dmesg are repetitive:

    [ 1465.810014] usb 1-2.2: USB disconnect, device number 20
    [ 1467.431509] usb 1-2.2: new low-speed USB device number 21 using xhci_hcd
    [ 1467.654982] usb 1-2.2: New USB device found, idVendor=03f0,idProduct=1f4a, bcdDevice= 1.00
    [ 1467.654985] usb 1-2.2: New USB device strings: Mfr=1, Product=2,SerialNumber=0
    [ 1467.654987] usb 1-2.2: Product: HP USB Optical Mouse
    [ 1467.654988] usb 1-2.2: Manufacturer: PixArt
    [ 1467.699722] input: PixArt HP USB Optical Mouse as /devices/pci0000:00/0000:00:07.1/0000:05:00.3/usb1/1-2/1-2.2/1-2.2:1.0/0003:03F0:1F4A.0012/input/input19
    [ 1467.700124] hid-generic 0003:03F0:1F4A.0012: input,hidraw0: USB HID v1.11 Mouse [PixArt HP USB Optical Mouse] on usb-0000:05:00.3-2.2/input0

    So add HID_QUIRK_ALWAYS_POLL for this one as well.
    Test the patch, the mouse is no longer disconnected and there are no
    duplicate logs in dmesg.

    Reference:
    https://github.com/sriemer/fix-linux-mouse

    Signed-off-by: Jinke Fan
    Signed-off-by: Jiri Kosina

    Jinke Fan
     

03 Sep, 2019

1 commit

  • The PixArt OEM mice are known for disconnecting every minute in
    runlevel 1 or 3 if they are not always polled. So add quirk
    ALWAYS_POLL for this one as well.

    Ville Viinikka (viinikv) reported and tested the quirk.
    Link: https://github.com/sriemer/fix-linux-mouse issue 15

    Signed-off-by: Sebastian Parschauer
    CC: stable@vger.kernel.org # v4.16+
    Signed-off-by: Benjamin Tissoires

    Sebastian Parschauer
     

07 Aug, 2019

1 commit

  • Pull HID fixes from Jiri Kosina:

    - functional regression fix for some of the Logitech unifying devices,
    from Hans de Goede

    - race condition fix in hid-sony for bug severely affecting
    Valve/Android deployments, from Roderick Colenbrander

    - several fixes for issues found by syzbot/kasan, from Oliver Neukum
    and Hillf Danton

    - functional regression fix for Wacom Cintiq device, from Aaron
    Armstrong Skomra

    - a few other assorted device-specific quirks

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
    HID: sony: Fix race condition between rumble and device remove.
    HID: hiddev: do cleanup in failure of opening a device
    HID: hiddev: avoid opening a disconnected device
    HID: input: fix a4tech horizontal wheel custom usage
    HID: Add quirk for HP X1200 PIXART OEM mouse
    HID: holtek: test for sanity of intfdata
    HID: wacom: fix bit shift for Cintiq Companion 2
    HID: quirks: Set the INCREMENT_USAGE_ON_DUPLICATE quirk on Saitek X52
    HID: logitech-dj: Really fix return value of logi_dj_recv_query_hidpp_devices
    HID: Add 044f:b320 ThrustMaster, Inc. 2 in 1 DT
    HID: logitech-dj: add the Powerplay receiver
    HID: logitech-hidpp: add USB PID for a few more supported mice
    HID: logitech-dj: rename "gaming" receiver to "lightspeed"

    Linus Torvalds
     

05 Aug, 2019

2 commits

  • The PixArt OEM mice are known for disconnecting every minute in
    runlevel 1 or 3 if they are not always polled. So add quirk
    ALWAYS_POLL for this one as well.

    Jonathan Teh (@jonathan-teh) reported and tested the quirk.
    Reference: https://github.com/sriemer/fix-linux-mouse/issues/15

    Signed-off-by: Sebastian Parschauer
    CC: stable@vger.kernel.org
    Signed-off-by: Jiri Kosina

    Sebastian Parschauer
     
  • The Saitek X52 joystick has a pair of axes that are originally
    (by the Windows driver) used as mouse pointer controls. The corresponding
    usage->hid values are 0x50024 and 0x50026. Thus they are handled
    as unknown axes and both get mapped to ABS_MISC. The quirk makes
    the second axis to be mapped to ABS_MISC1 and thus made available
    separately.

    [jkosina@suse.cz: squashed two patches into one]
    Signed-off-by: István Váradi
    Signed-off-by: Jiri Kosina

    István Váradi
     

14 Jul, 2019

1 commit

  • Pull input updates from Dmitry Torokhov:

    - an update to Elan touchpad SMBus driver to fetch device parameters
    (size, resolution) while it is still in PS/2 mode, before switching
    over to SMBus, as in that mode some devices return garbage dimensions

    - update to iforce joystick driver

    - miscellaneous driver fixes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (48 commits)
    Input: gpio_keys_polled - allow specifying name of input device
    Input: edt-ft5x06 - simplify event reporting code
    Input: max77650-onkey - add MODULE_ALIAS()
    Input: atmel_mxt_ts - fix leak in mxt_update_cfg()
    Input: synaptics - enable SMBUS on T480 thinkpad trackpad
    Input: atmel_mxt_ts - fix -Wunused-const-variable
    Input: joydev - extend absolute mouse detection
    HID: quirks: Refactor ELAN 400 and 401 handling
    Input: elan_i2c - export the device id whitelist
    Input: edt-ft5x06 - use get_unaligned_be16()
    Input: iforce - add the Saitek R440 Force Wheel
    Input: iforce - use unaligned accessors, where appropriate
    Input: iforce - drop couple of temps from transport code
    Input: iforce - drop bus type from iforce structure
    Input: iforce - use DMA-safe buffores for USB transfers
    Input: iforce - allow callers supply data buffer when fetching device IDs
    Input: iforce - only call iforce_process_packet() if initialized
    Input: iforce - signal command completion from transport code
    Input: iforce - do not combine arguments for iforce_process_packet()
    Input: iforce - factor out hat handling when parsing packets
    ...

    Linus Torvalds
     

10 Jul, 2019

1 commit


02 Jul, 2019

1 commit

  • The PixArt OEM mice are known for disconnecting every minute in
    runlevel 1 or 3 if they are not always polled. So add quirk
    ALWAYS_POLL for this Alienware branded Primax mouse as well.

    Daniel Schepler (@dschepler) reported and tested the quirk.
    Reference: https://github.com/sriemer/fix-linux-mouse/issues/15

    Signed-off-by: Sebastian Parschauer
    CC: stable@vger.kernel.org
    Signed-off-by: Jiri Kosina

    Sebastian Parschauer
     

30 Jun, 2019

1 commit

  • There needs to be coordination between hid-quirks and the elan_i2c driver
    about which devices are handled by what drivers. Currently, both use
    whitelists, which results in valid devices being unhandled by default,
    when they should not be rejected by hid-quirks. This is quickly becoming
    an issue.

    Since elan_i2c has a maintained whitelist of what devices it will handle,
    which is now in a header file that hid-quirks can access, use that to
    implement a blacklist in hid-quirks so that only the devices that need to
    be handled by elan_i2c get rejected by hid-quirks, and everything else is
    handled by default.

    Suggested-by: Benjamin Tissoires
    Signed-off-by: Jeffrey Hugo
    Acked-by: Benjamin Tissoires
    Signed-off-by: Dmitry Torokhov

    Jeffrey Hugo
     

28 Jun, 2019

1 commit

  • Pull HID fixes from Jiri Kosina:

    - fix for one corner case in HID++ protocol with respect to handling
    very long reports, from Hans de Goede

    - power management fix in Intel-ISH driver, from Hyungwoo Yang

    - use-after-free fix in Intel-ISH driver, from Dan Carpenter

    - a couple of new device IDs/quirks from Kai-Heng Feng, Kyle Godbey and
    Oleksandr Natalenko

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
    HID: intel-ish-hid: fix wrong driver_data usage
    HID: multitouch: Add pointstick support for ALPS Touchpad
    HID: logitech-dj: Fix forwarding of very long HID++ reports
    HID: uclogic: Add support for Huion HS64 tablet
    HID: chicony: add another quirk for PixArt mouse
    HID: intel-ish-hid: Fix a use after free in load_fw_from_host()

    Linus Torvalds
     

26 Jun, 2019

1 commit

  • I've spotted another Chicony PixArt mouse in the wild, which requires
    HID_QUIRK_ALWAYS_POLL quirk, otherwise it disconnects each minute.

    USB ID of this device is 0x04f2:0x0939.

    We've introduced quirks like this for other models before, so lets add
    this mouse too.

    Link: https://github.com/sriemer/fix-linux-mouse#usb-mouse-disconnectsreconnects-every-minute-on-linux
    Signed-off-by: Oleksandr Natalenko
    Acked-by: Sebastian Parschauer
    Signed-off-by: Jiri Kosina

    Oleksandr Natalenko
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 3029 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

24 Apr, 2019

1 commit

  • Most Logitech wireless keyboard and mice using the 27 MHz are hidpp10
    devices, add support to logitech-dj for their receivers.

    Doing so leads to 2 improvements:

    1) All these devices share the same USB product-id for their receiver,
    making it impossible to properly map some special keys / buttons
    which differ from device to device. Adding support to logitech-dj to
    see these as hidpp10 devices allows us to get the actual device-id
    from the keyboard / mouse.

    2) It enables battery-monitoring of these devices

    This patch uses a new HID group for 27Mhz devices, since the logitech-hidpp
    code needs to be able to differentiate them from other devices instantiated
    by the logitech-dj code.

    Signed-off-by: Hans de Goede
    Signed-off-by: Benjamin Tissoires

    Hans de Goede
     

23 Apr, 2019

1 commit

  • I am actually suggesting people to not populate this list, and I should
    probably start to apply my advices to myself.

    The end result means that if your initrd is lacking hid-logitech-dj
    or hid-logitech-hidpp, but still contains hid-generic, then your
    keyboard will work during pre-init.

    Signed-off-by: Hans de Goede
    Signed-off-by: Benjamin Tissoires

    Benjamin Tissoires
     

27 Mar, 2019

1 commit

  • Similar to commit edfc3722cfef ("HID: quirks: Fix keyboard + touchpad on
    Toshiba Click Mini not working"), the Lenovo Miix 630 has a combo
    keyboard/touchpad device with vid:pid of 04F3:0400, which is shared with
    Elan touchpads. The combo on the Miix 630 has an ACPI id of QTEC0001,
    which is not claimed by the elan_i2c driver, so key on that similar to
    what was done for the Toshiba Click Mini.

    Signed-off-by: Jeffrey Hugo
    Signed-off-by: Jiri Kosina

    Jeffrey Hugo
     

11 Mar, 2019

2 commits

  • The kernel-doc annotation is misused for hid_mouse_ignore_list. The script
    complains about it:

    drivers/hid/hid-quirks.c:894: warning: cannot understand function prototype: 'const struct hid_device_id hid_mouse_ignore_list[] = '

    Drop the annotation to make script happy.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Benjamin Tissoires

    Andy Shevchenko
     
  • When building with -Wformat, clang warns:

    drivers/hid/hid-quirks.c:1075:27: warning: format specifies type
    'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
    [-Wformat]
    bl_entry->driver_data, bl_entry->vendor,
    ^~~~~~~~~~~~~~~~
    ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
    printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
    ~~~~~~ ^~~
    drivers/hid/hid-quirks.c:1076:4: warning: format specifies type
    'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
    [-Wformat]
    bl_entry->product);
    ^~~~~~~~~~~~~~~~~
    ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
    printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
    ~~~~~~ ^~~
    drivers/hid/hid-quirks.c:1242:12: warning: format specifies type
    'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
    [-Wformat]
    quirks, hdev->vendor, hdev->product);
    ^~~~~~~~~~~~
    ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
    printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
    ~~~~~~ ^~~
    drivers/hid/hid-quirks.c:1242:26: warning: format specifies type
    'unsigned short' but the argument has type '__u32' (aka 'unsigned int')
    [-Wformat]
    quirks, hdev->vendor, hdev->product);
    ^~~~~~~~~~~~~
    ./include/linux/hid.h:1170:48: note: expanded from macro 'dbg_hid'
    printk(KERN_DEBUG "%s: " format, __FILE__, ##arg); \
    ~~~~~~ ^~~
    4 warnings generated.

    This patch fixes the format strings to use the correct format type for unsigned
    ints.

    Link: https://github.com/ClangBuiltLinux/linux/issues/378
    Signed-off-by: Louis Taylor
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Benjamin Tissoires

    Louis Taylor
     

05 Mar, 2019

1 commit


21 Feb, 2019

5 commits


14 Feb, 2019

1 commit

  • The Logitech WingMan Formula GP by default presents a combined
    accelerate/brake axis, so this patch assigns it to hid-logitech in order to
    benefit from the axis-splitting logic in lg4ff. There is also a fixed
    report descriptor for the resulting report.

    Signed-off-by: Jarrad Whitaker
    Signed-off-by: Jiri Kosina

    Jarrad Whitaker
     

07 Dec, 2018

1 commit

  • SNES RetroPort and RetroPad register only 4 gamepad buttons
    when they should register all 8 buttons. This is described here:

    https://ask.fedoraproject.org/en/question/128102

    This is happening because of:

    Commit 190d7f02ce8e ("HID: input: do not increment usages when
    duplicate is found")

    Here, I add the quirk HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE
    (created for backward compatibility with the change in 190d7f02ce8e)
    for the two products.

    Tested with both RetroPort and RetroPad.

    Cc: stable@vger.kernel.org # v4.18+

    Signed-off-by: Nic Soudée
    Signed-off-by: Benjamin Tissoires

    Nic Soudée