]> Git Repo - linux.git/commitdiff
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
authorLinus Torvalds <[email protected]>
Tue, 6 Aug 2019 18:47:23 +0000 (11:47 -0700)
committerLinus Torvalds <[email protected]>
Tue, 6 Aug 2019 18:47:23 +0000 (11:47 -0700)
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"

1  2 
drivers/hid/hid-quirks.c

diff --combined drivers/hid/hid-quirks.c
index 185a577c46f61b0fd7888de55ca9e86e526e9844,4fe2c3ab76f9cd32354391221bcdcaee1bc3b970..166f41f3173b8baa52bb033141f89db9ca9b967b
@@@ -16,7 -16,6 +16,7 @@@
  #include <linux/export.h>
  #include <linux/slab.h>
  #include <linux/mutex.h>
 +#include <linux/input/elan-i2c-ids.h>
  
  #include "hid-ids.h"
  
@@@ -92,6 -91,7 +92,7 @@@ static const struct hid_device_id hid_q
        { HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A), HID_QUIRK_ALWAYS_POLL },
        { HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
        { HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_094A), HID_QUIRK_ALWAYS_POLL },
+       { HID_USB_DEVICE(USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE_0641), HID_QUIRK_ALWAYS_POLL },
        { HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, USB_DEVICE_ID_IDEACOM_IDC6680), HID_QUIRK_MULTI_INPUT },
        { HID_USB_DEVICE(USB_VENDOR_ID_INNOMEDIA, USB_DEVICE_ID_INNEX_GENESIS_ATARI), HID_QUIRK_MULTI_INPUT },
        { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M610X), HID_QUIRK_MULTI_INPUT },
        { HID_USB_DEVICE(USB_VENDOR_ID_RETROUSB, USB_DEVICE_ID_RETROUSB_SNES_RETROPAD), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
        { HID_USB_DEVICE(USB_VENDOR_ID_RETROUSB, USB_DEVICE_ID_RETROUSB_SNES_RETROPORT), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
        { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_RUMBLEPAD), HID_QUIRK_BADPAD },
+       { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_X52), HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE },
        { HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD2), HID_QUIRK_NO_INIT_REPORTS },
        { HID_USB_DEVICE(USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD), HID_QUIRK_NO_INIT_REPORTS },
        { HID_USB_DEVICE(USB_VENDOR_ID_SENNHEISER, USB_DEVICE_ID_SENNHEISER_BTD500USB), HID_QUIRK_NOGET },
@@@ -917,8 -918,6 +919,8 @@@ static const struct hid_device_id hid_m
  
  bool hid_ignore(struct hid_device *hdev)
  {
 +      int i;
 +
        if (hdev->quirks & HID_QUIRK_NO_IGNORE)
                return false;
        if (hdev->quirks & HID_QUIRK_IGNORE)
                break;
        case USB_VENDOR_ID_ELAN:
                /*
 -               * Many Elan devices have a product id of 0x0401 and are handled
 -               * by the elan_i2c input driver. But the ACPI HID ELAN0800 dev
 -               * is not (and cannot be) handled by that driver ->
 -               * Ignore all 0x0401 devs except for the ELAN0800 dev.
 +               * Blacklist of everything that gets handled by the elan_i2c
 +               * input driver.  This avoids disabling valid touchpads and
 +               * other ELAN devices.
                 */
 -              if (hdev->product == 0x0401 &&
 -                  strncmp(hdev->name, "ELAN0800", 8) != 0)
 -                      return true;
 -              /* Same with product id 0x0400 */
 -              if (hdev->product == 0x0400 &&
 -                  strncmp(hdev->name, "QTEC0001", 8) != 0)
 -                      return true;
 +              if ((hdev->product == 0x0401 || hdev->product == 0x0400))
 +                      for (i = 0; strlen(elan_acpi_id[i].id); ++i)
 +                              if (!strncmp(hdev->name, elan_acpi_id[i].id,
 +                                           strlen(elan_acpi_id[i].id)))
 +                                      return true;
                break;
        }
  
This page took 0.051528 seconds and 4 git commands to generate.