Re: [PATCH] Input: mms114 - fix touch slot corruption in suspend

[email protected] Wed, 05 Aug 2026 03:59:35 +0000
Newsgroups org.kernel.vger.linux-input
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(=
s) to consider:

Pre-existing issues:
- [High] Active touchkeys are not released during suspend, potentially caus=
ing them to be stuck upon resume.
--

--- Patch [1]: [PATCH] Input: mms114 - fix touch slot corruption in suspend=
 ---
commit 1d29053929170cae6a2ebfa311bed7d55133b74a
Author: Dmitry Torokhov <[email protected]>

Input: mms114 - fix touch slot corruption in suspend

This commit fixes a race condition during suspend by disabling the IRQ and
synchronizing with the interrupt handler before synthesizing touch release
events. It also ensures touch release events are only synthesized if the
input device is enabled, protecting the sequence with the input device mute=
x.

> diff --git a/drivers/input/touchscreen/mms114.c b/drivers/input/touchscre=
en/mms114.c
> index 27911a9f4e9eb..734c37579f5a4 100644
> --- a/drivers/input/touchscreen/mms114.c
> +++ b/drivers/input/touchscreen/mms114.c
> @@ -679,6 +679,13 @@ static int mms114_suspend(struct device *dev)
[ ... ]
> +	mms114_stop(data);
> +
>  	/* Release all touch */
>  	for (id =3D 0; id < MMS114_MAX_TOUCH; id++) {
>  		input_mt_slot(input_dev, id);
>  		input_mt_report_slot_inactive(input_dev);
>  	}
> =20
>  	input_mt_report_pointer_emulation(input_dev, true);
>  	input_sync(input_dev);

[Severity: High]
This is a pre-existing issue, but does this sequence also need to synthesize
release events for active touchkeys?

If a touchkey (such as Back or Menu) is pressed when the device suspends,
mms114_stop() powers down the hardware without sending a hardware release
interrupt. Since this loop only releases multitouch slots, it seems the
touchkey could remain logically stuck in the active state in the input core
upon resume.

--=20
Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/anKxGkyRRu5A92Q_@go=
ogle.com?part=3D1