Hi, On 4/4/24 1:41 PM, David McFarland wrote: > 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: 0c4cae1bc00d ("PM: hibernate: Avoid missing wakeup events during hibernation") > Signed-off-by: David McFarland <corngood@xxxxxxxxx> > Tested-by: Enrik Berkhan <Enrik.Berkhan@xxxxxxx> > Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx> Thank you, this version looks good to me. Ilpo, can you pick this up as a bug-fix for the 6.9 cycle please? Regards, Hans > --- > v2: Added tags and fixed whitespace, as requested by Hans. > > drivers/platform/x86/intel/hid.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/platform/x86/intel/hid.c b/drivers/platform/x86/intel/hid.c > index 7457ca2b27a6..9ffbdc988fe5 100644 > --- a/drivers/platform/x86/intel/hid.c > +++ b/drivers/platform/x86/intel/hid.c > @@ -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); >