Commit 5864e479 authored by David McFarland's avatar David McFarland Committed by Ilpo Järvinen

platform/x86/intel/hid: Don't wake on 5-button releases

If, for example, the power button is configured to suspend, holding it
and releasing it after the machine has suspended, will wake the machine.

Also on some machines, power button release events are sent during
hibernation, even if the button wasn't used to hibernate the machine.
This causes hibernation to be aborted.

Fixes: 0c4cae1b ("PM: hibernate: Avoid missing wakeup events during hibernation")
Signed-off-by: default avatarDavid McFarland <corngood@gmail.com>
Tested-by: default avatarEnrik Berkhan <Enrik.Berkhan@inka.de>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/878r1tpd6u.fsf_-_@gmail.comReviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent b45d0d01
...@@ -504,6 +504,7 @@ static void notify_handler(acpi_handle handle, u32 event, void *context) ...@@ -504,6 +504,7 @@ static void notify_handler(acpi_handle handle, u32 event, void *context)
struct platform_device *device = context; struct platform_device *device = context;
struct intel_hid_priv *priv = dev_get_drvdata(&device->dev); struct intel_hid_priv *priv = dev_get_drvdata(&device->dev);
unsigned long long ev_index; unsigned long long ev_index;
struct key_entry *ke;
int err; int err;
/* /*
...@@ -545,11 +546,15 @@ static void notify_handler(acpi_handle handle, u32 event, void *context) ...@@ -545,11 +546,15 @@ static void notify_handler(acpi_handle handle, u32 event, void *context)
if (event == 0xc0 || !priv->array) if (event == 0xc0 || !priv->array)
return; return;
if (!sparse_keymap_entry_from_scancode(priv->array, event)) { ke = sparse_keymap_entry_from_scancode(priv->array, event);
if (!ke) {
dev_info(&device->dev, "unknown event 0x%x\n", event); dev_info(&device->dev, "unknown event 0x%x\n", event);
return; return;
} }
if (ke->type == KE_IGNORE)
return;
wakeup: wakeup:
pm_wakeup_hard_event(&device->dev); pm_wakeup_hard_event(&device->dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment