2022-02-17 18:42:30

by William Mahon

[permalink] [raw]
Subject: [PATCH] HID: Add mapping for KEY_DICTATE

Numerous keyboards are adding dicate keys which allows for text
messages to be dicated by a microphone.

This patch adds a new key definition KEY_DICTATE and maps 0x0c/0x0d8
usage code to this new keycode. Additionally hid-debug is adjusted to
recognize this new usage code as well.

Signed-off-by: William Mahon <[email protected]>
---

drivers/hid/hid-debug.c | 1 +
drivers/hid/hid-input.c | 1 +
include/uapi/linux/input-event-codes.h | 2 ++
3 files changed, 4 insertions(+)

diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
index 26c31d759914..8aa68416b1d7 100644
--- a/drivers/hid/hid-debug.c
+++ b/drivers/hid/hid-debug.c
@@ -969,6 +969,7 @@ static const char *keys[KEY_MAX + 1] = {
[KEY_ASSISTANT] = "Assistant",
[KEY_KBD_LAYOUT_NEXT] = "KbdLayoutNext",
[KEY_EMOJI_PICKER] = "EmojiPicker",
+ [KEY_DICTATE] = "Dictate",
[KEY_BRIGHTNESS_MIN] = "BrightnessMin",
[KEY_BRIGHTNESS_MAX] = "BrightnessMax",
[KEY_BRIGHTNESS_AUTO] = "BrightnessAuto",
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 112901d2d8d2..0c6c6db942ca 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -992,6 +992,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
case 0x0cd: map_key_clear(KEY_PLAYPAUSE); break;
case 0x0cf: map_key_clear(KEY_VOICECOMMAND); break;

+ case 0x0d8: map_key_clear(KEY_DICTATE); break;
case 0x0d9: map_key_clear(KEY_EMOJI_PICKER); break;

case 0x0e0: map_abs_clear(ABS_VOLUME); break;
diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
index 225ec87d4f22..12246594891c 100644
--- a/include/uapi/linux/input-event-codes.h
+++ b/include/uapi/linux/input-event-codes.h
@@ -735,6 +735,8 @@
#define KEY_KBD_LCD_MENU4 0x2bb
#define KEY_KBD_LCD_MENU5 0x2bc

+#define KEY_DICTATE 0x27b
+
#define BTN_TRIGGER_HAPPY 0x2c0
#define BTN_TRIGGER_HAPPY1 0x2c0
#define BTN_TRIGGER_HAPPY2 0x2c1
--
2.35.1.265.g69c8d7142f-goog


2022-02-17 19:48:40

by Harry Cutts

[permalink] [raw]
Subject: Re: [PATCH] HID: Add mapping for KEY_DICTATE

Hi Will,

On Wed, 16 Feb 2022 at 20:15, William Mahon <[email protected]> wrote:
>
> Numerous keyboards are adding dicate keys which allows for text
> messages to be dicated by a microphone.

Nit: a couple of typos for "dictate".

>
> This patch adds a new key definition KEY_DICTATE and maps 0x0c/0x0d8
> usage code to this new keycode. Additionally hid-debug is adjusted to
> recognize this new usage code as well.
>
> Signed-off-by: William Mahon <[email protected]>
> ---
>
> drivers/hid/hid-debug.c | 1 +
> drivers/hid/hid-input.c | 1 +
> include/uapi/linux/input-event-codes.h | 2 ++
> 3 files changed, 4 insertions(+)
>
> diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c
> index 26c31d759914..8aa68416b1d7 100644
> --- a/drivers/hid/hid-debug.c
> +++ b/drivers/hid/hid-debug.c
> @@ -969,6 +969,7 @@ static const char *keys[KEY_MAX + 1] = {
> [KEY_ASSISTANT] = "Assistant",
> [KEY_KBD_LAYOUT_NEXT] = "KbdLayoutNext",
> [KEY_EMOJI_PICKER] = "EmojiPicker",
> + [KEY_DICTATE] = "Dictate",
> [KEY_BRIGHTNESS_MIN] = "BrightnessMin",
> [KEY_BRIGHTNESS_MAX] = "BrightnessMax",
> [KEY_BRIGHTNESS_AUTO] = "BrightnessAuto",
> diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
> index 112901d2d8d2..0c6c6db942ca 100644
> --- a/drivers/hid/hid-input.c
> +++ b/drivers/hid/hid-input.c
> @@ -992,6 +992,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
> case 0x0cd: map_key_clear(KEY_PLAYPAUSE); break;
> case 0x0cf: map_key_clear(KEY_VOICECOMMAND); break;
>
> + case 0x0d8: map_key_clear(KEY_DICTATE); break;
> case 0x0d9: map_key_clear(KEY_EMOJI_PICKER); break;
>
> case 0x0e0: map_abs_clear(ABS_VOLUME); break;
> diff --git a/include/uapi/linux/input-event-codes.h b/include/uapi/linux/input-event-codes.h
> index 225ec87d4f22..12246594891c 100644
> --- a/include/uapi/linux/input-event-codes.h
> +++ b/include/uapi/linux/input-event-codes.h
> @@ -735,6 +735,8 @@
> #define KEY_KBD_LCD_MENU4 0x2bb
> #define KEY_KBD_LCD_MENU5 0x2bc
>
> +#define KEY_DICTATE 0x27b
> +

The list should be sorted in order of evdev code, so KEY_DICTATE
should go just below KEY_SELECTIVE_SCREENSHOT.

> #define BTN_TRIGGER_HAPPY 0x2c0
> #define BTN_TRIGGER_HAPPY1 0x2c0
> #define BTN_TRIGGER_HAPPY2 0x2c1
> --
> 2.35.1.265.g69c8d7142f-goog
>