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>