From: Mario Limonciello <mario_limonciello@xxxxxxxx> In debugging with some future machines that actually contain BIOS level support for dell-wmi, I've determined that the upper half of the data that comes back from wmi_get_event_data may sometimes contain extra information that isn't currently relevant when pulling scan codes out of the data. This causes dell-wmi to improperly respond to these events. Cc: Matthew Garrett <mjg@xxxxxxxxxx> Cc: Dmitry Torokhov <dtor@xxxxxxx> Cc: Len Brown <len.brown@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/platform/x86/dell-wmi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/platform/x86/dell-wmi.c~dell-wmi-mask-off-bis-provided-garbage-in-scancode-data drivers/platform/x86/dell-wmi.c --- a/drivers/platform/x86/dell-wmi.c~dell-wmi-mask-off-bis-provided-garbage-in-scancode-data +++ a/drivers/platform/x86/dell-wmi.c @@ -122,7 +122,7 @@ static void dell_wmi_notify(u32 value, v if (obj && obj->type == ACPI_TYPE_BUFFER) { int *buffer = (int *)obj->buffer.pointer; - key = dell_wmi_get_entry_by_scancode(buffer[1]); + key = dell_wmi_get_entry_by_scancode(0xFFFF & buffer[1]); if (key) { input_report_key(dell_wmi_input_dev, key->keycode, 1); input_sync(dell_wmi_input_dev); @@ -130,7 +130,7 @@ static void dell_wmi_notify(u32 value, v input_sync(dell_wmi_input_dev); } else printk(KERN_INFO "dell-wmi: Unknown key %x pressed\n", - buffer[1]); + 0xFFFF & buffer[1]); } } _ -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html