]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
HID: asus: Add support for the ASUS FX503VD laptop
authorHans de Goede <hdegoede@redhat.com>
Mon, 26 Nov 2018 10:52:17 +0000 (11:52 +0100)
committerBenjamin Tissoires <benjamin.tissoires@redhat.com>
Fri, 30 Nov 2018 13:29:30 +0000 (14:29 +0100)
The ASUS FX503VD laptop uses an USB keyboard with several hotkeys
which use the Asus Vendor specific UsagePage.

This uses two usage-codes within the page which have not been seen
before, 0x7c for its mic-mute hotkey and 0x99 for Fn+F5 which has
a "fan" symbol as hotkey symbol on the keyb. we map this to KEY_PROG4
(PROG1-PROG3 are already used).

This commit adds the mappings for the 2 new usage codes and the USB-ids
for this keyboard to the hid-asus driver.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
drivers/hid/hid-asus.c
drivers/hid/hid-ids.h

index 61fb5a43c1cb7ddb7bcfc79f41f567ca837db2ad..ab8bd40a77ed59962dfa5553796d4406abc0298a 100644 (file)
@@ -522,6 +522,7 @@ static int asus_input_mapping(struct hid_device *hdev,
                case 0x20: asus_map_key_clear(KEY_BRIGHTNESSUP);                break;
                case 0x35: asus_map_key_clear(KEY_DISPLAY_OFF);         break;
                case 0x6c: asus_map_key_clear(KEY_SLEEP);               break;
+               case 0x7c: asus_map_key_clear(KEY_MICMUTE);             break;
                case 0x82: asus_map_key_clear(KEY_CAMERA);              break;
                case 0x88: asus_map_key_clear(KEY_RFKILL);                      break;
                case 0xb5: asus_map_key_clear(KEY_CALC);                        break;
@@ -540,6 +541,9 @@ static int asus_input_mapping(struct hid_device *hdev,
                /* Fn+Space Power4Gear Hybrid */
                case 0x5c: asus_map_key_clear(KEY_PROG3);               break;
 
+               /* Fn+F5 "fan" symbol on FX503VD */
+               case 0x99: asus_map_key_clear(KEY_PROG4);               break;
+
                default:
                        /* ASUS lazily declares 256 usages, ignore the rest,
                         * as some make the keyboard appear as a pointer device. */
@@ -817,6 +821,9 @@ static const struct hid_device_id asus_devices[] = {
                USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2), QUIRK_USE_KBD_BACKLIGHT },
        { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
                USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3), QUIRK_G752_KEYBOARD },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
+               USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD),
+         QUIRK_USE_KBD_BACKLIGHT },
        { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
                USB_DEVICE_ID_ASUSTEK_T100TA_KEYBOARD),
          QUIRK_T100_KEYBOARD | QUIRK_NO_CONSUMER_USAGES },
index ed35c9a9a11090a7d4714e2cdfa83a5ca6761b6c..4206428c0ba28e65c34d3612ca0c0e13b666861f 100644 (file)
 #define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD1 0x1854
 #define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2 0x1837
 #define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3 0x1822
+#define USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD 0x1869
 
 #define USB_VENDOR_ID_ATEN             0x0557
 #define USB_DEVICE_ID_ATEN_UC100KM     0x2004