Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 01 Dec 2025 20:43:15 +0000
From:      Vladimir Kondratyev <wulf@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 8d9a5d44b155 - main - evdev: Sync event codes with Linux kernel 6.18
Message-ID:  <692dfde3.31989.779fec7b@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by wulf:

URL: https://cgit.FreeBSD.org/src/commit/?id=8d9a5d44b155af7123893a6948ad7e86b48c57b3

commit 8d9a5d44b155af7123893a6948ad7e86b48c57b3
Author:     Vladimir Kondratyev <wulf@FreeBSD.org>
AuthorDate: 2025-12-01 20:42:15 +0000
Commit:     Vladimir Kondratyev <wulf@FreeBSD.org>
CommitDate: 2025-12-01 20:42:15 +0000

    evdev: Sync event codes with Linux kernel 6.18
    
    MFC after:      1 month
---
 sys/dev/evdev/input-event-codes.h | 28 ++++++++++++++-
 sys/dev/evdev/input.h             | 73 +++++++++++++++++++++++----------------
 2 files changed, 71 insertions(+), 30 deletions(-)

diff --git a/sys/dev/evdev/input-event-codes.h b/sys/dev/evdev/input-event-codes.h
index 59eb8e104c87..81c88ec86b9b 100644
--- a/sys/dev/evdev/input-event-codes.h
+++ b/sys/dev/evdev/input-event-codes.h
@@ -39,6 +39,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_PRESSUREPAD		0x07	/* pressure triggers clicks */
 
 #define	INPUT_PROP_MAX			0x1f
 #define	INPUT_PROP_CNT			(INPUT_PROP_MAX + 1)
@@ -531,6 +532,7 @@
 #define	KEY_NOTIFICATION_CENTER	0x1bc	/* Show/hide the notification center */
 #define	KEY_PICKUP_PHONE	0x1bd	/* Answer incoming call */
 #define	KEY_HANGUP_PHONE	0x1be	/* Decline incoming call */
+#define	KEY_LINK_PHONE		0x1bf	/* AL Phone Syncing */
 
 #define	KEY_DEL_EOL		0x1c0
 #define	KEY_DEL_EOS		0x1c1
@@ -612,8 +614,14 @@
 #define	BTN_DPAD_LEFT		0x222
 #define	BTN_DPAD_RIGHT		0x223
 
+#define	BTN_GRIPL		0x224
+#define	BTN_GRIPR		0x225
+#define	BTN_GRIPL2		0x226
+#define	BTN_GRIPR2		0x227
+
 #define	KEY_ALS_TOGGLE		0x230	/* Ambient light sensor */
 #define	KEY_ROTATE_LOCK_TOGGLE	0x231	/* Display rotation lock */
+#define	KEY_REFRESH_RATE_TOGGLE	0x232	/* Display refresh rate toggle */
 
 #define	KEY_BUTTONCONFIG		0x240	/* AL Button Configuration */
 #define	KEY_TASKMANAGER		0x241	/* AL Task/Project Manager */
@@ -629,10 +637,24 @@
 #define	KEY_CAMERA_ACCESS_ENABLE	0x24b	/* Enables programmatic access to camera devices. (HUTRR72) */
 #define	KEY_CAMERA_ACCESS_DISABLE	0x24c	/* Disables programmatic access to camera devices. (HUTRR72) */
 #define	KEY_CAMERA_ACCESS_TOGGLE	0x24d	/* Toggles the current state of the camera access control. (HUTRR72) */
+#define	KEY_ACCESSIBILITY		0x24e	/* Toggles the system bound accessibility UI/command (HUTRR116) */
+#define	KEY_DO_NOT_DISTURB		0x24f	/* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/
 
 #define	KEY_BRIGHTNESS_MIN		0x250	/* Set Brightness to Minimum */
 #define	KEY_BRIGHTNESS_MAX		0x251	/* Set Brightness to Maximum */
 
+/*
+ * Keycodes for hotkeys toggling the electronic privacy screen found on some
+ * laptops on/off. Note when the embedded-controller turns on/off the eprivacy
+ * screen itself then the state should be reported through drm connecter props:
+ * https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties
+ * Except when implementing the drm connecter properties API is not possible
+ * because e.g. the firmware does not allow querying the presence and/or status
+ * of the eprivacy screen at boot.
+ */
+#define	KEY_EPRIVACY_SCREEN_ON		0x252
+#define	KEY_EPRIVACY_SCREEN_OFF		0x253
+
 #define	KEY_KBDINPUTASSIST_PREV		0x260
 #define	KEY_KBDINPUTASSIST_NEXT		0x261
 #define	KEY_KBDINPUTASSIST_PREVGROUP		0x262
@@ -773,6 +795,9 @@
 #define	KEY_KBD_LCD_MENU4		0x2bb
 #define	KEY_KBD_LCD_MENU5		0x2bc
 
+/* Performance Boost key (Alienware)/G-Mode key (Dell) */
+#define	KEY_PERFORMANCE			0x2bd
+
 #define	BTN_TRIGGER_HAPPY		0x2c0
 #define	BTN_TRIGGER_HAPPY1		0x2c0
 #define	BTN_TRIGGER_HAPPY2		0x2c1
@@ -932,7 +957,8 @@
 #define	SW_MUTE_DEVICE		0x0e  /* set = device disabled */
 #define	SW_PEN_INSERTED		0x0f  /* set = pen inserted */
 #define	SW_MACHINE_COVER	0x10  /* set = cover closed */
-#define	SW_MAX			0x10
+#define	SW_USB_INSERT		0x11  /* set = USB audio device connected */
+#define	SW_MAX			0x11
 #define	SW_CNT			(SW_MAX+1)
 
 /*
diff --git a/sys/dev/evdev/input.h b/sys/dev/evdev/input.h
index 3b87101da75f..ce0fb616a3df 100644
--- a/sys/dev/evdev/input.h
+++ b/sys/dev/evdev/input.h
@@ -142,6 +142,8 @@ struct input_keymap_entry {
 #define	BUS_RMI			0x1D
 #define	BUS_CEC			0x1E
 #define	BUS_INTEL_ISHTP		0x1F
+#define	BUS_AMD_SFH		0x20
+#define	BUS_SDW			0x21
 
 /*
  * MT_TOOL types
@@ -203,20 +205,6 @@ struct ff_condition_effect {
 	int16_t		center;		/* center of dead zone */
 };
 
-/*
- * Force feedback periodic effect types
- */
-
-#define	FF_SQUARE	0x58
-#define	FF_TRIANGLE	0x59
-#define	FF_SINE		0x5a
-#define	FF_SAW_UP	0x5b
-#define	FF_SAW_DOWN	0x5c
-#define	FF_CUSTOM	0x5d
-
-#define	FF_WAVEFORM_MIN	FF_SQUARE
-#define	FF_WAVEFORM_MAX	FF_CUSTOM
-
 struct ff_periodic_effect {
 	uint16_t		waveform;
 	uint16_t		period;		/* ms */
@@ -233,21 +221,14 @@ struct ff_rumble_effect {
 	uint16_t	weak_magnitude;		/* magnitude of the light motor */
 };
 
-/*
- * Force feedback effect types
- */
-
-#define	FF_RUMBLE	0x50
-#define	FF_PERIODIC	0x51
-#define	FF_CONSTANT	0x52
-#define	FF_SPRING	0x53
-#define	FF_FRICTION	0x54
-#define	FF_DAMPER	0x55
-#define	FF_INERTIA	0x56
-#define	FF_RAMP		0x57
-
-#define	FF_EFFECT_MIN	FF_RUMBLE
-#define	FF_EFFECT_MAX	FF_RAMP
+struct ff_haptic_effect {
+	uint16_t	hid_usage;
+	uint16_t	vendor_id;
+	uint8_t		vendor_waveform_page;
+	uint16_t	intensity;
+	uint16_t	repeat_count;
+	uint16_t	retrigger_period;
+};
 
 struct ff_effect {
 	uint16_t		type;
@@ -262,9 +243,41 @@ struct ff_effect {
 		struct ff_periodic_effect	periodic;
 		struct ff_condition_effect	condition[2]; /* One for each axis */
 		struct ff_rumble_effect		rumble;
+		struct ff_haptic_effect		haptic;
 	} u;
 };
 
+/*
+ * Force feedback effect types
+ */
+
+#define	FF_HAPTIC	0x4f
+#define	FF_RUMBLE	0x50
+#define	FF_PERIODIC	0x51
+#define	FF_CONSTANT	0x52
+#define	FF_SPRING	0x53
+#define	FF_FRICTION	0x54
+#define	FF_DAMPER	0x55
+#define	FF_INERTIA	0x56
+#define	FF_RAMP		0x57
+
+#define	FF_EFFECT_MIN	FF_HAPTIC
+#define	FF_EFFECT_MAX	FF_RAMP
+
+/*
+ * Force feedback periodic effect types
+ */
+
+#define	FF_SQUARE	0x58
+#define	FF_TRIANGLE	0x59
+#define	FF_SINE		0x5a
+#define	FF_SAW_UP	0x5b
+#define	FF_SAW_DOWN	0x5c
+#define	FF_CUSTOM	0x5d
+
+#define	FF_WAVEFORM_MIN	FF_SQUARE
+#define	FF_WAVEFORM_MAX	FF_CUSTOM
+
 /*
  * force feedback device properties
  */
@@ -272,6 +285,8 @@ struct ff_effect {
 #define	FF_GAIN		0x60
 #define	FF_AUTOCENTER	0x61
 
+#define	FF_MAX_EFFECTS	FF_GAIN
+
 #define	FF_MAX		0x7f
 #define	FF_CNT		(FF_MAX+1)
 


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?692dfde3.31989.779fec7b>