Skip to content

Commit de623b1

Browse files
Hans de Goedebsach64
authored andcommitted
platform/x86: dell-wmi-base: Handle electronic privacy screen on/off events
Add handling for events for the electronic privacy screen found on some models (e.g. Dell Latitude 7300) being toggled on/off. Emit KEY_EPRIVACY_SCREEN_OFF / KEY_EPRIVACY_SCREEN_ON events for this so that userspace can show the usual on-screen-display (OSD) notification for eprivacy screen on/off to the user. Signed-off-by: Hans de Goede <[email protected]> Link: https://patch.msgid.link/[email protected] Reviewed-by: Ilpo Järvinen <[email protected]> Signed-off-by: Ilpo Järvinen <[email protected]>
1 parent 924c005 commit de623b1

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

drivers/platform/x86/dell/dell-wmi-base.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,13 @@ static const struct key_entry dell_wmi_keymap_type_0012[] = {
365365
/* Backlight brightness change event */
366366
{ KE_IGNORE, 0x0003, { KEY_RESERVED } },
367367

368+
/*
369+
* Electronic privacy screen toggled, extended data gives state,
370+
* separate entries for on/off see handling in dell_wmi_process_key().
371+
*/
372+
{ KE_KEY, 0x000c, { KEY_EPRIVACY_SCREEN_OFF } },
373+
{ KE_KEY, 0x000c, { KEY_EPRIVACY_SCREEN_ON } },
374+
368375
/* Ultra-performance mode switch request */
369376
{ KE_IGNORE, 0x000d, { KEY_RESERVED } },
370377

@@ -435,6 +442,11 @@ static int dell_wmi_process_key(struct wmi_device *wdev, int type, int code, u16
435442
"Dell tablet mode switch",
436443
SW_TABLET_MODE, !buffer[0]);
437444
return 1;
445+
} else if (type == 0x0012 && code == 0x000c && remaining > 0) {
446+
/* Eprivacy toggle, switch to "on" key entry for on events */
447+
if (buffer[0] == 2)
448+
key++;
449+
used = 1;
438450
} else if (type == 0x0012 && code == 0x000d && remaining > 0) {
439451
value = (buffer[2] == 2);
440452
used = 1;

0 commit comments

Comments
 (0)