mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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

             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®