From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: david@ixit.cz
Cc: Andi Shyti <andi@etezian.org>, Rob Herring <robh@kernel.org>,
Marco Mattiolo <marco.mattiolo@hotmail.it>,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
phone-devel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH] Input: s6sy761 - fix resume ordering and restore sensing
Date: Fri, 25 Sep 2026 21:40:32 -0700 [thread overview]
Message-ID: <ardMSVsG1RlOOkNp@google.com> (raw)
In-Reply-To: <20260923-s6sy761-suspend-v1-1-6fff96e71cb0@ixit.cz>
Hi David,
On Wed, Sep 23, 2026 at 03:27:06PM +0200, David Heidelberg via B4 Relay wrote:
> From: David Heidelberg <david@ixit.cz>
>
> System suspend powers the controller off and resume powers it back on,
> but the resume path enables the interrupt before s6sy761_power_on()
> checks the boot. The firmware raises its boot-complete event on the
> interrupt line, the threaded handler consumes it, s6sy761_power_on()
> then reads an empty event and resume fails with -ENODEV, skipping the
> touch function setup:
>
> s6sy761 2-0048: PM: dpm_run_callback(): s6sy761_resume [s6sy761] returns -19
>
> Power the chip on first and only then unmask the interrupt. Once resume
> completes the boot handshake the chip comes back with sensing off, as
> at probe where input_open() turns it on, so the touchscreen stays dead
> after resume. Send SENSE_ON again when the input device is open.
>
> Tested on a Pixel 3 XL over several s2idle cycles: resume succeeds and
> the touch function and sense status match the pre-suspend state.
>
> Assisted-by: LLM
> Cc: stable@vger.kernel.org
> Fixes: 0145a7141e59 ("Input: add support for the Samsung S6SY761 touchscreen")
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> drivers/input/touchscreen/s6sy761.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/input/touchscreen/s6sy761.c b/drivers/input/touchscreen/s6sy761.c
> index 0f24a9b730635..c52c45a7d1029 100644
> --- a/drivers/input/touchscreen/s6sy761.c
> +++ b/drivers/input/touchscreen/s6sy761.c
> @@ -495,20 +495,29 @@ static int s6sy761_suspend(struct device *dev)
> s6sy761_power_off(sdata);
>
> return 0;
> }
>
> static int s6sy761_resume(struct device *dev)
> {
> struct s6sy761_data *sdata = dev_get_drvdata(dev);
> + int err;
>
> + err = s6sy761_power_on(sdata);
> enable_irq(sdata->client->irq);
Why are we enabling the interrupt even if power on failed?
> + if (err)
> + return err;
>
> - return s6sy761_power_on(sdata);
> + guard(mutex)(&sdata->input->mutex);
> +
> + if (!input_device_enabled(sdata->input))
> + return 0;
> +
> + return i2c_smbus_write_byte(sdata->client, S6SY761_SENSE_ON);
Explicit return err/return 0 please - there are multiple failure points
in this function.
Thanks.
--
Dmitry
next prev parent reply other threads:[~2026-09-26 4:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-23 13:27 [PATCH] Input: s6sy761 - fix resume ordering and restore sensing David Heidelberg via B4 Relay
2026-09-23 13:27 ` David Heidelberg
2026-09-26 4:40 ` Dmitry Torokhov [this message]
2026-09-26 9:55 ` David Heidelberg
2026-09-26 19:36 ` Dmitry Torokhov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ardMSVsG1RlOOkNp@google.com \
--to=dmitry.torokhov@gmail.com \
--cc=andi@etezian.org \
--cc=david@ixit.cz \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marco.mattiolo@hotmail.it \
--cc=phone-devel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.