]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Input: iqs269a - increase interrupt handler return delay
authorJeff LaBundy <jeff@labundy.com>
Tue, 3 Jan 2023 17:58:59 +0000 (11:58 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Mar 2024 12:21:50 +0000 (13:21 +0100)
[ Upstream commit e023cc4abde3c01b895660b0e5a8488deb36b8c1 ]

The time the device takes to deassert its RDY output following an
I2C stop condition scales with the core clock frequency.

To prevent level-triggered interrupts from being reasserted after
the interrupt handler returns, increase the time before returning
to account for the worst-case delay (~140 us) plus margin.

Fixes: 04e49867fad1 ("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/Y7Rs484ypy4dab5G@nixie71
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/input/misc/iqs269a.c

index 2124d08c55b794af11db46614870a018a818fb12..1530efd301c24d78893100425a82aed3e5fa03af 100644 (file)
 #define IQS269_PWR_MODE_POLL_SLEEP_US          IQS269_ATI_POLL_SLEEP_US
 #define IQS269_PWR_MODE_POLL_TIMEOUT_US                IQS269_ATI_POLL_TIMEOUT_US
 
-#define iqs269_irq_wait()                      usleep_range(100, 150)
+#define iqs269_irq_wait()                      usleep_range(200, 250)
 
 enum iqs269_local_cap_size {
        IQS269_LOCAL_CAP_SIZE_0,