diff options
| -rw-r--r-- | drivers/platform/x86/toshiba_acpi.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c index 26c211724acf..405b969734d6 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) | |||
| 814 | if (hci_result == HCI_SUCCESS) { | 814 | if (hci_result == HCI_SUCCESS) { |
| 815 | if (value == 0x100) | 815 | if (value == 0x100) |
| 816 | continue; | 816 | continue; |
| 817 | else if (value & 0x80) { | 817 | /* act on key press; ignore key release */ |
| 818 | key = toshiba_acpi_get_entry_by_scancode | 818 | if (value & 0x80) |
| 819 | (value & ~0x80); | 819 | continue; |
| 820 | if (!key) { | 820 | |
| 821 | printk(MY_INFO "Unknown key %x\n", | 821 | key = toshiba_acpi_get_entry_by_scancode |
| 822 | value & ~0x80); | 822 | (value); |
| 823 | continue; | 823 | if (!key) { |
| 824 | } | 824 | printk(MY_INFO "Unknown key %x\n", |
| 825 | input_report_key(toshiba_acpi.hotkey_dev, | 825 | value); |
| 826 | key->keycode, 1); | 826 | continue; |
| 827 | input_sync(toshiba_acpi.hotkey_dev); | ||
| 828 | input_report_key(toshiba_acpi.hotkey_dev, | ||
| 829 | key->keycode, 0); | ||
| 830 | input_sync(toshiba_acpi.hotkey_dev); | ||
| 831 | } | 827 | } |
| 828 | input_report_key(toshiba_acpi.hotkey_dev, | ||
| 829 | key->keycode, 1); | ||
| 830 | input_sync(toshiba_acpi.hotkey_dev); | ||
| 831 | input_report_key(toshiba_acpi.hotkey_dev, | ||
| 832 | key->keycode, 0); | ||
| 833 | input_sync(toshiba_acpi.hotkey_dev); | ||
| 832 | } else if (hci_result == HCI_NOT_SUPPORTED) { | 834 | } else if (hci_result == HCI_NOT_SUPPORTED) { |
| 833 | /* This is a workaround for an unresolved issue on | 835 | /* This is a workaround for an unresolved issue on |
| 834 | * some machines where system events sporadically | 836 | * some machines where system events sporadically |
