Hi: 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. I'm attaching a patch (Exchange would munge up the line breaks otherwise). Thanks, -- Mario Limonciello *Dell | Linux Engineering* mario_limonciello@xxxxxxxx
--- a/drivers/platform/x86/dell-wmi.c~ 2009-04-28 12:32:32.000000000 -0500 +++ b/drivers/platform/x86/dell-wmi.c 2009-04-28 12:33:02.000000000 -0500 @@ -182,7 +182,7 @@ 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); @@ -190,7 +190,7 @@ input_sync(dell_wmi_input_dev); } else printk(KERN_INFO "dell-wmi: Unknown key %x pressed\n", - buffer[1]); + 0xFFFF & buffer[1]); } }
Attachment:
signature.asc
Description: OpenPGP digital signature