HID: asus: add keycodes for 0x6a, 0x4b, and 0xc7
authorLuke D. Jones <luke@ljones.dev>
Wed, 3 May 2023 03:47:10 +0000 (15:47 +1200)
committerJiri Kosina <jkosina@suse.cz>
Tue, 23 May 2023 13:17:24 +0000 (15:17 +0200)
These two keys are found on some models with dual display.
- 0x6a is intended for controlling the secondary screen brightness.
- 0x4b is intended for toggling the arrow keys between arrows and
  page up / page down.
This key is found on a slightly modified keyboard layout.
- 0xc7 is intended to cycle through keybvoard brightnesses (upwards) but
  there is not suitable existing code for this behaviour. Using
  `KEY_KBDILLUMTOGGLE` is different behaviour to Windows but at least
  is picked up by many desktops already.

Signed-off-by: Luke D. Jones <luke@ljones.dev>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-asus.c

index 46ecc7d..ddfd37e 100644 (file)
@@ -884,6 +884,7 @@ static int asus_input_mapping(struct hid_device *hdev,
                case 0xb5: asus_map_key_clear(KEY_CALC);                        break;
                case 0xc4: asus_map_key_clear(KEY_KBDILLUMUP);          break;
                case 0xc5: asus_map_key_clear(KEY_KBDILLUMDOWN);                break;
+               case 0xc7: asus_map_key_clear(KEY_KBDILLUMTOGGLE);      break;
 
                /* ASUS touchpad toggle */
                case 0x6b: asus_map_key_clear(KEY_F21);                 break;
@@ -912,6 +913,12 @@ static int asus_input_mapping(struct hid_device *hdev,
                /* Fn+Right Aura mode next on N-Key keyboard */
                case 0xb3: asus_map_key_clear(KEY_PROG3);               break;
 
+               /* Screenpad toggle on N-Key keyboard */
+               case 0x6a: asus_map_key_clear(KEY_F13);         break;
+
+               /* Arrows/Page-up/Down toggle on N-Key keyboard */
+               case 0x4b: asus_map_key_clear(KEY_F14);         break;
+
                default:
                        /* ASUS lazily declares 256 usages, ignore the rest,
                         * as some make the keyboard appear as a pointer device. */