fujitsu-laptop: Support radio toggle button
authorMichał Kępień <kernel@kempniu.pl>
Wed, 24 Feb 2016 13:23:32 +0000 (14:23 +0100)
committerDarren Hart <dvhart@linux.intel.com>
Wed, 23 Mar 2016 17:05:48 +0000 (10:05 -0700)
Lifebook E734/E744/E754 has a radio toggle button which uses code 0x420.
Map it to KEY_RFKILL.

Signed-off-by: Michał Kępień <kernel@kempniu.pl>
Acked-by: Jonathan Woithe <jwoithe@just42.net>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
drivers/platform/x86/fujitsu-laptop.c

index 1c62caff93fdfce5e75924a84eb33a5af9fc00ae..ffc84cc7b1c79fc8b8bdecd5cd2ae1201b338194 100644 (file)
 #define KEY2_CODE      0x411
 #define KEY3_CODE      0x412
 #define KEY4_CODE      0x413
+#define KEY5_CODE      0x420
 
 #define MAX_HOTKEY_RINGBUFFER_SIZE 100
 #define RINGBUFFERSIZE 40
@@ -149,7 +150,7 @@ struct fujitsu_t {
        char phys[32];
        struct backlight_device *bl_device;
        struct platform_device *pf_device;
-       int keycode1, keycode2, keycode3, keycode4;
+       int keycode1, keycode2, keycode3, keycode4, keycode5;
 
        unsigned int max_brightness;
        unsigned int brightness_changed;
@@ -823,6 +824,7 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)
        set_bit(fujitsu->keycode2, input->keybit);
        set_bit(fujitsu->keycode3, input->keybit);
        set_bit(fujitsu->keycode4, input->keybit);
+       set_bit(fujitsu->keycode5, input->keybit);
        set_bit(KEY_UNKNOWN, input->keybit);
 
        error = input_register_device(input);
@@ -962,6 +964,9 @@ static void acpi_fujitsu_hotkey_notify(struct acpi_device *device, u32 event)
                        case KEY4_CODE:
                                keycode = fujitsu->keycode4;
                                break;
+                       case KEY5_CODE:
+                               keycode = fujitsu->keycode5;
+                               break;
                        case 0:
                                keycode = 0;
                                break;
@@ -1072,6 +1077,7 @@ static int __init fujitsu_init(void)
        fujitsu->keycode2 = KEY_PROG2;
        fujitsu->keycode3 = KEY_PROG3;
        fujitsu->keycode4 = KEY_PROG4;
+       fujitsu->keycode5 = KEY_RFKILL;
        dmi_check_system(fujitsu_dmi_table);
 
        result = acpi_bus_register_driver(&acpi_fujitsu_driver);