From patchwork Wed Jun 10 19:40:46 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 29355 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n5AJiduT002234 for ; Wed, 10 Jun 2009 19:44:39 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758681AbZFJTof (ORCPT ); Wed, 10 Jun 2009 15:44:35 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757830AbZFJTof (ORCPT ); Wed, 10 Jun 2009 15:44:35 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:56325 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758681AbZFJToe (ORCPT ); Wed, 10 Jun 2009 15:44:34 -0400 Received: from imap1.linux-foundation.org (imap1.linux-foundation.org [140.211.169.55]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id n5AJelMW029431 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 10 Jun 2009 12:40:48 -0700 Received: from localhost.localdomain (localhost [127.0.0.1]) by imap1.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with ESMTP id n5AJekR7028796; Wed, 10 Jun 2009 12:40:46 -0700 Message-Id: <200906101940.n5AJekR7028796@imap1.linux-foundation.org> Subject: [patch 1/4] dell-wmi: mask off upper bytes of event response To: lenb@kernel.org Cc: linux-acpi@vger.kernel.org, akpm@linux-foundation.org, mario_limonciello@dell.com, mjg@redhat.com From: akpm@linux-foundation.org Date: Wed, 10 Jun 2009 12:40:46 -0700 X-Spam-Status: No, hits=-3.502 required=5 tests=AWL, BAYES_00, OSDL_HEADER_SUBJECT_BRACKETED X-Spam-Checker-Version: SpamAssassin 3.2.4-osdl_revision__1.47__ X-MIMEDefang-Filter: lf$Revision: 1.188 $ X-Scanned-By: MIMEDefang 2.63 on 140.211.169.13 Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org From: Mario Limonciello 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: Mario Limonciello Signed-off-by: Matthew Garrett Cc: Len Brown Signed-off-by: Andrew Morton --- drivers/platform/x86/dell-wmi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff -puN drivers/platform/x86/dell-wmi.c~dell-wmi-mask-off-upper-bytes-of-event-response drivers/platform/x86/dell-wmi.c --- a/drivers/platform/x86/dell-wmi.c~dell-wmi-mask-off-upper-bytes-of-event-response +++ a/drivers/platform/x86/dell-wmi.c @@ -122,7 +122,12 @@ 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]); + /* + * 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);