]> git.baikalelectronics.ru Git - kernel.git/commitdiff
HID: Add Mapping for System Microphone Mute
authorJingyuan Liang <jingyliang@chromium.org>
Tue, 13 Dec 2022 22:53:30 +0000 (22:53 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 Mar 2023 15:43:56 +0000 (16:43 +0100)
[ Upstream commit 2d60f9f4f26785a00273cb81fe60eff129ebd449 ]

HUTRR110 added a new usage code for a key that is supposed to
mute/unmute microphone system-wide.

Map the new usage code(0x01 0xa9) to keycode KEY_MICMUTE.
Additionally hid-debug is adjusted to recognize this keycode as well.

Signed-off-by: Jingyuan Liang <jingyliang@chromium.org>
Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hid/hid-debug.c
drivers/hid/hid-input.c

index 419d8dec7e498c77a8278e408254f806bec81ad5..0066eab60576c1ce9a9802bd0a501c721e00d2f1 100644 (file)
@@ -933,6 +933,7 @@ static const char *keys[KEY_MAX + 1] = {
        [KEY_VOICECOMMAND] = "VoiceCommand",
        [KEY_EMOJI_PICKER] = "EmojiPicker",
        [KEY_DICTATE] = "Dictate",
+       [KEY_MICMUTE] = "MicrophoneMute",
        [KEY_BRIGHTNESS_MIN] = "BrightnessMin",
        [KEY_BRIGHTNESS_MAX] = "BrightnessMax",
        [KEY_BRIGHTNESS_AUTO] = "BrightnessAuto",
index d1ba6fafe960f453745021fe5f1b1061f259ddd4..004aa3cdeacc7f0e05055f084a9c1b5347a1be02 100644 (file)
@@ -671,6 +671,14 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
                        break;
                }
 
+               if ((usage->hid & 0xf0) == 0xa0) {      /* SystemControl */
+                       switch (usage->hid & 0xf) {
+                       case 0x9: map_key_clear(KEY_MICMUTE); break;
+                       default: goto ignore;
+                       }
+                       break;
+               }
+
                if ((usage->hid & 0xf0) == 0xb0) {      /* SC - Display */
                        switch (usage->hid & 0xf) {
                        case 0x05: map_key_clear(KEY_SWITCHVIDEOMODE); break;