dell-wmi: mask off upper bytes of event response
[firefly-linux-kernel-4.4.55.git] / drivers / platform / x86 / dell-wmi.c
index 2fab94162147e2b2bc0206bcad3e6b4b76764587..8a0d39ee9217e6dbcca0f0890e2c6bc45d4fd62f 100644 (file)
@@ -122,7 +122,12 @@ static void dell_wmi_notify(u32 value, void *context)
 
        if (obj && obj->type == ACPI_TYPE_BUFFER) {
                int *buffer = (int *)obj->buffer.pointer;
-               key = dell_wmi_get_entry_by_scancode(buffer[1]);
+               /*
+                *  The upper bytes of the event may contain
+                *  additional information, so mask them off for the
+                *  scancode lookup
+                */
+               key = dell_wmi_get_entry_by_scancode(buffer[1] & 0xFFFF);
                if (key) {
                        input_report_key(dell_wmi_input_dev, key->keycode, 1);
                        input_sync(dell_wmi_input_dev);