2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-10 22:54:11 +08:00
linux-next/drivers/input
Jeff LaBundy 1e4189d8af Input: iqs7222 - protect volatile registers
Select variants of silicon silently mirror part of the event mask
register to the system setup register (0xD0), and vice versa. For
the following sequence:

1. Read registers 0xD0 onward and store their contents.
2. Modify the contents, including event mask fields.
3. Write registers 0xD0 onward with the modified contents.
4. Write register 0xD0 on its own again later, using the contents
   from step 1 to populate any reserved fields.

...the event mask register (e.g. address 0xDA) has been corrupted
by writing register 0xD0 with contents that were made stale after
step 3.

To solve this problem, read register 0xD0 once more between steps
3 and 4. When register 0xD0 is written during step 4, the portion
which is mirrored to the event mask register already matches what
was written in step 3.

Fixes: e505edaedc ("Input: add support for Azoteq IQS7222A/B/C")
Signed-off-by: Jeff LaBundy <jeff@labundy.com>
Link: https://lore.kernel.org/r/20220626072412.475211-4-jeff@labundy.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2022-06-27 15:25:54 -07:00
..
gameport bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
joystick Input: add Raspberry Pi Sense HAT joystick driver 2022-04-24 18:25:02 -07:00
keyboard Input: mtk-pmic-keys - move long press debounce mask to mtk_pmic_regs 2022-05-31 21:03:45 -07:00
misc Input: iqs7222 - protect volatile registers 2022-06-27 15:25:54 -07:00
mouse Input: cyapa_gen6 - aligned "*" each line 2022-06-22 16:14:37 -07:00
rmi4 Linux 5.18 2022-05-27 16:40:01 -07:00
serio Linux 5.17-rc4 2022-02-18 13:30:38 -08:00
tablet Merge branch 'ib/5.17-cros-ec-keyb' into next 2022-05-18 15:02:27 -07:00
touchscreen Input: zinitix - rename defines ZINITIX_* 2022-05-27 21:49:34 -07:00
apm-power.c
evbug.c Input: evbug - remove an empty comment block 2021-05-24 21:06:39 -07:00
evdev.c Input: evdev - per-client waitgroups 2020-10-06 18:34:15 -07:00
ff-core.c Input: ff-core - correct magnitude setting for rumble compatibility 2021-12-06 23:24:03 -08:00
ff-memless.c Input: ff-memless - kill timer in destroy() 2019-11-15 11:45:03 -08:00
input-compat.c
input-compat.h
input-leds.c
input-mt.c Input: MT - avoid comma separated statements 2020-08-25 10:26:05 -07:00
input-poller.c Input: use input_device_enabled() 2020-12-02 22:10:33 -08:00
input-poller.h Input: add support for polling to input devices 2019-08-20 12:04:07 -07:00
input.c Linux 5.18 2022-05-27 16:40:01 -07:00
joydev.c HID: nintendo: add IMU support 2021-10-27 10:05:52 +02:00
Kconfig Input: extract ChromeOS vivaldi physmap show function 2022-03-14 21:11:09 -07:00
Makefile Input: extract ChromeOS vivaldi physmap show function 2022-03-14 21:11:09 -07:00
matrix-keymap.c Input: matrix-keymap - switch to use device_property_count_u32() 2019-08-12 00:03:13 -07:00
mousedev.c *: convert stream-like files -> stream_open, even if they use noop_llseek 2019-07-14 16:09:19 +03:00
sparse-keymap.c Input: Use fallthrough pseudo-keyword 2020-07-07 11:25:54 -07:00
touchscreen.c Input: touchscreen - avoid bitwise vs logical OR warning 2021-10-15 22:22:54 -07:00
vivaldi-fmap.c Input: extract ChromeOS vivaldi physmap show function 2022-03-14 21:11:09 -07:00