linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] Input: atmel_mxt_ts - add wakeup support
@ 2019-05-17 21:17 Stefano Manni
  2019-05-17 21:17 ` [PATCH 2/2] dt-bindings: input: Add wakeup-source for atmel,maxtouch Stefano Manni
  2019-05-17 21:30 ` [PATCH 1/2] Input: atmel_mxt_ts - add wakeup support Dmitry Torokhov
  0 siblings, 2 replies; 6+ messages in thread
From: Stefano Manni @ 2019-05-17 21:17 UTC (permalink / raw)
  To: nick, dmitry.torokhov, robh+dt, mark.rutland
  Cc: Stefano Manni, linux-input, devicetree, linux-kernel

Add wakeup support to the maxtouch driver.
The device can wake up the system from suspend,
mark the IRQ as wakeup capable, so that device
irq is not disabled during system suspend.

Signed-off-by: Stefano Manni <stefano.manni@gmail.com>
---
 drivers/input/touchscreen/atmel_mxt_ts.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 5c63d25ce84e..2e0abc0b665d 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -3041,6 +3041,7 @@ static const struct dmi_system_id chromebook_T9_suspend_dmi[] = {
 static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
 {
 	struct mxt_data *data;
+	struct device_node *node = client->dev.of_node;
 	int error;
 
 	/*
@@ -3125,6 +3126,12 @@ static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
 		goto err_free_object;
 	}
 
+	if (node) {
+		if (of_property_read_bool(node, "wakeup-source") ||
+			of_property_read_bool(node, "linux,wakeup"))
+			device_init_wakeup(&client->dev, true);
+	}
+
 	return 0;
 
 err_free_object:
@@ -3156,6 +3163,9 @@ static int __maybe_unused mxt_suspend(struct device *dev)
 
 	mutex_lock(&input_dev->mutex);
 
+	if (device_may_wakeup(&client->dev))
+		enable_irq_wake(client->irq);
+
 	if (input_dev->users)
 		mxt_stop(data);
 
@@ -3175,6 +3185,9 @@ static int __maybe_unused mxt_resume(struct device *dev)
 
 	mutex_lock(&input_dev->mutex);
 
+	if (device_may_wakeup(&client->dev))
+		disable_irq_wake(client->irq);
+
 	if (input_dev->users)
 		mxt_start(data);
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-06-13 22:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-17 21:17 [PATCH 1/2] Input: atmel_mxt_ts - add wakeup support Stefano Manni
2019-05-17 21:17 ` [PATCH 2/2] dt-bindings: input: Add wakeup-source for atmel,maxtouch Stefano Manni
2019-06-13 22:52   ` Rob Herring
2019-05-17 21:30 ` [PATCH 1/2] Input: atmel_mxt_ts - add wakeup support Dmitry Torokhov
2019-05-18 16:55   ` stefano.manni
2019-05-21  5:33     ` Dmitry Torokhov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).