From: Daniel Golle <daniel@makrotopia.org>
To: "Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Daniel Golle" <daniel@makrotopia.org>,
"Uwe Kleine-König" <u.kleine-koenig@baylibre.com>,
"Oleh Kuzhylnyi" <kuzhylol@gmail.com>,
linux-input@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v4 0/5] Input: hynitron-cst816x: axes and gesture keys
Date: Mon, 5 Oct 2026 22:10:54 +0100 [thread overview]
Message-ID: <cover.1791233147.git.daniel@makrotopia.org> (raw)
This series improves the hynitron-cst816x touchscreen driver. It makes
the driver respect the common touchscreen axis properties, which the
binding now describes along with the rest of touchscreen.yaml, and it
keeps gesture keys from getting stuck. It also marks the sensor as
mapping straight onto the display.
The gesture key is reported with the controller's touch flag as its
value, so the key stays pressed once the controller stops reporting
the gesture code. The controller has no lift event to offer, so the
keys are now released on the first report carrying no gesture code, or
40 ms after the last one that carried a code, whichever comes first.
Changes since v3:
- patch 5 is new: INPUT_PROP_DIRECT marks the sensor as overlaying the
display, which userspace otherwise has to deduce from the event
types it emits
- a key is reported only for the gesture codes the binding names, as
the controller also sends single click, which aliased onto the
long-press keycode on a CST816S (Oleh Kuzhylnyi)
- the release loop reads each keycode once, so the key it tests is the
key it releases (Sashiko AI review)
Changes since v2:
- the binding describes the whole of touchscreen.yaml through
unevaluatedProperties (Krzysztof Kozlowski)
- the panel follower patch is dropped. It serves a panel that
registers a drm_panel, while a MIPI DBI display driven by
panel-mipi-dbi owns the DRM device itself and registers none, so on
such a board the lookup defers for ever and the touchscreen never
probes. The 'panel' phandle stays described in the binding
- the release timer is stopped with timer_shutdown_sync() in the
devres action (Sashiko AI review)
Changes since v1:
- the binding allows touchscreen-min-x/y, touchscreen-size-x/y and
touchscreen-fuzz-x/y as well, which touchscreen_parse_properties()
already honours; the 240x240 default is unchanged
- the binding allows the 'panel' phandle, and patch 5 is new: it
follows the panel's power sequence
- the binding commit message carries a justification (Conor Dooley)
- keycodes above KEY_MAX are rejected, which keeps the gesture key
lookup inside the input core's key bitmap (Sashiko AI review)
- the timed release is skipped when the interrupt handler re-armed the
timer while the timer callback waited for the lock (Sashiko AI
review)
- the Sashiko AI review also asked about additionalProperties next to
a $ref, which stays, as this binding allows a subset of
touchscreen.yaml (writing-schema.rst)
Link: https://lore.kernel.org/r/cover.1790851590.git.daniel@makrotopia.org
Link: https://lore.kernel.org/r/cover.1790944534.git.daniel@makrotopia.org
Link: https://lore.kernel.org/r/cover.1791103511.git.daniel@makrotopia.org
Daniel Golle (5):
dt-bindings: input: touchscreen: hynitron,cst816x: axes and panel
Input: hynitron-cst816x: respect touchscreen DT properties
Input: hynitron-cst816x: release gesture keys
Input: hynitron-cst816x: time out gesture key release
Input: hynitron-cst816x: set INPUT_PROP_DIRECT
.../input/touchscreen/hynitron,cst816x.yaml | 6 +-
drivers/input/touchscreen/hynitron-cst816x.c | 141 +++++++++++++-----
2 files changed, 112 insertions(+), 35 deletions(-)
base-commit: 6474fa070f2b8013b4b87350b775b8c3be6e8aac
--
2.56.0
next reply other threads:[~2026-10-05 21:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-05 21:10 Daniel Golle [this message]
2026-10-05 21:11 ` [PATCH v4 1/5] dt-bindings: input: touchscreen: hynitron,cst816x: axes and panel Daniel Golle
2026-10-06 2:51 ` Rob Herring
2026-10-05 21:11 ` [PATCH v4 2/5] Input: hynitron-cst816x: respect touchscreen DT properties Daniel Golle
2026-10-05 21:11 ` [PATCH v4 3/5] Input: hynitron-cst816x: release gesture keys Daniel Golle
2026-10-05 21:12 ` [PATCH v4 4/5] Input: hynitron-cst816x: time out gesture key release Daniel Golle
2026-10-05 21:12 ` [PATCH v4 5/5] Input: hynitron-cst816x: set INPUT_PROP_DIRECT Daniel Golle
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=cover.1791233147.git.daniel@makrotopia.org \
--to=daniel@makrotopia.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=kuzhylol@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=u.kleine-koenig@baylibre.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®