1. 10 Apr, 2021 4 commits
    • Vincent Knecht's avatar
      Input: add MStar MSG2638 touchscreen driver · cbdb24e5
      Vincent Knecht authored
      Add support for the msg2638 touchscreen IC from MStar.
      Firmware handling, wakeup gestures and other specialties are not supported.
      This driver reuses zinitix.c structure, while the checksum and irq handler
      functions are based on out-of-tree driver for Alcatel Idol 3 (4.7").
      Signed-off-by: default avatarVincent Knecht <vincent.knecht@mailoo.org>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Link: https://lore.kernel.org/r/20210305153815.126937-2-vincent.knecht@mailoo.orgSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      cbdb24e5
    • Vincent Knecht's avatar
    • Hans de Goede's avatar
      Input: silead - add workaround for x86 BIOS-es which bring the chip up in a stuck state · e4791877
      Hans de Goede authored
      Some buggy BIOS-es bring up the touchscreen-controller in a stuck
      state where it blocks the I2C bus. Specifically this happens on
      the Jumper EZpad 7 tablet model.
      
      After much poking at this problem I have found that the following steps
      are necessary to unstuck the chip / bus:
      
      1. Turn off the Silead chip.
      2. Try to do an I2C transfer with the chip, this will fail in response to
         which the I2C-bus-driver will call: i2c_recover_bus() which will unstuck
         the I2C-bus. Note the unstuck-ing of the I2C bus only works if we first
         drop the chip of the bus by turning it off.
      3. Turn the chip back on.
      
      On the x86/ACPI systems were this problem is seen, step 1. and 3. require
      making ACPI calls and dealing with ACPI Power Resources. This commit adds
      a workaround which runtime-suspends the chip to turn it off, leaving it up
      to the ACPI subsystem to deal with all the ACPI specific details.
      
      There is no good way to detect this bug, so the workaround gets activated
      by a new "silead,stuck-controller-bug" boolean device-property. Since this
      is only used on x86/ACPI, this will be set by model specific device-props
      set by drivers/platform/x86/touchscreen_dmi.c. Therefor this new
      device-property is not documented in the DT-bindings.
      
      Dmesg will contain the following messages on systems where the workaround
      is activated:
      
      [   54.309029] silead_ts i2c-MSSL1680:00: [Firmware Bug]: Stuck I2C bus: please ignore the next 'controller timed out' error
      [   55.373593] i2c_designware 808622C1:04: controller timed out
      [   55.582186] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x80360000
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210405202745.16777-1-hdegoede@redhat.comSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      e4791877
    • Hans de Goede's avatar
      Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated devices · 65299e8b
      Hans de Goede authored
      Several users have been reporting that elants_i2c gives several errors
      during probe and that their touchscreen does not work on their Lenovo AMD
      based laptops with a touchscreen with a ELAN0001 ACPI hardware-id:
      
      [    0.550596] elants_i2c i2c-ELAN0001:00: i2c-ELAN0001:00 supply vcc33 not found, using dummy regulator
      [    0.551836] elants_i2c i2c-ELAN0001:00: i2c-ELAN0001:00 supply vccio not found, using dummy regulator
      [    0.560932] elants_i2c i2c-ELAN0001:00: elants_i2c_send failed (77 77 77 77): -121
      [    0.562427] elants_i2c i2c-ELAN0001:00: software reset failed: -121
      [    0.595925] elants_i2c i2c-ELAN0001:00: elants_i2c_send failed (77 77 77 77): -121
      [    0.597974] elants_i2c i2c-ELAN0001:00: software reset failed: -121
      [    0.621893] elants_i2c i2c-ELAN0001:00: elants_i2c_send failed (77 77 77 77): -121
      [    0.622504] elants_i2c i2c-ELAN0001:00: software reset failed: -121
      [    0.632650] elants_i2c i2c-ELAN0001:00: elants_i2c_send failed (4d 61 69 6e): -121
      [    0.634256] elants_i2c i2c-ELAN0001:00: boot failed: -121
      [    0.699212] elants_i2c i2c-ELAN0001:00: invalid 'hello' packet: 00 00 ff ff
      [    1.630506] elants_i2c i2c-ELAN0001:00: Failed to read fw id: -121
      [    1.645508] elants_i2c i2c-ELAN0001:00: unknown packet 00 00 ff ff
      
      Despite these errors, the elants_i2c driver stays bound to the device
      (it returns 0 from its probe method despite the errors), blocking the
      i2c-hid driver from binding.
      
      Manually unbinding the elants_i2c driver and binding the i2c-hid driver
      makes the touchscreen work.
      
      Check if the ACPI-fwnode for the touchscreen contains one of the i2c-hid
      compatiblity-id strings and if it has the I2C-HID spec's DSM to get the
      HID descriptor address, If it has both then make elants_i2c not bind,
      so that the i2c-hid driver can bind.
      
      This assumes that non of the (older) elan touchscreens which actually
      need the elants_i2c driver falsely advertise an i2c-hid compatiblity-id
      + DSM in their ACPI-fwnodes. If some of them actually do have this
      false advertising, then this change may lead to regressions.
      
      While at it also drop the unnecessary DEVICE_NAME prefixing of the
      "I2C check functionality error", dev_err already outputs the driver-name.
      
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=207759Acked-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Link: https://lore.kernel.org/r/20210405202756.16830-1-hdegoede@redhat.comSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      65299e8b
  2. 08 Apr, 2021 1 commit
    • Dmitry Torokhov's avatar
      Input: gpio-keys - fix crash when disabliing GPIO-less buttons · 2531fdbf
      Dmitry Torokhov authored
      My brain-damaged adjustments to Paul's patch caused crashes in
      gpio_keys_disable_button() when driver is used in GPIO-less (i.e.
      purely interrupt-driven) setups, because I mixed together debounce and
      release timers when they are in fact separate:
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000000c
      ...
      PC is at hrtimer_active+0xc/0x98
      LR is at hrtimer_try_to_cancel+0x24/0x140
      ...
      [<c01c43b8>] (hrtimer_active) from [<c01c50f4>] (hrtimer_try_to_cancel+0x24/0x140)
      [<c01c50f4>] (hrtimer_try_to_cancel) from [<c01c5224>] (hrtimer_cancel+0x14/0x4c)
      [<c01c5224>] (hrtimer_cancel) from [<bf1cae24>] (gpio_keys_attr_store_helper+0x1b8/0x1d8 [gpio_keys])
      [<bf1cae24>] (gpio_keys_attr_store_helper [gpio_keys]) from [<bf1cae80>] (gpio_keys_store_disabled_keys+0x18/0x24 [gpio_keys])
      [<bf1cae80>] (gpio_keys_store_disabled_keys [gpio_keys]) from [<c038ec7c>] (kernfs_fop_write_iter+0x10c/0x1cc)
      [<c038ec7c>] (kernfs_fop_write_iter) from [<c02df858>] (vfs_write+0x2ac/0x404)
      [<c02df858>] (vfs_write) from [<c02dfaf4>] (ksys_write+0x64/0xdc)
      [<c02dfaf4>] (ksys_write) from [<c0100080>] (ret_fast_syscall+0x0/0x58)
      
      Let's fix it up.
      
      Fixes: c9efb0ba ("Input: gpio-keys - use hrtimer for software debounce, if possible")
      Reported-by: default avatarTony Lindgren <tony@atomide.com>
      Tested-by: default avatarTony Lindgren <tony@atomide.com>
      Link: https://lore.kernel.org/r/YG1DFFgojSVfdpaz@google.comSigned-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      2531fdbf
  3. 28 Mar, 2021 1 commit
  4. 25 Mar, 2021 25 commits
  5. 21 Mar, 2021 9 commits
    • Linus Torvalds's avatar
      Linux 5.12-rc4 · 0d02ec6b
      Linus Torvalds authored
      0d02ec6b
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · d7f5f1bd
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Miscellaneous ext4 bug fixes for v5.12"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: initialize ret to suppress smatch warning
        ext4: stop inode update before return
        ext4: fix rename whiteout with fast commit
        ext4: fix timer use-after-free on failed mount
        ext4: fix potential error in ext4_do_update_inode
        ext4: do not try to set xattr into ea_inode if value is empty
        ext4: do not iput inode under running transaction in ext4_rename()
        ext4: find old entry again if failed to rename whiteout
        ext4: fix error handling in ext4_end_enable_verity()
        ext4: fix bh ref count on error paths
        fs/ext4: fix integer overflow in s_log_groups_per_flex
        ext4: add reclaim checks to xattr code
        ext4: shrink race window in ext4_should_retry_alloc()
      d7f5f1bd
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.12-2021-03-21' of git://git.kernel.dk/linux-block · 2c41fab1
      Linus Torvalds authored
      Pull io_uring followup fixes from Jens Axboe:
      
       - The SIGSTOP change from Eric, so we properly ignore that for
         PF_IO_WORKER threads.
      
       - Disallow sending signals to PF_IO_WORKER threads in general, we're
         not interested in having them funnel back to the io_uring owning
         task.
      
       - Stable fix from Stefan, ensuring we properly break links for short
         send/sendmsg recv/recvmsg if MSG_WAITALL is set.
      
       - Catch and loop when needing to run task_work before a PF_IO_WORKER
         threads goes to sleep.
      
      * tag 'io_uring-5.12-2021-03-21' of git://git.kernel.dk/linux-block:
        io_uring: call req_set_fail_links() on short send[msg]()/recv[msg]() with MSG_WAITALL
        io-wq: ensure task is running before processing task_work
        signal: don't allow STOP on PF_IO_WORKER threads
        signal: don't allow sending any signals to PF_IO_WORKER threads
      2c41fab1
    • Linus Torvalds's avatar
      Merge tag 'staging-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 1d4345eb
      Linus Torvalds authored
      Pull staging and IIO driver fixes from Greg KH:
       "Some small staging and IIO driver fixes:
      
         - MAINTAINERS changes for the move of the staging mailing list
      
         - comedi driver fixes to get request_irq() to work correctly
      
         - counter driver fixes for reported issues with iio devices
      
         - tiny iio driver fixes for reported issues.
      
        All of these have been in linux-next with no reported problems"
      
      * tag 'staging-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: vt665x: fix alignment constraints
        staging: comedi: cb_pcidas64: fix request_irq() warn
        staging: comedi: cb_pcidas: fix request_irq() warn
        MAINTAINERS: move the staging subsystem to lists.linux.dev
        MAINTAINERS: move some real subsystems off of the staging mailing list
        iio: gyro: mpu3050: Fix error handling in mpu3050_trigger_handler
        iio: hid-sensor-temperature: Fix issues of timestamp channel
        iio: hid-sensor-humidity: Fix alignment issue of timestamp channel
        counter: stm32-timer-cnt: fix ceiling miss-alignment with reload register
        counter: stm32-timer-cnt: fix ceiling write max value
        counter: stm32-timer-cnt: Report count function when SLAVE_MODE_DISABLED
        iio: adc: ab8500-gpadc: Fix off by 10 to 3
        iio:adc:stm32-adc: Add HAS_IOMEM dependency
        iio: adis16400: Fix an error code in adis16400_initial_setup()
        iio: adc: adi-axi-adc: add proper Kconfig dependencies
        iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask
        iio: hid-sensor-prox: Fix scale not correct issue
        iio:adc:qcom-spmi-vadc: add default scale to LR_MUX2_BAT_ID channel
      1d4345eb
    • Linus Torvalds's avatar
      Merge tag 'usb-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 3001c355
      Linus Torvalds authored
      Pull USB and Thunderbolt driver fixes from Greg KH:
       "Here are some small Thunderbolt and USB driver fixes for some reported
        issues:
      
         - thunderbolt fixes for minor problems
      
         - typec fixes for power issues
      
         - usb-storage quirk addition
      
         - usbip bugfix
      
         - dwc3 bugfix when stopping transfers
      
         - cdnsp bugfix for isoc transfers
      
         - gadget use-after-free fix
      
        All have been in linux-next this week with no reported issues"
      
      * tag 'usb-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: tcpm: Skip sink_cap query only when VDM sm is busy
        usb: dwc3: gadget: Prevent EP queuing while stopping transfers
        usb: typec: tcpm: Invoke power_supply_changed for tcpm-source-psy-
        usb: typec: Remove vdo[3] part of tps6598x_rx_identity_reg struct
        usb-storage: Add quirk to defeat Kindle's automatic unload
        usb: gadget: configfs: Fix KASAN use-after-free
        usbip: Fix incorrect double assignment to udc->ud.tcp_rx
        usb: cdnsp: Fixes incorrect value in ISOC TRB
        thunderbolt: Increase runtime PM reference count on DP tunnel discovery
        thunderbolt: Initialize HopID IDAs in tb_switch_alloc()
      3001c355
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5ee96fa9
      Linus Torvalds authored
      Pull irq fix from Ingo Molnar:
       "A change to robustify force-threaded IRQ handlers to always disable
        interrupts, plus a DocBook fix.
      
        The force-threaded IRQ handler change has been accelerated from the
        normal schedule of such a change to keep the bad pattern/workaround of
        spin_lock_irqsave() in handlers or IRQF_NOTHREAD as a kludge from
        spreading"
      
      * tag 'irq-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Disable interrupts for force threaded handlers
        genirq/irq_sim: Fix typos in kernel doc (fnode -> fwnode)
      5ee96fa9
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1c74516c
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Boundary condition fixes for bugs unearthed by the perf fuzzer"
      
      * tag 'perf-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel: Fix unchecked MSR access error caused by VLBR_EVENT
        perf/x86/intel: Fix a crash caused by zero PEBS status
      1c74516c
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5ba33b48
      Linus Torvalds authored
      Pull locking fixes from Ingo Molnar:
      
       - Get static calls & modules right. Hopefully.
      
       - WW mutex fixes
      
      * tag 'locking-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        static_call: Fix static_call_update() sanity check
        static_call: Align static_call_is_init() patching condition
        static_call: Fix static_call_set_init()
        locking/ww_mutex: Fix acquire/release imbalance in ww_acquire_init()/ww_acquire_fini()
        locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling
      5ba33b48
    • Linus Torvalds's avatar
      Merge tag 'efi-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 92ed88cb
      Linus Torvalds authored
      Pull EFI fixes from Ingo Molnar:
      
       - another missing RT_PROP table related fix, to ensure that the
         efivarfs pseudo filesystem fails gracefully if variable services
         are unsupported
      
       - use the correct alignment for literal EFI GUIDs
      
       - fix a use after unmap issue in the memreserve code
      
      * tag 'efi-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi: use 32-bit alignment for efi_guid_t literals
        firmware/efi: Fix a use after bug in efi_mem_reserve_persistent
        efivars: respect EFI_UNSUPPORTED return from firmware
      92ed88cb