28 Jul, 2016

2 commits


11 Jul, 2016

1 commit


08 Jul, 2016

1 commit


07 Jul, 2016

3 commits


28 Jun, 2016

2 commits

  • The usage Confidence is mandary to Windows Precision Touchpad devices. If
    it is examined in input_mapping on a WIndows Precision Touchpad, a new add
    quirk MT_QUIRK_CONFIDENCE desgned for such devices will be applied to the
    device. A touch with the confidence bit is not set is determined as
    invalid.

    Tested on Dell XPS13 9343

    Cc: stable@vger.kernel.org # v4.5+
    Reviewed-by: Benjamin Tissoires
    Tested-by: Andy Lutomirski # XPS 13 9350, BIOS 1.4.3
    Signed-off-by: Allen Hung
    Signed-off-by: Jiri Kosina

    Allen Hung
     
  • This reverts commit 25a84db15b3f ("HID: multitouch: enable palm rejection
    if device implements confidence usage")

    The commit enables palm rejection for Win8 Precision Touchpad devices but
    the quirk MT_QUIRK_VALID_IS_CONFIDENCE it is using is not working very
    properly. This quirk is originally designed for some WIn7 touchscreens. Use
    of this for a Win8 Precision Touchpad will cause unexpected pointer jumping
    problem.

    Cc: stable@vger.kernel.org # v4.5+
    Reviewed-by: Benjamin Tissoires
    Tested-by: Andy Lutomirski # XPS 13 9350, BIOS 1.4.3
    Signed-off-by: Allen Hung
    Signed-off-by: Jiri Kosina

    Allen Hung
     

24 Jun, 2016

1 commit


23 Jun, 2016

5 commits


21 Jun, 2016

1 commit

  • Add i2c_hid_shutdown for i2c-hid driver to send suspend cmd & free
    irq before device shutdown.

    Some HW design (i.e. Umaro, a chromebook model) is that the power to
    i2c hid device won't down after device shutdown. Also the i2c-hid driver
    do not send suspend cmd to the hid i2c device and free its irq before
    shutdown.So if We touch the touchscreen or some other i2c hid device,
    the power consumtion will be go up even when the device is in shutdown
    state.

    Though the root cause maybe a HW issue. But it seems that it is a
    good pratice to set power sleep for i2c-hid device before shutdown.

    Signed-off-by: Guohua Zhong
    Acked-By: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Guohua Zhong
     

20 Jun, 2016

3 commits


18 Jun, 2016

4 commits


06 Jun, 2016

1 commit

  • i2c-hid devices' suspend/resume are usually time-consuming process.
    For example, the touch controller(i2c-ATML1000:00) on ASUS T100 tablet
    takes about 160ms for suspending and 120ms for resuming. This patch
    enables i2c-hid devices to suspend/resume asynchronously. This will
    take advantage of multicore and speed up system suspend/resume process.

    Signed-off-by: Zhonghui Fu
    Acked-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Fu, Zhonghui
     

01 Jun, 2016

3 commits

  • Many devices use userspace bluetooth stacks like BlueZ or Bluedroid in combination
    with uhid. If any of these stacks is used with a HID device for which the driver
    performs a HID request as part .probe (or technically another HID operation),
    this results in a deadlock situation. The deadlock results in a 5 second timeout
    for I/O operations in HID drivers, so isn't fatal, but none of the I/O operations
    have a chance of succeeding.

    The root cause for the problem is that uhid only allows for one request to be
    processed at a time per uhid instance and locks out other operations. This means
    that if a user space is creating a new HID device through 'UHID_CREATE', which
    ultimately triggers '.probe' through the HID layer. Then any HID request e.g. a
    read for calibration data would trigger a HID operation on uhid again, but it
    won't go out to userspace, because it is still stuck in UHID_CREATE.
    In addition bluetooth stacks are typically single threaded, so they wouldn't be
    able to handle any requests while waiting on uhid.

    Lucikly the UHID spec is somewhat flexible and allows for fixing the issue,
    without breaking user space. The idea which the patch implements as discussed
    with David Herrmann is to decouple adding of a hid device (which triggers .probe)
    from UHID_CREATE. The work will kick off roughly once UHID_CREATE completed (or
    else will wait a tiny bit of time in .probe for a lock). A HID driver has to call
    HID to call 'hid_hw_start()' as part of .probe once it is ready for I/O, which
    triggers UHID_START to user space. Any HID operations should function now within
    .probe and won't deadlock because userspace is stuck on UHID_CREATE.

    We verified this patch on Bluedroid with Android 6.0 and on desktop Linux with
    BlueZ stacks. Prior to the patch they had the deadlock issue.

    [jkosina@suse.cz: reword subject]
    Signed-off-by: Roderick Colenbrander
    Cc: stable@vger.kernel.org
    Signed-off-by: Jiri Kosina

    Roderick Colenbrander
     
  • The firmware found in the touch screen of an SP3 is buggy and may miss
    to send lift off reports for contacts. Try to work around that issue by
    using MT_QUIRK_NOT_SEEN_MEANS_UP.

    based on a patch from: Daniel Martin

    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     
  • Flushing a work that reschedules itself is not a sensible operation. It needs
    to be killed. Failure to do so leads to a kernel panic in the timer code.

    CC: stable@vger.kernel.org
    Signed-off-by: Oliver Neukum
    Reviewed-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Oliver Neukum
     

17 May, 2016

3 commits


03 May, 2016

2 commits

  • Commit 7e12978 ("HID: wacom: break out wacom_intuos_get_tool_type") by accident
    removed stylus_in_proximity flag for Intuos series while shuffling the code
    around.

    Fix that by reintroducing that flag setting in wacom_intuos_inout(), where
    it originally was.

    Fixes: 7e12978 ("HID: wacom: break out wacom_intuos_get_tool_type")
    Signed-off-by: Ping Cheng
    Signed-off-by: Jiri Kosina

    Ping Cheng
     
  • The fuzz present on the distance and tilt axes is noticable when a puck is
    present, and userspace (specifically libinput) would like the ability to
    filter out the noise. To facilitate this, we assign a fuzz value of '1'
    for the distance and tilt axes. This is large enough to cover most of the
    natural variation in distance value as the puck is moved around, and
    enough to cover the jitter in rotation (reported through tilt axes) when
    the puck is left alone.

    Signed-off-by: Jason Gerecke
    Signed-off-by: Jiri Kosina

    Jason Gerecke
     

27 Apr, 2016

1 commit

  • These devices feature multiple interfaces/endpoints: a legacy BIOS/boot
    interface (endpoint 0x81), as well as 2 corsair-specific keyboard interfaces
    (endpoint 0x82, 0x83 IN/0x03 OUT) and an RGB LED control interface (endpoint
    0x84 IN/0x04 OUT)

    Because the extra 3 interfaces are not of subclass USB_INTERFACE_SUBCLASS_BOOT,
    HID_QUIRK_NOGET is not automatically set on them and a 10s timeout per-endpoint
    (30s per device) occurs initialising reports on boot. We configure
    HID_QUIRK_NO_INIT_REPORTS for these devices.

    Additionally the left-side G1-G18 macro keys on the K95RGB generate output on
    the un-opened 0x82/0x83 endpoints which causes the keyboard to stop responding
    waiting for this event to be collected. We enable HID_QUIRK_ALWAYS_POLL to
    prevent this situation from occurring.

    Signed-off-by: Trent Lloyd
    Tested-by: SUGNIAUX Wilfried
    Signed-off-by: Jiri Kosina

    Trent Lloyd
     

25 Apr, 2016

2 commits


18 Apr, 2016

2 commits


13 Apr, 2016

1 commit


12 Apr, 2016

1 commit

  • Pull HID fixes from Jiri Kosina:

    - fix for how scaling linearization is computed in wiimote driver, by
    Cyan Ogilvie

    - endless retry loop fix in generic USB HID core reset-resume handling,
    by Alan Stern

    - two functional fixes affecting particular devices, and oops fix for
    wacom driver, by Jason Gerecke

    - multitouch slot numbering fix from Gabriele Mazzotta

    - a couple more small fixes on top

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: wacom: Support switching from vendor-defined device mode on G9 and G11
    HID: wacom: Initialize hid_data.inputmode to -1
    HID: microsoft: add support for 3 more devices
    HID: multitouch: Synchronize MT frame on reset_resume
    HID: wacom: fix Bamboo ONE oops
    HID: lenovo: Don't use stack variables for DMA buffers
    HID: usbhid: fix inconsistent reset/resume/reset-resume behavior
    HID: wiimote: Fix wiimote mp scale linearization

    Linus Torvalds
     

07 Apr, 2016

1 commit

  • The 'size' variable is not really needed, and we can also shift constant
    in the loop body when masking off existing bits.

    Also we do not have to use 64 bit calculations if we take an extra
    branch.

    [jkosina@suse.cz: fix a small error in changelog]
    Suggested-by: Doug Anderson
    Signed-off-by: Dmitry Torokhov
    Reviewed-by: Douglas Anderson
    Signed-off-by: Jiri Kosina

    Dmitry Torokhov