From: Peter Hutterer <peter.hutterer@who-t.net>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Benjamin Tissoires <bentiss@kernel.org>,
Jonathan Denose <jdenose@google.com>,
Jiri Kosina <jikos@kernel.org>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Jonathan Corbet <corbet@lwn.net>,
Henrik Rydberg <rydberg@bitmath.org>,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, Angela Czubak <aczubak@google.com>,
Sean O'Brien <seobrien@google.com>,
Randy Dunlap <rdunlap@infradead.org>
Subject: Re: [PATCH v3] Input: rename INPUT_PROP_HAPTIC_TOUCHPAD to INPUT_PROP_PRESSUREPAD
Date: Thu, 13 Nov 2025 19:20:16 +1000 [thread overview]
Message-ID: <20251113092016.GA1843303@quokka> (raw)
In-Reply-To: <c7popmowkdilnthufvne4rednntgae2cxqwdvmd3tkfeji24nl@yhpwili7qobt>
Dmitry - gentle ping?
Cheers,
Peter
On Thu, Nov 06, 2025 at 03:32:56PM +0100, Benjamin Tissoires wrote:
> On Nov 06 2025, Peter Hutterer wrote:
> > And expand it to encompass all pressure pads.
> >
> > Definition: "pressure pad" as used here as includes all touchpads that
> > use physical pressure to convert to click, without physical hinges. Also
> > called haptic touchpads in general parlance, Synaptics calls them
> > ForcePads.
> >
> > Most (all?) pressure pads are currently advertised as
> > INPUT_PROP_BUTTONPAD. The suggestion to identify them as pressure pads
> > by defining the resolution on ABS_MT_PRESSURE has been in the docs since
> > commit 20ccc8dd38a3 ("Documentation: input: define
> > ABS_PRESSURE/ABS_MT_PRESSURE resolution as grams") but few devices
> > provide this information.
> >
> > In userspace it's thus impossible to determine whether a device is a
> > true pressure pad (pressure equals pressure) or a normal clickpad with
> > (pressure equals finger size).
> >
> > Commit 7075ae4ac9db ("Input: add INPUT_PROP_HAPTIC_TOUCHPAD") introduces
> > INPUT_PROP_HAPTIC_TOUCHPAD but restricted it to those touchpads that
> > have support for userspace-controlled effects. Let's expand and rename
> > that definition to include all pressure pad touchpads since those that
> > do support FF effects can be identified by the presence of the
> > FF_HAPTIC bit.
> >
> > This means:
> > - clickpad: INPUT_PROP_BUTTONPAD
> > - pressurepad: INPUT_PROP_BUTTONPAD + INPUT_PROP_PRESSUREPAD
> > - pressurepad with configurable haptics:
> > INPUT_PROP_BUTTONPAD + INPUT_PROP_PRESSUREPAD + FF_HAPTIC
> >
> > Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
>
> Acked-by: Benjamin Tissoires <bentiss@kernel.org>
>
> Unless Jiri has any problem with it, I guess this would be fine going
> through your tree Dmitry.
>
> Cheers,
> Benjamin
>
>
> > ---
> > ftr, I picked PRESSUREPAD over Dmitry's PRESSURE_TOUCHPAD suggestion
> > because it matches better with the existing BUTTONPAD.
> >
> > Changes to v1: extra empty lines to render the lists as lists
> > Changes to v2: rename to PRESSUREPAD and rename it in the instances
> > where it's used in the code
> >
> > v1: https://lore.kernel.org/linux-input/20251030011735.GA969565@quokka/T/#u
> > v2: https://lore.kernel.org/linux-input/20251030011735.GA969565@quokka/T/#m9504de27b02d00a55d540fd9fec9aed3edd0133c
> >
> > Documentation/input/event-codes.rst | 25 ++++++++++++++++++-------
> > drivers/hid/hid-haptic.c | 2 +-
> > include/uapi/linux/input-event-codes.h | 2 +-
> > 3 files changed, 20 insertions(+), 9 deletions(-)
> >
> > diff --git a/Documentation/input/event-codes.rst b/Documentation/input/event-codes.rst
> > index 1ead9bb8d9c6..4424cbff251f 100644
> > --- a/Documentation/input/event-codes.rst
> > +++ b/Documentation/input/event-codes.rst
> > @@ -400,19 +400,30 @@ can report through the rotational axes (absolute and/or relative rx, ry, rz).
> > All other axes retain their meaning. A device must not mix
> > regular directional axes and accelerometer axes on the same event node.
> >
> > -INPUT_PROP_HAPTIC_TOUCHPAD
> > ---------------------------
> > +INPUT_PROP_PRESSUREPAD
> > +----------------------
> > +
> > +The INPUT_PROP_PRESSUREPAD property indicates that the device provides
> > +simulated haptic feedback (e.g. a vibrator motor situated below the surface)
> > +instead of physical haptic feedback (e.g. a hinge). This property is only set
> > +if the device:
> >
> > -The INPUT_PROP_HAPTIC_TOUCHPAD property indicates that device:
> > -- supports simple haptic auto and manual triggering
> > - can differentiate between at least 5 fingers
> > - uses correct resolution for the X/Y (units and value)
> > -- reports correct force per touch, and correct units for them (newtons or grams)
> > - follows the MT protocol type B
> >
> > +If the simulated haptic feedback is controllable by userspace the device must:
> > +
> > +- support simple haptic auto and manual triggering, and
> > +- report correct force per touch, and correct units for them (newtons or grams), and
> > +- provide the EV_FF FF_HAPTIC force feedback effect.
> > +
> > Summing up, such devices follow the MS spec for input devices in
> > -Win8 and Win8.1, and in addition support the Simple haptic controller HID table,
> > -and report correct units for the pressure.
> > +Win8 and Win8.1, and in addition may support the Simple haptic controller HID
> > +table, and report correct units for the pressure.
> > +
> > +Where applicable, this property is set in addition to INPUT_PROP_BUTTONPAD, it
> > +does not replace that property.
> >
> > Guidelines
> > ==========
> > diff --git a/drivers/hid/hid-haptic.c b/drivers/hid/hid-haptic.c
> > index aa090684c1f2..fc8a9997f815 100644
> > --- a/drivers/hid/hid-haptic.c
> > +++ b/drivers/hid/hid-haptic.c
> > @@ -86,7 +86,7 @@ int hid_haptic_input_configured(struct hid_device *hdev,
> > if (hi->application == HID_DG_TOUCHPAD) {
> > if (haptic->auto_trigger_report &&
> > haptic->manual_trigger_report) {
> > - __set_bit(INPUT_PROP_HAPTIC_TOUCHPAD, hi->input->propbit);
> > + __set_bit(INPUT_PROP_PRESSUREPAD, hi->input->propbit);
> > return 1;
> > }
> > return 0;
> > diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
> > index 8ba48590bd2c..d21172c6a266 100644
> > --- a/include/uapi/linux/input-event-codes.h
> > +++ b/include/uapi/linux/input-event-codes.h
> > @@ -27,7 +27,7 @@
> > #define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */
> > #define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */
> > #define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */
> > -#define INPUT_PROP_HAPTIC_TOUCHPAD 0x07 /* is a haptic touchpad */
> > +#define INPUT_PROP_PRESSUREPAD 0x07 /* pressure triggers clicks */
> >
> > #define INPUT_PROP_MAX 0x1f
> > #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1)
> > --
> > 2.51.1
> >
next prev parent reply other threads:[~2025-11-13 9:20 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-30 1:17 [PATCH] Documentation: input: expand INPUT_PROP_HAPTIC_TOUCHPAD to all pressure pads Peter Hutterer
2025-10-30 1:35 ` Randy Dunlap
2025-10-31 4:12 ` [PATCH v2] " Peter Hutterer
2025-11-05 5:09 ` Dmitry Torokhov
2025-11-05 6:03 ` Peter Hutterer
2025-11-05 21:50 ` Dmitry Torokhov
2025-11-06 11:45 ` [PATCH v3] Input: rename INPUT_PROP_HAPTIC_TOUCHPAD to INPUT_PROP_PRESSUREPAD Peter Hutterer
2025-11-06 14:32 ` Benjamin Tissoires
2025-11-13 9:20 ` Peter Hutterer [this message]
2025-11-18 7:38 ` Dmitry Torokhov
2025-12-15 16:51 ` Dmitry V. Levin
2025-12-15 17:20 ` Jiri Kosina
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=20251113092016.GA1843303@quokka \
--to=peter.hutterer@who-t.net \
--cc=aczubak@google.com \
--cc=bentiss@kernel.org \
--cc=corbet@lwn.net \
--cc=dmitry.torokhov@gmail.com \
--cc=jdenose@google.com \
--cc=jikos@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rdunlap@infradead.org \
--cc=rydberg@bitmath.org \
--cc=seobrien@google.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;
as well as URLs for NNTP newsgroup(s).