mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] toshiba_acpi: fix multimedia keys on Toshiba Sattelite A40
@ 2010-02-27 15:50 Frans Pop
  0 siblings, 0 replies; only message in thread
From: Frans Pop @ 2010-02-27 15:50 UTC (permalink / raw)
  To: linux-kernel; +Cc: Matthew Garrett, platform-driver-x86

Commit 6335e4d56681f6f08f24f4b812a72d402793d393 added hotkey support, but
fails to support the multimedia keys on some Toshiba laptops as they don't
generate key release events.
    
This was previously discussed in http://lkml.org/lkml/2009/4/11/139 and a
solution was found in private mail. The solution is to act on key press
events instead of on key release events.
    
Also remove one level of indentation.
    
Signed-off-by: Frans Pop <elendil@planet.nl>
Cc: Matthew Garrett <mjg@redhat.com>

diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 26c2117..56e4556 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -814,21 +814,23 @@ static void toshiba_acpi_notify(acpi_handle handle, u32 event, void *context)
 		if (hci_result == HCI_SUCCESS) {
 			if (value == 0x100)
 				continue;
-			else if (value & 0x80) {
-				key = toshiba_acpi_get_entry_by_scancode
-					(value & ~0x80);
-				if (!key) {
-					printk(MY_INFO "Unknown key %x\n",
-					       value & ~0x80);
-					continue;
-				}
-				input_report_key(toshiba_acpi.hotkey_dev,
-						 key->keycode, 1);
-				input_sync(toshiba_acpi.hotkey_dev);
-				input_report_key(toshiba_acpi.hotkey_dev,
-						 key->keycode, 0);
-				input_sync(toshiba_acpi.hotkey_dev);
+			/* act on key press; ignore key release */
+			if (value & 0x80)
+				continue;
+
+			key = toshiba_acpi_get_entry_by_scancode
+				(value);
+			if (!key) {
+				printk(MY_INFO "Unknown key %x\n",
+				       value);
+				continue;
 			}
+			input_report_key(toshiba_acpi.hotkey_dev,
+					 key->keycode, 1);
+			input_sync(toshiba_acpi.hotkey_dev);
+			input_report_key(toshiba_acpi.hotkey_dev,
+					 key->keycode, 0);
+			input_sync(toshiba_acpi.hotkey_dev);
 		} else if (hci_result == HCI_NOT_SUPPORTED) {
 			/* This is a workaround for an unresolved issue on
 			 * some machines where system events sporadically

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-02-27 15:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-27 15:50 [PATCH] toshiba_acpi: fix multimedia keys on Toshiba Sattelite A40 Frans Pop

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®