summaryrefslogtreecommitdiffstats
path: root/drivers/input/touchscreen/silead.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2017-05-27 01:09:48 +0200
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2017-05-30 04:58:25 +0200
commit1943d1723e7a7ee1a7b9b0ba4878dde0dc100671 (patch)
tree5a9a685b9d065adc0c9f807604cc4aa2064cce9a /drivers/input/touchscreen/silead.c
parentInput: elan_i2c - ignore signals when finishing updating firmware (diff)
downloadlinux-1943d1723e7a7ee1a7b9b0ba4878dde0dc100671.tar.xz
linux-1943d1723e7a7ee1a7b9b0ba4878dde0dc100671.zip
Input: silead - disable interrupt during suspend
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. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input/touchscreen/silead.c')
-rw-r--r--drivers/input/touchscreen/silead.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/silead.c b/drivers/input/touchscreen/silead.c
index 813dd68a5c82..0dbcf105f7db 100644
--- a/drivers/input/touchscreen/silead.c
+++ b/drivers/input/touchscreen/silead.c
@@ -526,6 +526,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;
}
@@ -551,6 +552,8 @@ static int __maybe_unused silead_ts_resume(struct device *dev)
return -ENODEV;
}
+ enable_irq(client->irq);
+
return 0;
}