[PATCH v2 0/2] Input: st1232: wakeup in Suspend to idle

From: Javier Carrasco
Date: Fri Sep 15 2023 - 09:47:43 EST


The st1232 touchscreen provides an interrupt line that can be configured
as a wakeup source, and currently it is possible to use this mechanism in
"Suspend to RAM" and "Hibernate" power states.

Unfortunately, that does not work in "Suspend to idle" (freeze) because
the device driver disables interrupts in its suspend callback
unconditionally.
Partially reverting the patch where this modification was made to
disable interrupts only if the device is not a wakeup source has proved
to solve the issue.

Given that the st1232 device driver does not reflect its wakeup events
in sysfs, this series also adds pm_wakeup_event to the interrupt
handler.

These changes have been successfully tested with an ST1624-N32C and a
Rockchip-based platform.

Signed-off-by: Javier Carrasco <javier.carrasco@xxxxxxxxxxxxxx>
---
Changes in v2:
- PATCH 1/2: enable/disable irq if the device is not a wakeup source.
- PATCH 2/2: remove unnecessary mutex locking/unlocking.
- Link to v1: https://lore.kernel.org/r/20230403124707.102986-2-javier.carrasco@xxxxxxxxxxxxxx

---
Javier Carrasco (2):
Input: st1232 - remove enable/disable irq if device may wake up
Input: st1232 - add wake up event counting

drivers/input/touchscreen/st1232.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
---
base-commit: 0bb80ecc33a8fb5a682236443c1e740d5c917d1d
change-id: 20230826-feature-st1232_freeze_wakeup-c602968f2f76

Best regards,
--
Javier Carrasco <javier.carrasco@xxxxxxxxxxxxxx>