Re: [PATCH] input: silead: Disable interrupt during suspend
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2017-05-23 00:21:42
Hi Hans, On Fri, May 19, 2017 at 04:06:42PM +0200, Hans de Goede wrote:
When we put the touchscreen controller in low-power mode the irq pin may trigger (float) and if we then try to read a data packet we get the following error in dmesg: [ 478.801017] silead_ts i2c-MSSL1680:00: Data read error -121 This commit disables the irq during suspend/resume fixing this error.
Out of curiosity, what interrupt type does silead device use on your platform?
quoted hunk ↗ jump to hunk
Signed-off-by: Hans de Goede <redacted> --- drivers/input/touchscreen/silead.c | 3 +++ 1 file changed, 3 insertions(+)diff --git a/drivers/input/touchscreen/silead.c b/drivers/input/touchscreen/silead.c index 9b36f2750b9f..52c878a20a92 100644 --- a/drivers/input/touchscreen/silead.c +++ b/drivers/input/touchscreen/silead.c@@ -536,6 +536,7 @@ static int __maybe_unused silead_ts_suspend(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); + disable_irq(client->irq); silead_ts_set_power(client, SILEAD_POWER_OFF); return 0; }@@ -561,6 +562,8 @@ static int __maybe_unused silead_ts_resume(struct device *dev) return -ENODEV; } + enable_irq(client->irq); + return 0; }-- 2.12.2
Thanks. -- Dmitry