diff --git a/drivers/platform/x86/surface_sam/surface_sam_ssh.c b/drivers/platform/x86/surface_sam/surface_sam_ssh.c index 0c535f0ccdc35..665d956eec01a 100644 --- a/drivers/platform/x86/surface_sam/surface_sam_ssh.c +++ b/drivers/platform/x86/surface_sam/surface_sam_ssh.c @@ -1621,7 +1621,15 @@ static int surface_sam_ssh_probe(struct serdev_device *serdev) surface_sam_ssh_release(ec); - device_init_wakeup(&serdev->dev, true); + // TODO: The EC can wake up the system via the associated GPIO interrupt in + // multiple situations. One of which is the remaining battery capacity + // falling below a certain threshold. Normally, we should use the + // device_init_wakeup function, however, the EC also seems to have other + // reasons for waking up the system and it seems that Windows has + // additional checks whether the system should be resumed. In short, this + // causes some spourious unwanted wake-ups. For now let's thus default + // power/wakeup to false. + device_set_wakeup_capable(&serdev->dev, true); acpi_walk_dep_device_list(ssh); return 0;