Skip to content

input: touchscreen: use -EPROBE_DEFER when panel not ready#4

Open
zaheen4 wants to merge 1 commit into
SushiKernel:sixteen-qpr2from
zaheen4:fix/touch-probe-defer
Open

input: touchscreen: use -EPROBE_DEFER when panel not ready#4
zaheen4 wants to merge 1 commit into
SushiKernel:sixteen-qpr2from
zaheen4:fix/touch-probe-defer

Conversation

@zaheen4

@zaheen4 zaheen4 commented Jun 15, 2026

Copy link
Copy Markdown

When the DSI panel driver hasn't registered yet, the chipone and ilitek touch drivers return -ENODEV (permanent failure) instead of -EPROBE_DEFER (retry). With Clang 12 (SushiKernel's pinned toolchain) the panel probes first, so this is latent — but Clang 20+ reverses probe ordering, causing the touch driver to fail permanently.

Fix all three chipone variants and the ilitek v3 driver to return -EPROBE_DEFER when the panel dependency is not ready.

When the DSI panel driver hasn't registered yet, returning -ENODEV
permanently fails the touch driver probe. Use -EPROBE_DEFER so the
kernel retries after the panel driver probes.

This is a latent bug exposed by Clang 20+ reversed probe ordering but
is correct regardless of toolchain: a missing dependency should always
trigger deferred probing, not permanent failure.
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.

1 participant