dell-wmi: Don't report keypresses on keybord illumination change
authorGabriele Mazzotta <gabriele.mzt@gmail.com>
Wed, 3 Dec 2014 23:16:23 +0000 (00:16 +0100)
committerDarren Hart <dvhart@linux.intel.com>
Wed, 3 Dec 2014 18:10:16 +0000 (10:10 -0800)
Keyboard illumination level changes are performed by the BIOS, so no
events should be reported on keypress. This is already done on systems
using the legacy keymap, do it also for systems that don't use it.

Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com>
drivers/platform/x86/dell-wmi.c

index 4c2a44da2fff14897e6db444cc1bbf5eef1ab924..6512a06bc0535d28e312ae7a697b6507de5dec40 100644 (file)
@@ -308,11 +308,16 @@ static const struct key_entry * __init dell_wmi_prepare_new_keymap(void)
        for (i = 0; i < hotkey_num; i++) {
                const struct dell_bios_keymap_entry *bios_entry =
                                        &dell_bios_hotkey_table->keymap[i];
-               keymap[i].type = KE_KEY;
-               keymap[i].code = bios_entry->scancode;
-               keymap[i].keycode = bios_entry->keycode < 256 ?
+               u16 keycode = bios_entry->keycode < 256 ?
                                    bios_to_linux_keycode[bios_entry->keycode] :
                                    KEY_RESERVED;
+
+               if (keycode == KEY_KBDILLUMTOGGLE)
+                       keymap[i].type = KE_IGNORE;
+               else
+                       keymap[i].type = KE_KEY;
+               keymap[i].code = bios_entry->scancode;
+               keymap[i].keycode = keycode;
        }
 
        keymap[hotkey_num].type = KE_END;