]> www.infradead.org Git - users/jedix/linux-maple.git/commit
platform/x86: dell-privacy: Add support for Dell hardware privacy
authorPerry Yuan <perry_yuan@dell.com>
Thu, 6 May 2021 11:56:05 +0000 (19:56 +0800)
committerHans de Goede <hdegoede@redhat.com>
Thu, 27 May 2021 09:20:48 +0000 (11:20 +0200)
commit4ed39d31efbdc8d2648e5ba1f2502e2ddb7f790c
tree75a11d1a019b405330352a7abc06f9a1624b52a2
parent11ff607ecdd3163e07c04b2bc37a83e6f0ab6c88
platform/x86: dell-privacy: Add support for Dell hardware privacy

add support for Dell privacy driver for the Dell units equipped
hardware privacy design, which protect users privacy of audio and
camera from hardware level. Once the audio or camera privacy mode
activated, any applications will not get any audio or video stream
when user pressed ctrl+F4 hotkey, audio privacy mode will be
enabled, micmute led will be also changed accordingly
The micmute led is fully controlled by hardware & EC(embedded controller)
and camera mute hotkey is Ctrl+F9. Currently design only emits
SW_CAMERA_LENS_COVER event while the camera lens shutter will be
changed by EC & HW(hardware) control

*The flow is like this:
1) User presses key. HW does stuff with this key (timeout timer is started)
2) WMI event is emitted from BIOS to kernel
3) WMI event is received by dell-privacy
4) KEY_MICMUTE emitted from dell-privacy
5) Userland picks up key and modifies kcontrol for SW mute
6) Codec kernel driver catches and calls ledtrig_audio_set
7) dell-privacy notifies EC, the timeout is cancelled and the HW mute
   is activated. If the EC is not notified then the HW mic mute will
   activate when the timeout triggers, just a bit later than with the
   active ack.

Signed-off-by: Perry Yuan <perry_yuan@dell.com>
Link: https://lore.kernel.org/r/20210506115605.1504-1-Perry_Yuan@Dell.com
[hdegoede@redhat.com: Rework Kconfig/Makefile bits + other small fixups]
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Documentation/ABI/testing/sysfs-platform-dell-privacy-wmi [new file with mode: 0644]
MAINTAINERS
drivers/platform/x86/dell/Kconfig
drivers/platform/x86/dell/Makefile
drivers/platform/x86/dell/dell-laptop.c
drivers/platform/x86/dell/dell-wmi-base.c
drivers/platform/x86/dell/dell-wmi-privacy.c [new file with mode: 0644]
drivers/platform/x86/dell/dell-wmi-privacy.h [new file with mode: 0644]