1. 31 Jan, 2018 3 commits
    • Jiri Kosina's avatar
      Merge branch 'for-4.16/elo' into for-linus · a44f3ec6
      Jiri Kosina authored
      Pull hid-elo device detection fix
      a44f3ec6
    • Jiri Kosina's avatar
      Merge branches 'for-4.16/hid-quirks-cleanup/asus',... · 79084494
      Jiri Kosina authored
      Merge branches 'for-4.16/hid-quirks-cleanup/asus', 'for-4.16/hid-quirks-cleanup/elecom', 'for-4.16/hid-quirks-cleanup/ish', 'for-4.16/hid-quirks-cleanup/multitouch', 'for-4.16/hid-quirks-cleanup/pixart', 'for-4.16/hid-quirks-cleanup/rmi', 'for-4.16/hid-quirks-cleanup/sony' and 'for-4.16/hid-quirks-cleanup/toshiba' into for-linus
      
      Pull assorted device driver fixes (ASUS, Elecom, Intel-ISH, Multitouch, PixArt, RMI,
      Sony and Toshiba) based on top the hid-quirks revamp.
      79084494
    • Jiri Kosina's avatar
      Merge branch 'for-4.16/hid-quirks-cleanup/_base' into for-linus · a7acb31d
      Jiri Kosina authored
      This series from Benjamin Tissoires finally removes one of the big PITAs
      in the hid-core, which is the absolute need of having added all the new
      device IDs into the horrid hid_have_special_driver[]
      a7acb31d
  2. 23 Jan, 2018 7 commits
  3. 07 Dec, 2017 3 commits
    • Dave Young's avatar
      HID: add quirk for another PIXART OEM mouse used by HP · 01cffe9d
      Dave Young authored
      This mouse keep disconnecting in runleve 3 like below, add it needs the
      quirk to mute the anoying messages.
      
      [  111.230555] usb 2-2: USB disconnect, device number 6
      [  112.718156] usb 2-2: new low-speed USB device number 7 using xhci_hcd
      [  112.941594] usb 2-2: New USB device found, idVendor=03f0, idProduct=094a
      [  112.984866] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
      [  113.027731] usb 2-2: Product: HP USB Optical Mouse
      [  113.069977] usb 2-2: Manufacturer: PixArt
      [  113.113500] input: PixArt HP USB Optical Mouse as /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:03F0:094A.0002/input/input14
      [  113.156787] hid-generic 0003:03F0:094A.0002: input: USB HID v1.11 Mouse [PixArt HP USB Optical Mouse] on usb-0000:00:14.0-2/input0
      [  173.262642] usb 2-2: USB disconnect, device number 7
      [  174.750244] usb 2-2: new low-speed USB device number 8 using xhci_hcd
      [  174.935740] usb 2-2: New USB device found, idVendor=03f0, idProduct=094a
      [  174.990435] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
      [  175.014984] usb 2-2: Product: HP USB Optical Mouse
      [  175.037886] usb 2-2: Manufacturer: PixArt
      [  175.061794] input: PixArt HP USB Optical Mouse as /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/0003:03F0:094A.0003/input/input15
      [  175.084946] hid-generic 0003:03F0:094A.0003: input: USB HID v1.11 Mouse [PixArt HP USB Optical Mouse] on usb-0000:00:14.0-2/input0
      Signed-off-by: default avatarDave Young <dyoung@redhat.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      01cffe9d
    • Hans de Goede's avatar
      HID: core: lower log level for unknown main item tags to warnings · 7cb4774e
      Hans de Goede authored
      Given all the effort distros have done with splash-screens to give
      users a nice clean boot experience, we really want dmesg --level=err
      to not print anything unless there is a real problem with either the
      hardware or the kernel. Buggy HID descriptors unfortunately happen
      all too often, so lower the log level to warning keep the console
      clear of error messages such as:
      
      [  441.079664] apple 0005:05AC:0239.0003: unknown main item tag 0x0
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Acked-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      7cb4774e
    • Colin Ian King's avatar
      HID: quirks: make array hid_quirks static · 332347d4
      Colin Ian King authored
      Array hid_quirks is local to the source and does not need to be in
      global scope, so make it static.
      
      Cleans up sparse warning:
      drivers/hid/hid-quirks.c:29:28: warning: symbol 'hid_quirks' was not
      declared. Should it be static?
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      332347d4
  4. 01 Dec, 2017 3 commits
  5. 24 Nov, 2017 1 commit
    • Jiri Kosina's avatar
      HID: elo: clear BTN_LEFT mapping · 9abd04af
      Jiri Kosina authored
      ELO devices have one Button usage in GenDesk field, which makes hid-input map
      it to BTN_LEFT; that confuses userspace, which then considers the device to be
      a mouse/touchpad instead of touchscreen.
      
      Fix that by unmapping BTN_LEFT and keeping only BTN_TOUCH in place.
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      9abd04af
  6. 22 Nov, 2017 4 commits
  7. 21 Nov, 2017 7 commits
    • Eudean Sun's avatar
      HID: cp2112: Fix I2C_BLOCK_DATA transactions · 542134c0
      Eudean Sun authored
      The existing driver erroneously treats I2C_BLOCK_DATA and BLOCK_DATA
      commands the same.
      
      For I2C_BLOCK_DATA reads, the length of the read is provided in
      data->block[0], but the length itself should not be sent to the slave. In
      contrast, for BLOCK_DATA reads no length is specified since the length
      will be the first byte returned from the slave. When copying data back
      to the data buffer, for an I2C_BLOCK_DATA read we have to take care not to
      overwrite data->block[0] to avoid overwriting the length. A BLOCK_DATA
      read doesn't have this concern since the first byte returned by the device
      is the length and belongs in data->block[0].
      
      For I2C_BLOCK_DATA writes, the length is also provided in data->block[0],
      but the length itself is not sent to the slave (in contrast to BLOCK_DATA
      writes where the length prefixes the data sent to the slave).
      
      This was tested on physical hardware using i2cdump with the i and s flags
      to test the behavior of I2C_BLOCK_DATA reads and BLOCK_DATA reads,
      respectively. Writes were not tested but the I2C_BLOCK_DATA write change
      is pretty simple to verify by inspection.
      Signed-off-by: default avatarEudean Sun <eudean@arista.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      542134c0
    • Niels Skou Olsen's avatar
      HID: Add special driver for Jabra devices · 19ca2827
      Niels Skou Olsen authored
      Add a hid-jabra driver to the list of special drivers in hid-core. The
      driver prevents vendor defined HID usages (FF00-FFFF) in Jabra devices
      from being mapped to input events, that become unintended mouse events
      in the X11 server.
      Signed-off-by: default avatarNiels Skou Olsen <nolsen@jabra.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      19ca2827
    • Niels Skou Olsen's avatar
      HID: Ignore Jabra HID interface based on firmware version · d5158e02
      Niels Skou Olsen authored
      Two Jabra speakerphone devices were added to the ignore list in 2013,
      because the device HID interfaces didn't work well with kernel usbhid
      driver, and could cause volume key event storm.
      
      See the original commit:
      Commit 31b9779c ("HID: ignore Jabra speakerphones HID interface")
      
      Modify hid_lookup_quirk() to consider the firmware version of these two
      devices, so that only versions older than a known good version are
      ignored.
      Signed-off-by: default avatarNiels Skou Olsen <nolsen@jabra.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      d5158e02
    • Benjamin Tissoires's avatar
      HID: core: remove the absolute need of hid_have_special_driver[] · e04a0442
      Benjamin Tissoires authored
      Most HID devices behave properly when they are used with hid-generic.
      Since kernel v4.12, we do not poll for input reports at plug in, so
      hid-generic should behave properly with all HID devices.
      
      There has been a long standing list of HID devices that have a special
      driver. It used to be just a few, but with time, this list went too big,
      and we can not ask users to know which HID special driver will pick up
      their device.
      
      We can teach hid-generic to be nice with others. If a device is not
      explicitly marked with HID_QUIRK_HAVE_SPECIAL_DRIVER, we can allow
      hid-generic to pick up the device as long as no other loaded HID driver
      will match the device.
      
      When the special driver appears, hid-generic can step back and let
      the special driver handling the device. In case this special driver
      is removed, this good old pal of hid-generic will rebind to the device.
      
      This basically makes the list hid_have_special_driver[] useless. It
      still allows to not see a hid-generic driver bound and removed during
      boot, so we can keep it around.
      
      This will also help other people to have a special HID driver without
      the need of recompiling hid-core.
      Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      e04a0442
    • Benjamin Tissoires's avatar
      HID: core: move the list of ignored devices in hid-quirks.c · f745d162
      Benjamin Tissoires authored
      Better having all the devices quirks in one place.
      
      Note that this change introduces an initial lookup for the device in
      hid_gets_squirk(), which should not theoretically be required, but which
      actually allows to not have to reparse the list of ignored devices
      if we call hid_lookup_quirks twice.
      Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      f745d162
    • Benjamin Tissoires's avatar
      HID: quirks: move the list of special devices into a quirk · 6e65d9d5
      Benjamin Tissoires authored
      It is better to centralize the information of special devices in one
      single file. Instead of manually parsing the list of devices that
      have a special driver or those that need to be ignored, introduce
      HID_QUIRK_HAVE_SPECIAL_DRIVER and set the correct quirks while fetching
      those quirks.
      Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      6e65d9d5
    • Benjamin Tissoires's avatar
      HID: core: move the dynamic quirks handling in core · d5d3e202
      Benjamin Tissoires authored
      usbhid has a list of dynamic quirks in addition to a list of static quirks.
      There is not much USB specific in that, so move this part of the module
      in core so we can have one central place for quirks.
      Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      d5d3e202
  8. 15 Nov, 2017 12 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 20df1578
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - high resolution mode for Dell canvas support, from Benjamin Tissoires
      
       - pen handling fixes for the Wacom driver, from Jason Gerecke
      
       - i2c-hid: Apollo-Lake based laptops improvements, from Hans de Goede
      
       - Input/Core: eraser tool support, from Ping Cheng
      
       - new ALPS touchpad (T4, found currently on HP EliteBook 1000, Zbook
         Stduio and HP Elite book x360) supportm from Masaki Ota
      
       - other smaller assorted fixes
      
      * 'for-linus' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (33 commits)
        HID: cp2112: fix broken gpio_direction_input callback
        HID: cp2112: fix interface specification URL
        HID: Wacom: switch Dell canvas into highres mode
        HID: wacom: generic: Send BTN_STYLUS3 when both barrel switches are set
        HID: sony: Fix SHANWAN pad rumbling on USB
        HID: i2c-hid: Add no-irq-after-reset quirk for 0911:5288 device
        HID: add backlight level quirk for Asus ROG laptops
        HID: cp2112: add HIDRAW dependency
        HID: Add ID 044f:b605 ThrustMaster, Inc. force feedback Racing Wheel
        HID: hid-logitech: remove redundant assignment to pointer value
        HID: wacom: generic: Recognize WACOM_HID_WD_PEN as a type of pen collection
        HID: rmi: Check that a device is a RMI device before calling RMI functions
        HID: add multi-input quirk for GamepadBlock
        HID: alps: add new U1 device ID
        HID: alps: add support for Alps T4 Touchpad device
        HID: alps: remove variables local to u1_init() from the device struct
        HID: alps: properly handle max_fingers and minimum on X and Y axis
        HID: alps: Separate U1 device code
        HID: alps: delete unnecessary struct u1_dev devInfo
        HID: usbhid: Convert timers to use timer_setup()
        ...
      20df1578
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/wacom' into for-linus · 01125b2d
      Jiri Kosina authored
      - High resolution mode for DEll canvas support, from Benjamin Tissoires
      - A lot of improvements to pen handling in the Wacom driver, from Jason Gerecke
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      01125b2d
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/use-timer-setup' into for-linus · 4b545304
      Jiri Kosina authored
      - usbhid: conversion to timer_setup() and from_timer() from Kees Cook
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      4b545304
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/upstream' into for-linus · 6ed7a70b
      Jiri Kosina authored
      - cp2112: GPIO error handling and Kconfig fixes from Sébastien Szymanski
      - i2c-hid: fixup / quirk for Apollo-Lake based laptops, from Hans de Goede
      - Input/Core: add eraser tool support, from Ping Cheng
      - small assorted code fixes
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      6ed7a70b
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/sony' into for-linus · b50b9d3d
      Jiri Kosina authored
      - SHANWAN PS3 rumble fix from Bastien Nocera
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      b50b9d3d
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/multitouch' into for-linus · ea3bbd0a
      Jiri Kosina authored
      - make sure that we forward MSC_TIMESTAMP in accordance to the specification,
        from Nicolas Boichat
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      ea3bbd0a
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/logitech' into for-linus · 6101cb7e
      Jiri Kosina authored
      - small code fixes for Logitech driver from Colin Ian King
      6101cb7e
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/hyperv' into for-linus · e1548dcd
      Jiri Kosina authored
      - trivial printk() line termination fix for HyperV
      e1548dcd
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/asus' into for-linus · 47dd6b01
      Jiri Kosina authored
      - Asus laptop fixes (fn keys, backlight), from Mustafa Kuscu and
        Maxime Bellengé
      47dd6b01
    • Jiri Kosina's avatar
      Merge branch 'for-4.15/alps' into for-linus · 5cc619db
      Jiri Kosina authored
      - New ALPS touchpad (T4, found currently on HP EliteBook 1000, Zbook Stduio
        and HP Elite book x360) support from Masaki Ota
      5cc619db
    • Jiri Kosina's avatar
      Merge branch 'for-4.14/upstream-fixes' into for-linus · 83fd5ddc
      Jiri Kosina authored
      - Wacom: recognize PEN application collection properly, from Jason Gerecke
      - RMI: avoid cofusion caused by RMI functions being by mistake called on
        non-RMI devices, from Andrew Duggan
      - small device-ID-specific quirks/fixes
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      83fd5ddc
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 37cb8e1f
      Linus Torvalds authored
      Pull DeviceTree updates from Rob Herring:
       "A bigger diffstat than usual with the kbuild changes and a tree wide
        fix in the binding documentation.
      
        Summary:
      
         - kbuild cleanups and improvements for dtbs
      
         - Code clean-up of overlay code and fixing for some long standing
           memory leak and race condition in applying overlays
      
         - Improvements to DT memory usage making sysfs/kobjects optional and
           skipping unflattening of disabled nodes. This is part of kernel
           tinification efforts.
      
         - Final piece of removing storing the full path for every DT node.
           The prerequisite conversion of printk's to use device_node format
           specifier happened in 4.14.
      
         - Sync with current upstream dtc. This brings additional checks to
           dtb compiling.
      
         - Binding doc tree wide removal of leading 0s from examples
      
         - RTC binding documentation adding missing devices and some
           consolidation of duplicated bindings
      
         - Vendor prefix documentation for nutsboard, Silicon Storage
           Technology, shimafuji, Tecon Microprocessor Technologies, DH
           electronics GmbH, Opal Kelly, and Next Thing"
      
      * tag 'devicetree-for-4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (55 commits)
        dt-bindings: usb: add #phy-cells to usb-nop-xceiv
        dt-bindings: Remove leading zeros from bindings notation
        kbuild: handle dtb-y and CONFIG_OF_ALL_DTBS natively in Makefile.lib
        MIPS: dts: remove bogus bcm96358nb4ser.dtb from dtb-y entry
        kbuild: clean up *.dtb and *.dtb.S patterns from top-level Makefile
        .gitignore: move *.dtb and *.dtb.S patterns to the top-level .gitignore
        .gitignore: sort normal pattern rules alphabetically
        dt-bindings: add vendor prefix for Next Thing Co.
        scripts/dtc: Update to upstream version v1.4.5-6-gc1e55a5513e9
        of: dynamic: fix memory leak related to properties of __of_node_dup
        of: overlay: make pr_err() string unique
        of: overlay: pr_err from return NOTIFY_OK to overlay apply/remove
        of: overlay: remove unneeded check for NULL kbasename()
        of: overlay: remove a dependency on device node full_name
        of: overlay: simplify applying symbols from an overlay
        of: overlay: avoid race condition between applying multiple overlays
        of: overlay: loosen overly strict phandle clash check
        of: overlay: expand check of whether overlay changeset can be removed
        of: overlay: detect cases where device tree may become corrupt
        of: overlay: minor restructuring
        ...
      37cb8e1f