Skip to content

6.19: reset QuickSPI touch IC on resume to fix dead touchscreen after s2idle (Surface Pro 10)#2163

Open
d3z-the-dev wants to merge 1 commit into
linux-surface:masterfrom
d3z-the-dev:fix/sp10-quickspi-s2idle-resume-1799
Open

6.19: reset QuickSPI touch IC on resume to fix dead touchscreen after s2idle (Surface Pro 10)#2163
d3z-the-dev wants to merge 1 commit into
linux-surface:masterfrom
d3z-the-dev:fix/sp10-quickspi-s2idle-resume-1799

Conversation

@d3z-the-dev

Copy link
Copy Markdown

What

Fixes the touchscreen dying after suspend/resume on the Surface Pro 10
(Intel Core Ultra 7 / Meteor Lake), reported in #1799.

Why

The SP10 only suspends through s2idle - cat /sys/power/mem_sleep shows
[s2idle], there is no deep/S3 entry at all. The QuickSPI touch IC loses
power across that s2idle suspend (like across hibernation), but
quickspi_resume() only sends HIDSPI_ON, so the descriptor read fails
(recv failed: -11) and touch stays dead until reboot.

Fix

Make quickspi_resume() run the same reset_tic() re-enumeration that
quickspi_restore() already does, but only when device_may_wakeup() == false.
Keying off retained power (not suspend type) is what makes it work on this
s2idle-only machine, where any PM_SUSPEND_MEM/S3 check never fires.

Testing

Built 6.19 with this patch, installed on a Surface Pro 10, many s2idle
suspend/resume cycles - touchscreen keeps working.

Notes

Equivalent fix posted upstream on linux-input (based on v7.1), under review with
the Intel maintainer, not yet merged. This is the 6.19 backport.
Thread: https://lore.kernel.org/linux-input/20260529222210.1532876-1-d3z.the.dev@gmail.com/

Closes #1799

SP10 exposes only [s2idle] (no deep/S3); the touch IC loses power across it, so quickspi_resume() must re-enumerate like quickspi_restore() does, gated on !device_may_wakeup(). Tested on a Surface Pro 10. Link: linux-surface#1799
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[SP10] Dead touchscreen on arch 6.15 kernel

1 participant