Re: [PATCH] input: silead: Disable interrupt during suspend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 23-05-17 02:21, Dmitry Torokhov wrote:
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?

On the tablet where I was seeing this problem the irq is declared as:

                        GpioInt (Edge, ActiveHigh, Shared, PullDefault, 0x0000,

In the DSDT.

Regards,

Hans




Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
---
  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.

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux