Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 75d71c40 authored by Mario Limonciello's avatar Mario Limonciello Committed by Len Brown
Browse files

dell-wmi: mask off upper bytes of event response



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.

Signed-off-by: default avatarMario Limonciello <mario_limonciello@dell.com>
Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 07a2039b
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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);