linux-stable/drivers/input
Jeff LaBundy 7e5bc675eb Input: iqs269a - do not poll during ATI
[ Upstream commit b08134eb25 ]

After initial start-up, the driver triggers ATI (calibration) with
the newly loaded register configuration in place. Next, the driver
polls a register field to ensure ATI completed in a timely fashion
and that the device is ready to sense.

However, communicating with the device over I2C while ATI is under-
way may induce noise in the device and cause ATI to fail. As such,
the vendor recommends not to poll the device during ATI.

To solve this problem, let the device naturally signal to the host
that ATI is complete by way of an interrupt. A completion prevents
the device from successfully probing until this happens.

As an added benefit, initial switch states are now reported in the
interrupt handler at the same time ATI status is checked. As such,
duplicate code that reports initial switch states has been removed
from iqs269_input_init().

The former logic that scaled ATI timeout and filter settling delay
is not carried forward with the new implementation, as it produces
overly conservative delays at the lower clock rate.

Rather, a single timeout that covers both clock rates is used. The
filter settling delay does not happen to be necessary and has been
removed as well.

Fixes: 04e49867fa ("Input: add support for Azoteq IQS269A")
Signed-off-by: Jeff LaBundy <jeff@labundy.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Link: https://lore.kernel.org/r/Y7RtB2T7AF9rYMjK@nixie71
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-03-11 16:39:45 +01:00
..
gameport
joystick Input: joystick - fix Kconfig warning for JOYSTICK_ADC 2023-01-14 10:15:28 +01:00
keyboard Input: snvs_pwrkey - fix SNVS_HPVIDR1 register address 2022-10-05 10:38:38 +02:00
misc Input: iqs269a - do not poll during ATI 2023-03-11 16:39:45 +01:00
mouse Revert "Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode" 2023-02-01 08:23:26 +01:00
rmi4
serio Input: i8042 - add Clevo PCX0DX to i8042 quirk table 2023-02-15 17:22:16 +01:00
tablet Input: aiptek - properly check endpoint type 2022-03-23 09:13:29 +01:00
touchscreen Input: ads7846 - don't check penirq immediately for 7845 2023-03-11 16:39:43 +01:00
apm-power.c
evbug.c
evdev.c
ff-core.c
ff-memless.c
input-compat.c
input-compat.h
input-leds.c
input-mt.c
input-polldev.c
input-poller.c
input-poller.h
input.c Input: add bounds checking to input_set_capability() 2022-05-25 09:17:52 +02:00
joydev.c
Kconfig
Makefile
matrix-keymap.c
mousedev.c
sparse-keymap.c