Unverified Commit 8f3eaad9 authored by Hans de Goede's avatar Hans de Goede Committed by Ilpo Järvinen
Browse files

Input: Add keycodes for electronic privacy screen on/off hotkeys

Add keycodes for hotkeys toggling the electronic privacy screen found on
some laptops on/off.

There already is an API for eprivacy screens as kernel-mode-setting drm
connector object properties:
https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties



this API also supports reporting when the eprivacy screen is turned on/off
by the embedded-controller (EC) in response to hotkey presses.

But on some laptops (e.g. the Dell Latitude 7300) the firmware does not
allow querying the presence nor the status of the eprivacy screen at boot.
This makes it impossible to implement the drm connector properties API
since drm objects do not allow adding new properties after creation and
the presence of the eprivacy cannot be detected at boot.

The first notice of the presence of an eprivacy screen on these laptops is
an EC generated (WMI) event when the eprivacy screen hotkeys are pressed.

In this case the new keycodes this change adds can be generated to notify
userspace of the eprivacy screen on/off hotkeys being pressed, so that
userspace can show the usual on-screen-display (OSD) notification for eprivacy
screen on/off to the user. This is similar to how e.g. touchpad on/off
keycodes are used to show the touchpad on/off OSD.

Signed-off-by: default avatarHans de Goede <hansg@kernel.org>
Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Link: https://patch.msgid.link/20251020152331.52870-2-hansg@kernel.org


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent 7f7d28c6
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -631,6 +631,18 @@
#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