31 Mar, 2020

1 commit

  • Pull driver core updates from Greg KH:
    "Here is the "big" set of driver core changes for 5.7-rc1.

    Nothing huge in here, just lots of little firmware core changes and
    use of new apis, a libfs fix, a debugfs api change, and some driver
    core deferred probe rework.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'driver-core-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (44 commits)
    Revert "driver core: Set fw_devlink to "permissive" behavior by default"
    driver core: Set fw_devlink to "permissive" behavior by default
    driver core: Replace open-coded list_last_entry()
    driver core: Read atomic counter once in driver_probe_done()
    libfs: fix infoleak in simple_attr_read()
    driver core: Add device links from fwnode only for the primary device
    platform/x86: touchscreen_dmi: Add info for the Chuwi Vi8 Plus tablet
    platform/x86: touchscreen_dmi: Add EFI embedded firmware info support
    Input: icn8505 - Switch to firmware_request_platform for retreiving the fw
    Input: silead - Switch to firmware_request_platform for retreiving the fw
    selftests: firmware: Add firmware_request_platform tests
    test_firmware: add support for firmware_request_platform
    firmware: Add new platform fallback mechanism and firmware_request_platform()
    Revert "drivers: base: power: wakeup.c: Use built-in RCU list checking"
    drivers: base: power: wakeup.c: Use built-in RCU list checking
    component: allow missing unbind callback
    debugfs: remove return value of debugfs_create_file_size()
    debugfs: Check module state before warning in {full/open}_proxy_open()
    firmware: fix a double abort case with fw_load_sysfs_fallback
    arch_topology: Fix putting invalid cpu clk
    ...

    Linus Torvalds
     

27 Mar, 2020

2 commits

  • Pull input fixes from Dmitry Torokhov:

    - a fix to generate proper timestamps on key autorepeat events that
    were broken recently

    - a fix for Synaptics driver to only activate reduced reporting mode
    when explicitly requested

    - a new keycode for "selective screenshot" function

    - other assorted fixes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: fix stale timestamp on key autorepeat events
    Input: move the new KEY_SELECTIVE_SCREENSHOT keycode
    Input: avoid BIT() macro usage in the serio.h UAPI header
    Input: synaptics-rmi4 - set reduced reporting mode only when requested
    Input: synaptics - enable RMI on HP Envy 13-ad105ng
    Input: allocate keycode for "Selective Screenshot" key
    Input: tm2-touchkey - add support for Coreriver TC360 variant
    dt-bindings: input: add Coreriver TC360 binding
    dt-bindings: vendor-prefixes: Add Coreriver vendor prefix
    Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()

    Linus Torvalds
     
  • We need to refresh timestamp when emitting key autorepeat events, otherwise
    they will carry timestamp of the original key press event.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=206929
    Fixes: 3b51c44bd693 ("Input: allow drivers specify timestamp for input events")
    Cc: stable@vger.kernel.org
    Reported-by: teika kazura
    Tested-by: teika kazura
    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     

25 Mar, 2020

2 commits

  • The previous patch "c5ccf2ad3d33 (Input: synaptics-rmi4 - switch to
    reduced reporting mode)" enabled reduced reporting mode unintentionally
    on some devices, if the firmware was configured with default Delta X/Y
    threshold values. The result unintentionally degrade the performance of
    some touchpads.

    This patch checks to see that the driver is modifying the delta X/Y
    thresholds before modifying the reporting mode.

    Signed-off-by: Andrew Duggan
    Fixes: c5ccf2ad3d33 ("Input: synaptics-rmi4 - switch to reduced reporting mode")
    Link: https://lore.kernel.org/r/20200312005549.29922-1-aduggan@synaptics.com
    Signed-off-by: Dmitry Torokhov

    Andrew Duggan
     
  • 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

    Yussuf Khalil
     

20 Mar, 2020

2 commits

  • Unfortunately sofar we have been unable to get permission to redistribute
    icn8505 touchscreen firmwares in linux-firmware. This means that people
    need to find and install the firmware themselves before the touchscreen
    will work

    Some UEFI/x86 tablets with an icn8505 touchscreen have a copy of the fw
    embedded in their UEFI boot-services code.

    This commit makes the icn8505 driver use the new firmware_request_platform
    function, which will fallback to looking for such an embedded copy when
    direct filesystem lookup fails. This will make the touchscreen work OOTB
    on devices where there is a fw copy embedded in the UEFI code.

    Acked-by: Dmitry Torokhov
    Signed-off-by: Hans de Goede
    Link: https://lore.kernel.org/r/20200115163554.101315-9-hdegoede@redhat.com
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • Unfortunately sofar we have been unable to get permission to redistribute
    Silead touchscreen firmwares in linux-firmware. This means that people
    need to find and install the firmware themselves before the touchscreen
    will work

    Some UEFI/x86 tablets with a Silead touchscreen have a copy of the fw
    embedded in their UEFI boot-services code.

    This commit makes the silead driver use the new firmware_request_platform
    function, which will fallback to looking for such an embedded copy when
    direct filesystem lookup fails. This will make the touchscreen work OOTB
    on devices where there is a fw copy embedded in the UEFI code.

    Acked-by: Dmitry Torokhov
    Signed-off-by: Hans de Goede
    Link: https://lore.kernel.org/r/20200115163554.101315-8-hdegoede@redhat.com
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

07 Mar, 2020

2 commits


16 Feb, 2020

1 commit

  • Pull input updates from Dmitry Torokhov:

    - a few drivers have been updated to use flexible-array syntax instead
    of GCC extension

    - ili210x touchscreen driver now supports the 2120 protocol flavor

    - a couple more of Synaptics devices have been switched over to RMI4

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: cyapa - replace zero-length array with flexible-array member
    Input: tca6416-keypad - replace zero-length array with flexible-array member
    Input: gpio_keys_polled - replace zero-length array with flexible-array member
    Input: synaptics - remove the LEN0049 dmi id from topbuttonpad list
    Input: synaptics - enable SMBus on ThinkPad L470
    Input: synaptics - switch T470s to RMI4 by default
    Input: gpio_keys - replace zero-length array with flexible-array member
    Input: goldfish_events - replace zero-length array with flexible-array member
    Input: psmouse - switch to using i2c_new_scanned_device()
    Input: ili210x - add ili2120 support
    Input: ili210x - fix return value of is_visible function

    Linus Torvalds
     

15 Feb, 2020

3 commits

  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Link: https://lore.kernel.org/r/20200214172132.GA28389@embeddedor
    Signed-off-by: Dmitry Torokhov

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Link: https://lore.kernel.org/r/20200214172022.GA27490@embeddedor
    Signed-off-by: Dmitry Torokhov

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Link: https://lore.kernel.org/r/20200214171907.GA26588@embeddedor
    Signed-off-by: Dmitry Torokhov

    Gustavo A. R. Silva
     

14 Feb, 2020

5 commits

  • 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

    Benjamin Tissoires
     
  • 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

    Gaurav Agrawal
     
  • 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

    Lyude Paul
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Link: https://lore.kernel.org/r/20200213002600.GA31916@embeddedor.com
    Signed-off-by: Dmitry Torokhov

    Gustavo A. R. Silva
     
  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Link: https://lore.kernel.org/r/20200213002430.GA31056@embeddedor.com
    Signed-off-by: Dmitry Torokhov

    Gustavo A. R. Silva
     

11 Feb, 2020

3 commits

  • Move from the deprecated i2c_new_probed_device() to the new
    i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.

    Signed-off-by: Wolfram Sang
    Link: https://lore.kernel.org/r/20200210165902.5250-1-wsa+renesas@sang-engineering.com
    Signed-off-by: Dmitry Torokhov

    Wolfram Sang
     
  • This adds support for the Ilitek ili2120 touchscreen found in the
    Fairphone 2 smartphone.

    Signed-off-by: Luca Weiss
    Link: https://lore.kernel.org/r/20200209151904.661210-1-luca@z3ntu.xyz
    Signed-off-by: Dmitry Torokhov

    Luca Weiss
     
  • The is_visible function expects the permissions associated with an
    attribute of the sysfs group or 0 if an attribute is not visible.

    Change the code to return the attribute permissions when the attribute
    should be visible which resolves the warning:

    Attribute calibrate: Invalid permissions 01

    Fixes: cc12ba1872c6 ("Input: ili210x - optionally show calibrate sysfs attribute")
    Signed-off-by: Luca Weiss
    Reviewed-by: Sven Van Asbroeck
    Link: https://lore.kernel.org/r/20200209145628.649409-1-luca@z3ntu.xyz
    Signed-off-by: Dmitry Torokhov

    Luca Weiss
     

04 Feb, 2020

3 commits

  • Merge more updates from Andrew Morton:
    "The rest of MM and the rest of everything else: hotfixes, ipc, misc,
    procfs, lib, cleanups, arm"

    * emailed patches from Andrew Morton : (67 commits)
    ARM: dma-api: fix max_pfn off-by-one error in __dma_supported()
    treewide: remove redundant IS_ERR() before error code check
    include/linux/cpumask.h: don't calculate length of the input string
    lib: new testcases for bitmap_parse{_user}
    lib: rework bitmap_parse()
    lib: make bitmap_parse_user a wrapper on bitmap_parse
    lib: add test for bitmap_parse()
    bitops: more BITS_TO_* macros
    lib/string: add strnchrnul()
    proc: convert everything to "struct proc_ops"
    proc: decouple proc from VFS with "struct proc_ops"
    asm-generic/tlb: provide MMU_GATHER_TABLE_FREE
    asm-generic/tlb: rename HAVE_MMU_GATHER_NO_GATHER
    asm-generic/tlb: rename HAVE_MMU_GATHER_PAGE_SIZE
    asm-generic/tlb: rename HAVE_RCU_TABLE_FREE
    asm-generic/tlb: add missing CONFIG symbol
    asm-gemeric/tlb: remove stray function declarations
    asm-generic/tlb: avoid potential double flush
    mm/mmu_gather: invalidate TLB correctly on batch allocation failure and flush
    powerpc/mmu_gather: enable RCU_TABLE_FREE even for !SMP case
    ...

    Linus Torvalds
     
  • The most notable change is DEFINE_SHOW_ATTRIBUTE macro split in
    seq_file.h.

    Conversion rule is:

    llseek => proc_lseek
    unlocked_ioctl => proc_ioctl

    xxx => proc_xxx

    delete ".owner = THIS_MODULE" line

    [akpm@linux-foundation.org: fix drivers/isdn/capi/kcapi_proc.c]
    [sfr@canb.auug.org.au: fix kernel/sched/psi.c]
    Link: http://lkml.kernel.org/r/20200122180545.36222f50@canb.auug.org.au
    Link: http://lkml.kernel.org/r/20191225172546.GB13378@avx2
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Pull input updates from Dmitry Torokhov:

    - a driver for SGI IOC3 PS/2 controller

    - updates to driver for FocalTech FT5x06 series touch screen
    controllers

    - other assorted fixes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: synaptics-rmi4 - switch to reduced reporting mode
    dt-bindings: touchscreen: Convert Goodix touchscreen to json-schema
    dt-bindings: touchscreen: Add touchscreen schema
    Input: add IOC3 serio driver
    Input: axp20x-pek - enable wakeup for all AXP variants
    Input: axp20x-pek - respect userspace wakeup configuration
    Input: ads7846 - use new `delay` structure for SPI transfer delays
    Input: edt-ft5x06 - use pm core to enable/disable the wake irq
    Input: edt-ft5x06 - make wakeup-source switchable
    Input: edt-ft5x06 - document wakeup-source capability
    Input: edt-ft5x06 - alphabetical include reorder
    Input: edt-ft5x06 - work around first register access error
    Input: apbps2 - add __iomem to register struct
    Input: axp20x-pek - make device attributes static
    Input: elants_i2c - check Remark ID when attempting firmware update

    Linus Torvalds
     

03 Feb, 2020

1 commit

  • Pull Hyper-V updates from Sasha Levin:

    - Most of the commits here are work to enable host-initiated
    hibernation support by Dexuan Cui.

    - Fix for a warning shown when host sends non-aligned balloon requests
    by Tianyu Lan.

    * tag 'hyperv-next-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
    hv_utils: Add the support of hibernation
    hv_utils: Support host-initiated hibernation request
    hv_utils: Support host-initiated restart request
    Tools: hv: Reopen the devices if read() or write() returns errors
    video: hyperv: hyperv_fb: Use physical memory for fb on HyperV Gen 1 VMs.
    Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)
    video: hyperv_fb: Fix hibernation for the deferred IO feature
    Input: hyperv-keyboard: Add the support of hibernation
    hv_balloon: Balloon up according to request page number

    Linus Torvalds
     

01 Feb, 2020

2 commits


28 Jan, 2020

1 commit


26 Jan, 2020

1 commit

  • Add suspend() and resume() functions so the Hyper-V virtual keyboard
    can participate in VM hibernation.

    Note that the keyboard is a "wakeup" device that could abort an in-progress
    hibernation if there is keyboard event. No attempt is made to suppress this
    behavior. If desired, a sysadmin can disable the keyboard as a wakeup device
    using standard mechanisms such as:

    echo disabled > /sys/bus/vmbus/drivers/hyperv_keyboard/XXX/power/wakeup
    (where XXX is the device's GUID)

    Reviewed-by: Michael Kelley
    Signed-off-by: Dexuan Cui
    Signed-off-by: Sasha Levin

    Dexuan Cui
     

25 Jan, 2020

1 commit

  • Pull input fixes from Dmitry Torokhov:

    - add sanity checks to USB endpoints in various dirvers

    - max77650-onkey was missing an OF table which was preventing module
    autoloading

    - a revert and a different fix for F54 handling in Synaptics dirver

    - a fixup for handling register in pm8xxx vibrator driver

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: pm8xxx-vib - fix handling of separate enable register
    Input: keyspan-remote - fix control-message timeouts
    Input: max77650-onkey - add of_match table
    Input: rmi_f54 - read from FIFO in 32 byte blocks
    Revert "Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers"
    Input: sur40 - fix interface sanity checks
    Input: gtco - drop redundant variable reinit
    Input: gtco - fix extra-descriptor debug message
    Input: gtco - fix endpoint sanity check
    Input: aiptek - use descriptors of current altsetting
    Input: aiptek - fix endpoint sanity check
    Input: pegasus_notetaker - fix endpoint sanity check
    Input: sun4i-ts - add a check for devm_thermal_zone_of_sensor_register
    Input: evdev - convert kzalloc()/vzalloc() to kvzalloc()

    Linus Torvalds
     

23 Jan, 2020

1 commit

  • This patch adds a platform driver for supporting keyboard and mouse
    interface of SGI IOC3 chips.

    Signed-off-by: Thomas Bogendoerfer
    Link: https://lore.kernel.org/r/20200122135220.22354-1-tbogendoerfer@suse.de
    Signed-off-by: Dmitry Torokhov

    Thomas Bogendoerfer
     

22 Jan, 2020

2 commits

  • There are many devices, including several mobile battery-powered
    devices, using other AXP variants as their PMIC. Allow them to use
    the power key as a wakeup source.

    Reviewed-by: Hans de Goede
    Signed-off-by: Samuel Holland
    Link: https://lore.kernel.org/r/20200115051253.32603-3-samuel@sholland.org
    Signed-off-by: Dmitry Torokhov

    Samuel Holland
     
  • Unlike most other power button drivers, this driver unconditionally
    enables its wakeup IRQ. It should be using device_may_wakeup() to
    respect the userspace configuration of wakeup sources.

    Because the AXP20x MFD device uses regmap-irq, the AXP20x PEK IRQs are
    nested off of regmap-irq's threaded interrupt handler. The device core
    ignores such interrupts, so to actually disable wakeup, we must
    explicitly disable all non-wakeup interrupts during suspend.

    Signed-off-by: Samuel Holland
    Reviewed-by: Hans de Goede
    Link: https://lore.kernel.org/r/20200115051253.32603-2-samuel@sholland.org
    Signed-off-by: Dmitry Torokhov

    Samuel Holland
     

21 Jan, 2020

2 commits

  • In a recent change to the SPI subsystem [1], a new `delay` struct was added
    to replace the `delay_usecs`. This change replaces the current
    `delay_usecs` with `delay` for this driver.

    The `spi_transfer_delay_exec()` function [in the SPI framework] makes sure
    that both `delay_usecs` & `delay` are used (in this order to preserve
    backwards compatibility).

    [1] commit bebcfd272df6485 ("spi: introduce `delay` field for
    `spi_transfer` + spi_transfer_delay_exec()")

    Signed-off-by: Alexandru Ardelean
    Link: https://lore.kernel.org/r/20191210141103.15910-1-alexandru.ardelean@analog.com
    Signed-off-by: Dmitry Torokhov

    Alexandru Ardelean
     
  • Setting the vibrator enable_mask is not implemented correctly:

    For regmap_update_bits(map, reg, mask, val) we give in either
    regs->enable_mask or 0 (= no-op) as mask and "val" as value.
    But "val" actually refers to the vibrator voltage control register,
    which has nothing to do with the enable_mask.

    So we usually end up doing nothing when we really wanted
    to enable the vibrator.

    We want to set or clear the enable_mask (to enable/disable the vibrator).
    Therefore, change the call to always modify the enable_mask
    and set the bits only if we want to enable the vibrator.

    Fixes: d4c7c5c96c92 ("Input: pm8xxx-vib - handle separate enable register")
    Signed-off-by: Stephan Gerhold
    Link: https://lore.kernel.org/r/20200114183442.45720-1-stephan@gerhold.net
    Signed-off-by: Dmitry Torokhov

    Stephan Gerhold
     

17 Jan, 2020

4 commits

  • The driver was issuing synchronous uninterruptible control requests
    without using a timeout. This could lead to the driver hanging on probe
    due to a malfunctioning (or malicious) device until the device is
    physically disconnected. While sleeping in probe the driver prevents
    other devices connected to the same hub from being added to (or removed
    from) the bus.

    The USB upper limit of five seconds per request should be more than
    enough.

    Fixes: 99f83c9c9ac9 ("[PATCH] USB: add driver for Keyspan Digital Remote")
    Signed-off-by: Johan Hovold
    Reviewed-by: Greg Kroah-Hartman
    Cc: stable # 2.6.13
    Link: https://lore.kernel.org/r/20200113171715.30621-1-johan@kernel.org
    Signed-off-by: Dmitry Torokhov

    Johan Hovold
     
  • We need the of_match table if we want to use the compatible string in
    the pmic's child node and get the onkey driver loaded automatically.

    Signed-off-by: Bartosz Golaszewski
    Signed-off-by: Dmitry Torokhov

    Bartosz Golaszewski
     
  • The F54 Report Data is apparently read through a fifo and for
    the smbus protocol that means that between reading a block of 32
    bytes the rmiaddr shouldn't be incremented. However, changing
    that causes other non-fifo reads to fail and so that change was
    reverted.

    This patch changes just the F54 function and it now reads 32 bytes
    at a time from the fifo, using the F54_FIFO_OFFSET to update the
    start address that is used when reading from the fifo.

    This has only been tested with smbus, not with i2c or spi. But I
    suspect that the same is needed there since I think similar
    problems will occur there when reading more than 256 bytes.

    Signed-off-by: Hans Verkuil
    Tested-by: Hans Verkuil
    Reported-by: Timo Kaufmann
    Link: https://lore.kernel.org/r/20200115124819.3191024-3-hverkuil-cisco@xs4all.nl
    Signed-off-by: Dmitry Torokhov

    Hans Verkuil
     
  • This reverts commit a284e11c371e446371675668d8c8120a27227339.

    This causes problems (drifting cursor) with at least the F11 function that
    reads more than 32 bytes.

    The real issue is in the F54 driver, and so this should be fixed there, and
    not in rmi_smbus.c.

    So first revert this bad commit, then fix the real problem in F54 in another
    patch.

    Signed-off-by: Hans Verkuil
    Reported-by: Timo Kaufmann
    Fixes: a284e11c371e ("Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200115124819.3191024-2-hverkuil-cisco@xs4all.nl
    Signed-off-by: Dmitry Torokhov

    Hans Verkuil
     

11 Jan, 2020

1 commit