platform/x86/intel/hid: Don't wake on 5-button releases
[ Upstream commit5864e479ca
] 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:0c4cae1bc0
("PM: hibernate: Avoid missing wakeup events during hibernation") Signed-off-by: David McFarland <corngood@gmail.com> Tested-by: Enrik Berkhan <Enrik.Berkhan@inka.de> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/878r1tpd6u.fsf_-_@gmail.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
6be74b1e21
commit
3fe68ad2d3
|
@ -504,6 +504,7 @@ static void notify_handler(acpi_handle handle, u32 event, void *context)
|
|||
struct platform_device *device = context;
|
||||
struct intel_hid_priv *priv = dev_get_drvdata(&device->dev);
|
||||
unsigned long long ev_index;
|
||||
struct key_entry *ke;
|
||||
int err;
|
||||
|
||||
/*
|
||||
|
@ -545,11 +546,15 @@ static void notify_handler(acpi_handle handle, u32 event, void *context)
|
|||
if (event == 0xc0 || !priv->array)
|
||||
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);
|
||||
return;
|
||||
}
|
||||
|
||||
if (ke->type == KE_IGNORE)
|
||||
return;
|
||||
|
||||
wakeup:
|
||||
pm_wakeup_hard_event(&device->dev);
|
||||
|
||||
|
|
Loading…
Reference in New Issue