linux/drivers/input
Jeff LaBundy 95215d3d19 Input: iqs7222 - fortify slider event reporting
The release cycle of any key mapped to a slider gesture relies upon
trailing interrupts generated by other unmasked sources, the timing
and presence of which are inconsistent.

To solve this problem, explicitly report a release cycle to emulate
a full keystroke. Also, unmask touch interrupts if the slider press
event is defined; this ensures the device reports a final interrupt
with coordinate = 0xFFFF once the finger is lifted.

As a result of how the logic has been refactored, the press/release
event can now be mapped to a GPIO. This is more convenient than the
previous solution, which required each channel within the slider to
specify the same GPIO.

As part of this change, use the device's resolution rather than its
number of interrupt status registers to more safely determine if it
is capable of reporting gestures.

Last but not least, make the code a bit simpler by eliminating some
unnecessarily complex conditional statements and a macro that could
be derived using information that is already available.

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-3-jeff@labundy.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2022-06-27 15:25:52 -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 - fortify slider event reporting 2022-06-27 15:25:52 -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.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
mousedev.c
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