Prechádzať zdrojové kódy

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>
Hans de Goede 8 rokov pred
rodič
commit
1943d1723e
1 zmenil súbory, kde vykonal 3 pridanie a 0 odobranie
  1. 3 0
      drivers/input/touchscreen/silead.c

+ 3 - 0
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);
 	struct i2c_client *client = to_i2c_client(dev);
 
 
+	disable_irq(client->irq);
 	silead_ts_set_power(client, SILEAD_POWER_OFF);
 	silead_ts_set_power(client, SILEAD_POWER_OFF);
 	return 0;
 	return 0;
 }
 }
@@ -551,6 +552,8 @@ static int __maybe_unused silead_ts_resume(struct device *dev)
 		return -ENODEV;
 		return -ENODEV;
 	}
 	}
 
 
+	enable_irq(client->irq);
+
 	return 0;
 	return 0;
 }
 }