Skip to content

Commit ae8966b

Browse files
whotdtor
authored andcommitted
Input: rename INPUT_PROP_HAPTIC_TOUCHPAD to INPUT_PROP_PRESSUREPAD
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 20ccc8d ("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 7075ae4 ("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> Link: https://patch.msgid.link/20251106114534.GA405512@tassie Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
1 parent f39b6c4 commit ae8966b

File tree

3 files changed

+20
-9
lines changed

3 files changed

+20
-9
lines changed

Documentation/input/event-codes.rst

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -400,19 +400,30 @@ can report through the rotational axes (absolute and/or relative rx, ry, rz).
400400
All other axes retain their meaning. A device must not mix
401401
regular directional axes and accelerometer axes on the same event node.
402402

403-
INPUT_PROP_HAPTIC_TOUCHPAD
404-
--------------------------
403+
INPUT_PROP_PRESSUREPAD
404+
----------------------
405+
406+
The INPUT_PROP_PRESSUREPAD property indicates that the device provides
407+
simulated haptic feedback (e.g. a vibrator motor situated below the surface)
408+
instead of physical haptic feedback (e.g. a hinge). This property is only set
409+
if the device:
405410

406-
The INPUT_PROP_HAPTIC_TOUCHPAD property indicates that device:
407-
- supports simple haptic auto and manual triggering
408411
- can differentiate between at least 5 fingers
409412
- uses correct resolution for the X/Y (units and value)
410-
- reports correct force per touch, and correct units for them (newtons or grams)
411413
- follows the MT protocol type B
412414

415+
If the simulated haptic feedback is controllable by userspace the device must:
416+
417+
- support simple haptic auto and manual triggering, and
418+
- report correct force per touch, and correct units for them (newtons or grams), and
419+
- provide the EV_FF FF_HAPTIC force feedback effect.
420+
413421
Summing up, such devices follow the MS spec for input devices in
414-
Win8 and Win8.1, and in addition support the Simple haptic controller HID table,
415-
and report correct units for the pressure.
422+
Win8 and Win8.1, and in addition may support the Simple haptic controller HID
423+
table, and report correct units for the pressure.
424+
425+
Where applicable, this property is set in addition to INPUT_PROP_BUTTONPAD, it
426+
does not replace that property.
416427

417428
Guidelines
418429
==========

drivers/hid/hid-haptic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ int hid_haptic_input_configured(struct hid_device *hdev,
8686
if (hi->application == HID_DG_TOUCHPAD) {
8787
if (haptic->auto_trigger_report &&
8888
haptic->manual_trigger_report) {
89-
__set_bit(INPUT_PROP_HAPTIC_TOUCHPAD, hi->input->propbit);
89+
__set_bit(INPUT_PROP_PRESSUREPAD, hi->input->propbit);
9090
return 1;
9191
}
9292
return 0;

include/uapi/linux/input-event-codes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */
2828
#define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */
2929
#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */
30-
#define INPUT_PROP_HAPTIC_TOUCHPAD 0x07 /* is a haptic touchpad */
30+
#define INPUT_PROP_PRESSUREPAD 0x07 /* pressure triggers clicks */
3131

3232
#define INPUT_PROP_MAX 0x1f
3333
#define INPUT_PROP_CNT (INPUT_PROP_MAX + 1)

0 commit comments

Comments
 (0)