diff options
Diffstat (limited to 'drivers/platform/x86/toshiba_acpi.c')
-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 26c211724ac..405b969734d 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 |