diff options
| author | David Heidelberg <david@ixit.cz> | 2026-09-26 22:26:47 +0200 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2026-09-27 21:38:32 -0700 |
| commit | a215720959c5450b3699e243904b39c3f8f68888 (patch) | |
| tree | 39435874a65e411e78252267514c60675f929c7a /scripts/basic/Makefile | |
| parent | f0fd8993082ca229faa3f9844f1c9fe182eca20b (diff) | |
| download | linux-stable-a215720959c5450b3699e243904b39c3f8f68888.tar.gz linux-stable-a215720959c5450b3699e243904b39c3f8f68888.zip | |
Input: s6sy761 - fix resume ordering and restore sensing
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>
Link: https://patch.msgid.link/20260926-s6sy761-suspend-v2-1-8f00a96ee6e8@ixit.cz
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'scripts/basic/Makefile')
0 files changed, 0 insertions, 0 deletions
