29 Jul, 2020

2 commits

  • [ Upstream commit 966334dfc472bdfa67bed864842943b19755d192 ]

    This moves the wakeup increment for elan devices to the touch report.
    This prevents the drivers from incorrectly reporting a wakeup when the
    resume callback resets then device, which causes an interrupt to
    occur.

    Signed-off-by: Derek Basehore
    Link: https://lore.kernel.org/r/20200706235046.1984283-1-dbasehore@chromium.org
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sasha Levin

    Derek Basehore
     
  • [ Upstream commit dcb00fc799dc03fd320e123e4c81b3278c763ea5 ]

    Tested on my own laptop, touchpad feels slightly more responsive with
    this on, though it might just be placebo.

    Signed-off-by: Ilya Katsnelson
    Reviewed-by: Lyude Paul
    Link: https://lore.kernel.org/r/20200703143457.132373-1-me@0upti.me
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sasha Levin

    Ilya Katsnelson
     

17 Jun, 2020

1 commit

  • [ Upstream commit 642aa86eaf8f1e6fe894f20fd7f12f0db52ee03c ]

    The Lenovo Thinkpad T470s I own has a different touchpad with "LEN007a"
    instead of the already included PNP ID "LEN006c". However, my touchpad
    seems to work well without any problems using RMI. So this patch adds the
    other PNP ID.

    Signed-off-by: Dennis Kadioglu
    Link: https://lore.kernel.org/r/ff770543cd53ae818363c0fe86477965@mail.eclipso.de
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Sasha Levin

    Dennis Kadioglu
     

01 Apr, 2020

1 commit

  • commit 1369d0abe469fb4cdea8a5bce219d38cb857a658 upstream.

    This laptop (and perhaps other variants of the same model) reports an
    SMBus-capable Synaptics touchpad. Everything (including suspend and
    resume) works fine when RMI is enabled via the kernel command line, so
    let's add it to the whitelist.

    Signed-off-by: Yussuf Khalil
    Link: https://lore.kernel.org/r/20200307213508.267187-1-dev@pp3345.net
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Yussuf Khalil
     

20 Feb, 2020

3 commits

  • commit 5179a9dfa9440c1781816e2c9a183d1d2512dc61 upstream.

    The Yoga 11e is using LEN0049, but it doesn't have a trackstick.

    Thus, there is no need to create a software top buttons row.

    However, it seems that the device works under SMBus, so keep it as part
    of the smbus_pnp_ids.

    Signed-off-by: Benjamin Tissoires
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200115013023.9710-1-benjamin.tissoires@redhat.com
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Benjamin Tissoires
     
  • commit b8a3d819f872e0a3a0a6db0dbbcd48071042fb98 upstream.

    Add touchpad LEN2044 to the list, as it is capable of working with
    psmouse.synaptics_intertouch=1

    Signed-off-by: Gaurav Agrawal
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/CADdtggVzVJq5gGNmFhKSz2MBwjTpdN5YVOdr4D3Hkkv=KZRc9g@mail.gmail.com
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Gaurav Agrawal
     
  • commit bf502391353b928e63096127e5fd8482080203f5 upstream.

    This supports RMI4 and everything seems to work, including the touchpad
    buttons. So, let's enable this by default.

    Signed-off-by: Lyude Paul
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200204194322.112638-1-lyude@redhat.com
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Lyude Paul
     

13 Dec, 2019

1 commit

  • commit fc1156f373e3927e0dcf06678906c367588bfdd6 upstream.

    Some Lenovo X1 Carbon Gen 6 laptops report LEN0091. Add this
    to the smbus_pnp_ids list.

    Signed-off-by: Hans Verkuil
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20191119105118.54285-2-hverkuil-cisco@xs4all.nl
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Greg Kroah-Hartman

    Hans Verkuil
     

23 Nov, 2019

2 commits

  • Pull input fix from Dmitry Torokhov:
    "Just a single revert as RMI mode should not have been enabled for this
    model [yet?]"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Revert "Input: synaptics - enable RMI mode for X1 Extreme 2nd Generation"

    Linus Torvalds
     
  • This reverts commit 68b9c5066e39af41d3448abfc887c77ce22dd64d.

    Ugh, I really dropped the ball on this one :\. So as it turns out RMI4
    works perfectly fine on the X1 Extreme Gen 2 except for one thing I
    didn't notice because I usually use the trackpoint: clicking with the
    touchpad. Somehow this is broken, in fact we don't even seem to indicate
    BTN_LEFT as a valid event type for the RMI4 touchpad. And, I don't even
    see any RMI4 events coming from the touchpad when I press down on it.
    This only seems to work for PS/2 mode.

    Since that means we have a regression, and PS/2 mode seems to work fine
    for the time being - revert this for now. We'll have to do a more
    thorough investigation on this.

    Signed-off-by: Lyude Paul
    Link: https://lore.kernel.org/r/20191119234534.10725-1-lyude@redhat.com
    Signed-off-by: Dmitry Torokhov

    Lyude Paul
     

16 Nov, 2019

2 commits

  • Pull more input fixes from Dmitry Torokhov:
    "A couple of fixes in driver teardown paths and another ID for
    Synaptics RMI mode"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: synaptics - enable RMI mode for X1 Extreme 2nd Generation
    Input: synaptics-rmi4 - destroy F54 poller workqueue when removing
    Input: ff-memless - kill timer in destroy()

    Linus Torvalds
     
  • Just got one of these for debugging some unrelated issues, and noticed
    that Lenovo seems to have gone back to using RMI4 over smbus with
    Synaptics touchpads on some of their new systems, particularly this one.
    So, let's enable RMI mode for the X1 Extreme 2nd Generation.

    Signed-off-by: Lyude Paul
    Link: https://lore.kernel.org/r/20191115221814.31903-1-lyude@redhat.com
    Signed-off-by: Dmitry Torokhov

    Lyude Paul
     

18 Oct, 2019

1 commit

  • Pull input fixes from Dmitry Torokhov:
    "The main change is that we are reverting blanket enablement of SMBus
    mode for devices with Elan touchpads that report BIOS release date as
    2018+ because there are older boxes with updated BIOSes that still do
    not work well in SMbus mode.

    We will have to establish whitelist for SMBus mode it looks like"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Revert "Input: elantech - enable SMBus on new (2018+) systems"
    Input: synaptics-rmi4 - avoid processing unknown IRQs
    Input: soc_button_array - partial revert of support for newer surface devices
    Input: goodix - add support for 9-bytes reports
    Input: da9063 - fix capability and drop KEY_SLEEP

    Linus Torvalds
     

16 Oct, 2019

1 commit

  • This reverts commit 883a2a80f79ca5c0c105605fafabd1f3df99b34c.

    Apparently use dmi_get_bios_year() as manufacturing date isn't accurate
    and this breaks older laptops with new BIOS update.

    So let's revert this patch.

    There are still new HP laptops still need to use SMBus to support all
    features, but it'll be enabled via a whitelist.

    Signed-off-by: Kai-Heng Feng
    Acked-by: Benjamin Tissoires
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20191001070845.9720-1-kai.heng.feng@canonical.com
    Signed-off-by: Dmitry Torokhov

    Kai-Heng Feng
     

20 Sep, 2019

1 commit

  • Pull input updates from Dmitry Torokhov:

    - input core allows hardware drivers to specify a [more precise]
    timestamp (normally taken in top half) to better track velocity of
    contacts

    - input_dev instances now support "polling" mode so that drivers could
    use the same object for polled and interrupt-driven operation. The
    plan is to convert existing drivers and retire input_polled_dev API

    - a new driver for the FlySky FS-iA6B RC receiver

    - a refresh of BU21013 touchpad driver

    - w90x900 keyboard and touchpad drivers are removed as the platform is
    gone

    - assorted fixes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (45 commits)
    Input: sidewinder - make array seq static const, makes object smaller
    Input: reset device timestamp on sync
    Input: bu21013_ts - switch to using standard touchscreen properties
    Input: bu21013_ts - switch to using MT-B (slotted) protocol
    Input: bu21013_ts - fix suspend when wake source
    Input: bu21013_ts - use interrupt from I2C client
    Input: bu21013_ts - remove support for platform data
    Input: bu21013_ts - convert to using managed resources
    Input: bu21013_ts - remove useless comments
    Input: bu21013_ts - annotate supend/resume methods as __maybe_unused
    Input: bu21013_ts - rename some variables
    Input: bu21013_ts - convert to use GPIO descriptors
    ARM: ux500: improve BU21013 touchpad bindings
    Input: i8042 - enable wakeup on a stable struct device
    Input: soc_button_array - use platform_device_register_resndata()
    Input: psmouse - drop all unneeded functions from mouse headers
    Input: add support for polling to input devices
    Input: wacom_w8001 - allocate additional space for 'phys'
    Input: cros_ec_keyb - add back missing mask for event_type
    Input: remove dev_err() usage after platform_get_irq()
    ...

    Linus Torvalds
     

28 Aug, 2019

1 commit


21 Aug, 2019

1 commit

  • Recently we had a building error if we enable the MOUSE_PS2_ALPS while
    disable the MOUSE_PS2_TRACKPOINT, and was fixed by 49e6979e7e92
    ("Input: psmouse - fix build error of multiple definition").

    We could improve that fix by dropping all unneeded functions and
    CONFIG_MOUSE_ guards from the header, it is safe to do that since
    those functions are not directly called by psmouse-base.c anymore.

    Signed-off-by: Hui Wang
    Signed-off-by: Dmitry Torokhov

    Hui Wang
     

15 Aug, 2019

1 commit

  • We don't need dev_err() messages when platform_get_irq() fails now that
    platform_get_irq() prints an error message itself when something goes
    wrong. Let's remove these prints with a simple semantic patch.

    //
    @@
    expression ret;
    struct platform_device *E;
    @@

    ret =
    (
    platform_get_irq(E, ...)
    |
    platform_get_irq_byname(E, ...)
    );

    if ( \( ret < 0 \| ret

    While we're here, remove braces on if statements that only have one
    statement (manually).

    Signed-off-by: Stephen Boyd
    Signed-off-by: Dmitry Torokhov

    Stephen Boyd
     

12 Aug, 2019

1 commit


10 Aug, 2019

1 commit


25 Jul, 2019

1 commit

  • The 2016 kabylake HP Spectre X360 (model number 13-w013dx) works much better
    with psmouse.synaptics_intertouch=1 kernel parameter, so let's enable RMI4
    mode automatically.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204115
    Reported-by: Nate Graham
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     

24 Jul, 2019

4 commits


23 Jul, 2019

1 commit

  • There are some new HP laptops with Elantech touchpad that don't support
    multitouch.

    Currently we use ETP_NEW_IC_SMBUS_HOST_NOTIFY() to check if SMBus is supported,
    but in addition to firmware version, the bus type also informs us whether the IC
    can support SMBus. To avoid breaking old ICs, we will only enable SMbus support
    based the bus type on systems manufactured after 2018.

    Lastly, let's consolidate all checks into elantech_use_host_notify() and use it
    to determine whether to use PS/2 or SMBus.

    Signed-off-by: Kai-Heng Feng
    Acked-by: Benjamin Tissoires
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov

    Kai-Heng Feng
     

20 Jul, 2019

1 commit


19 Jul, 2019

2 commits

  • In the function alps_is_cs19_trackpoint(), we check if the param[1] is
    in the 0x20~0x2f range, but the code we wrote for this checking is not
    correct:
    (param[1] & 0x20) does not mean param[1] is in the range of 0x20~0x2f,
    it also means the param[1] is in the range of 0x30~0x3f, 0x60~0x6f...

    Now fix it with a new condition checking ((param[1] & 0xf0) == 0x20).

    Fixes: 7e4935ccc323 ("Input: alps - don't handle ALPS cs19 trackpoint-only device")
    Cc: stable@vger.kernel.org
    Signed-off-by: Hui Wang
    Signed-off-by: Dmitry Torokhov

    Hui Wang
     
  • trackpoint_detect() should be static inline while
    CONFIG_MOUSE_PS2_TRACKPOINT is not set, otherwise, we build fails:

    drivers/input/mouse/alps.o: In function `trackpoint_detect':
    alps.c:(.text+0x8e00): multiple definition of `trackpoint_detect'
    drivers/input/mouse/psmouse-base.o:psmouse-base.c:(.text+0x1b50): first defined here

    Reported-by: Hulk Robot
    Fixes: 55e3d9224b60 ("Input: psmouse - allow disabing certain protocol extensions")
    Signed-off-by: YueHaibing
    Signed-off-by: Dmitry Torokhov

    YueHaibing
     

16 Jul, 2019

3 commits

  • On a latest Lenovo laptop, the trackpoint and 3 buttons below it
    don't work at all, when we move the trackpoint or press those 3
    buttons, the kernel will print out:
    "Rejected trackstick packet from non DualPoint device"

    This device is identified as an alps touchpad but the packet has
    trackpoint format, so the alps.c drops the packet and prints out
    the message above.

    According to XiaoXiao's explanation, this device is named cs19 and
    is trackpoint-only device, its firmware is only for trackpoint, it
    is independent of touchpad and is a device completely different from
    DualPoint ones.

    To drive this device with mininal changes to the existing driver, we
    just let the alps driver not handle this device, then the trackpoint.c
    will be the driver of this device if the trackpoint driver is enabled.
    (if not, this device will fallback to a bare PS/2 device)

    With the trackpoint.c, this trackpoint and 3 buttons all work well,
    they have all features that the trackpoint should have, like
    scrolling-screen, drag-and-drop and frame-selection.

    Signed-off-by: XiaoXiao Liu
    Signed-off-by: Hui Wang
    Reviewed-by: Pali Rohár
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov

    Hui Wang
     
  • Sync up with mainline to resolve conflicts in iforce driver.

    Dmitry Torokhov
     
  • Probable cut&paste typo - use the correct field size.

    Signed-off-by: Joe Perches
    Signed-off-by: Dmitry Torokhov

    Joe Perches
     

12 Jul, 2019

1 commit


11 Jul, 2019

1 commit


01 Jul, 2019

1 commit

  • Thinkpad t480 laptops had some touchpad features disabled, resulting in the
    loss of pinch to activities in GNOME, on wayland, and other touch gestures
    being slower. This patch adds the touchpad of the t480 to the smbus_pnp_ids
    whitelist to enable the extra features. In my testing this does not break
    suspend (on fedora, with wayland, and GNOME, using the rc-6 kernel), while
    also fixing the feature on a T480.

    Signed-off-by: Cole Rogers
    Acked-by: Benjamin Tissoires
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov

    Cole Rogers
     

30 Jun, 2019

1 commit

  • Elan_i2c and hid-quirks work in conjunction to decide which devices each
    driver will handle. Elan_i2c has a whitelist of devices that should be
    consumed by hid-quirks so that there is one master list of devices to
    handoff between the drivers. Put the ids in a header file so that
    hid-quirks can consume it instead of duplicating the list.

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

    Jeffrey Hugo
     

22 Jun, 2019

1 commit

  • Pull still more SPDX updates from Greg KH:
    "Another round of SPDX updates for 5.2-rc6

    Here is what I am guessing is going to be the last "big" SPDX update
    for 5.2. It contains all of the remaining GPLv2 and GPLv2+ updates
    that were "easy" to determine by pattern matching. The ones after this
    are going to be a bit more difficult and the people on the spdx list
    will be discussing them on a case-by-case basis now.

    Another 5000+ files are fixed up, so our overall totals are:
    Files checked: 64545
    Files with SPDX: 45529

    Compared to the 5.1 kernel which was:
    Files checked: 63848
    Files with SPDX: 22576

    This is a huge improvement.

    Also, we deleted another 20000 lines of boilerplate license crud,
    always nice to see in a diffstat"

    * tag 'spdx-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx: (65 commits)
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 507
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 506
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 505
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 504
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 503
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 502
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 501
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 498
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 496
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 495
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 491
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 490
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 489
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 488
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 487
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 486
    treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 485
    ...

    Linus Torvalds
     

20 Jun, 2019

1 commit

  • Pull input updates from Dmitry Torokhov:
    "Just a few small fixups and switching a couple of Thinkpads to SMBus
    for touchpads as PS/2 emulation is not working well"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: synaptics - enable SMBus on ThinkPad E480 and E580
    Input: imx_keypad - make sure keyboard can always wake up system
    Input: iqs5xx - get axis info before calling input_mt_init_slots()
    Input: uinput - add compat ioctl number translation for UI_*_FF_UPLOAD
    Input: silead - add MSSL0017 to acpi_device_id
    Input: elantech - enable middle button support on 2 ThinkPads
    Input: elan_i2c - increment wakeup count if wake source

    Linus Torvalds
     

19 Jun, 2019

1 commit

  • Based on 2 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 version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

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

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

    Thomas Gleixner
     

13 Jun, 2019

1 commit

  • They are capable of using intertouch and it works well with
    psmouse.synaptics_intertouch=1, so add them to the list.

    Without it, scrolling and gestures are jumpy, three-finger pinch gesture
    doesn't work and three- or four-finger swipes sometimes get stuck.

    Signed-off-by: Alexander Mikhaylenko
    Reviewed-by: Benjamin Tissoires
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov

    Alexander Mikhaylenko