* [PATCH] platform/x86/intel: disable wakeup_mode during hibernation
@ 2026-01-20 14:17 David McFarland
2026-01-20 16:10 ` [PATCH v2] " David McFarland
0 siblings, 1 reply; 6+ messages in thread
From: David McFarland @ 2026-01-20 14:17 UTC (permalink / raw)
To: platform-driver-x86; +Cc: David McFarland
Without this change I get the problem described in the linked bug:
> Wakeup event detected during hibernation, rolling back
The docs for the 'freeze' event say:
> Analogous to @suspend(), but it should not enable the device to signal wakeup
> events or change its power state.
I've been running with this change for several months on my Dell
Precision 3680. I haven't tested on any other systems.
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=27328
---
drivers/platform/x86/intel/hid.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/platform/x86/intel/hid.c b/drivers/platform/x86/intel/hid.c
index 560cc063198e..3a9561665b9b 100644
--- a/drivers/platform/x86/intel/hid.c
+++ b/drivers/platform/x86/intel/hid.c
@@ -419,6 +419,14 @@ static int intel_hid_pl_suspend_handler(struct device *device)
return 0;
}
+static int intel_hid_pl_freeze_handler(struct device *device)
+{
+ struct intel_hid_priv *priv = dev_get_drvdata(device);
+
+ priv->wakeup_mode = false;
+ return intel_hid_pl_suspend_handler(device);
+}
+
static int intel_hid_pl_resume_handler(struct device *device)
{
intel_hid_pm_complete(device);
@@ -433,7 +441,7 @@ static int intel_hid_pl_resume_handler(struct device *device)
static const struct dev_pm_ops intel_hid_pl_pm_ops = {
.prepare = intel_hid_pm_prepare,
.complete = intel_hid_pm_complete,
- .freeze = intel_hid_pl_suspend_handler,
+ .freeze = intel_hid_pl_freeze_handler,
.thaw = intel_hid_pl_resume_handler,
.restore = intel_hid_pl_resume_handler,
.suspend = intel_hid_pl_suspend_handler,
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v2] platform/x86/intel: disable wakeup_mode during hibernation
2026-01-20 14:17 [PATCH] platform/x86/intel: disable wakeup_mode during hibernation David McFarland
@ 2026-01-20 16:10 ` David McFarland
2026-01-22 15:46 ` David McFarland
2026-01-29 12:25 ` Ilpo Järvinen
0 siblings, 2 replies; 6+ messages in thread
From: David McFarland @ 2026-01-20 16:10 UTC (permalink / raw)
To: platform-driver-x86; +Cc: David McFarland
Without this change I get the problem described in the linked bug:
> Wakeup event detected during hibernation, rolling back
The docs for the 'freeze' event say:
> Analogous to @suspend(), but it should not enable the device to signal wakeup
> events or change its power state.
I've been running with this change for several months on my Dell
Precision 3680. I haven't tested on any other systems.
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218634
---
v1 -> v2: fixed bugzilla link
drivers/platform/x86/intel/hid.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/platform/x86/intel/hid.c b/drivers/platform/x86/intel/hid.c
index 560cc063198e..3a9561665b9b 100644
--- a/drivers/platform/x86/intel/hid.c
+++ b/drivers/platform/x86/intel/hid.c
@@ -419,6 +419,14 @@ static int intel_hid_pl_suspend_handler(struct device *device)
return 0;
}
+static int intel_hid_pl_freeze_handler(struct device *device)
+{
+ struct intel_hid_priv *priv = dev_get_drvdata(device);
+
+ priv->wakeup_mode = false;
+ return intel_hid_pl_suspend_handler(device);
+}
+
static int intel_hid_pl_resume_handler(struct device *device)
{
intel_hid_pm_complete(device);
@@ -433,7 +441,7 @@ static int intel_hid_pl_resume_handler(struct device *device)
static const struct dev_pm_ops intel_hid_pl_pm_ops = {
.prepare = intel_hid_pm_prepare,
.complete = intel_hid_pm_complete,
- .freeze = intel_hid_pl_suspend_handler,
+ .freeze = intel_hid_pl_freeze_handler,
.thaw = intel_hid_pl_resume_handler,
.restore = intel_hid_pl_resume_handler,
.suspend = intel_hid_pl_suspend_handler,
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v2] platform/x86/intel: disable wakeup_mode during hibernation
2026-01-20 16:10 ` [PATCH v2] " David McFarland
@ 2026-01-22 15:46 ` David McFarland
2026-01-29 12:25 ` Ilpo Järvinen
1 sibling, 0 replies; 6+ messages in thread
From: David McFarland @ 2026-01-22 15:46 UTC (permalink / raw)
To: platform-driver-x86, Hans de Goede, Ilpo Järvinen
Sorry, I should have sent to maintainers originally.
I'm especially looking for feedback on the implementation. Calling the
suspend handler from the freeze handler could potentially be confusing.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2] platform/x86/intel: disable wakeup_mode during hibernation
2026-01-20 16:10 ` [PATCH v2] " David McFarland
2026-01-22 15:46 ` David McFarland
@ 2026-01-29 12:25 ` Ilpo Järvinen
2026-02-05 23:16 ` [PATCH v3] " David McFarland
1 sibling, 1 reply; 6+ messages in thread
From: Ilpo Järvinen @ 2026-01-29 12:25 UTC (permalink / raw)
To: David McFarland, Rafael J. Wysocki, Hans de Goede, Alex Hung
Cc: platform-driver-x86
On Tue, 20 Jan 2026, David McFarland wrote:
+ Rafael who introduced priv->wakeup_mode (and happens to be PM
maintainer).
+ Alex (that scripts/get_maintainer.pl shows as the maintainer).
Hi David,
Thanks for the patch.
Please make v3 submission with all the relevant people as receipients
(once you've addresses the feedback).
> Without this change I get the problem described in the linked bug:
>
> > Wakeup event detected during hibernation, rolling back
Please rephrase this such that you explain the problem first without
referring to the bugzilla. The Closes tag should still remain in place but
this changelog should describe to problem too without requiring other
sources to understand the problem.
Please avoid phrases like "This change" or "This patch" or "I"; use
imperative tone.
The quoted warning probably doesn't have "> " so it can be removed, just
indent it by a few spaces.
> The docs for the 'freeze' event say:
>
> > Analogous to @suspend(), but it should not enable the device to signal wakeup
> > events or change its power state.
Here, describe to solution. Something along the lines of:
Add a freeze handler ...
> I've been running with this change for several months on my Dell
> Precision 3680. I haven't tested on any other systems.
>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218634
This is missing Signed-off-by tag. We can only apply patches that are
signed off by the submitter (please see
Documentation/process/submitting-patches.rst).
You probably should also add a Fixes tag as well.
> ---
> v1 -> v2: fixed bugzilla link
>
> drivers/platform/x86/intel/hid.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/intel/hid.c b/drivers/platform/x86/intel/hid.c
> index 560cc063198e..3a9561665b9b 100644
> --- a/drivers/platform/x86/intel/hid.c
> +++ b/drivers/platform/x86/intel/hid.c
> @@ -419,6 +419,14 @@ static int intel_hid_pl_suspend_handler(struct device *device)
> return 0;
> }
>
> +static int intel_hid_pl_freeze_handler(struct device *device)
> +{
> + struct intel_hid_priv *priv = dev_get_drvdata(device);
> +
> + priv->wakeup_mode = false;
> + return intel_hid_pl_suspend_handler(device);
> +}
> +
> static int intel_hid_pl_resume_handler(struct device *device)
> {
> intel_hid_pm_complete(device);
> @@ -433,7 +441,7 @@ static int intel_hid_pl_resume_handler(struct device *device)
> static const struct dev_pm_ops intel_hid_pl_pm_ops = {
> .prepare = intel_hid_pm_prepare,
> .complete = intel_hid_pm_complete,
> - .freeze = intel_hid_pl_suspend_handler,
> + .freeze = intel_hid_pl_freeze_handler,
> .thaw = intel_hid_pl_resume_handler,
> .restore = intel_hid_pl_resume_handler,
> .suspend = intel_hid_pl_suspend_handler,
--
i.
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v3] platform/x86/intel: disable wakeup_mode during hibernation
2026-01-29 12:25 ` Ilpo Järvinen
@ 2026-02-05 23:16 ` David McFarland
2026-03-17 13:01 ` Ilpo Järvinen
0 siblings, 1 reply; 6+ messages in thread
From: David McFarland @ 2026-02-05 23:16 UTC (permalink / raw)
To: David McFarland, Rafael J. Wysocki, Hans de Goede, Alex Hung
Cc: platform-driver-x86
Add a freeze handler which clears wakeup_mode. This fixes aborted hibernation on
Dell Precision 3880.
Wakeup event detected during hibernation, rolling back
This system sends power button events during hibernation, even when triggered by
software.
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218634
Fixes: 0c4cae1bc00d ("PM: hibernate: Avoid missing wakeup events during hibernation")
Signed-off-by: David McFarland <corngood@gmail.com>
---
drivers/platform/x86/intel/hid.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
v1 -> v2: fixed bugzilla link
v2 -> v3: changes suggested by Ilpo
Thanks Ilpo for the suggestions.
diff --git a/drivers/platform/x86/intel/hid.c b/drivers/platform/x86/intel/hid.c
index f25a427cccda..6ed85d48ee93 100644
--- a/drivers/platform/x86/intel/hid.c
+++ b/drivers/platform/x86/intel/hid.c
@@ -406,6 +406,14 @@ static int intel_hid_pl_suspend_handler(struct device *device)
return 0;
}
+static int intel_hid_pl_freeze_handler(struct device *device)
+{
+ struct intel_hid_priv *priv = dev_get_drvdata(device);
+
+ priv->wakeup_mode = false;
+ return intel_hid_pl_suspend_handler(device);
+}
+
static int intel_hid_pl_resume_handler(struct device *device)
{
intel_hid_pm_complete(device);
@@ -420,7 +428,7 @@ static int intel_hid_pl_resume_handler(struct device *device)
static const struct dev_pm_ops intel_hid_pl_pm_ops = {
.prepare = intel_hid_pm_prepare,
.complete = intel_hid_pm_complete,
- .freeze = intel_hid_pl_suspend_handler,
+ .freeze = intel_hid_pl_freeze_handler,
.thaw = intel_hid_pl_resume_handler,
.restore = intel_hid_pl_resume_handler,
.suspend = intel_hid_pl_suspend_handler,
--
2.52.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v3] platform/x86/intel: disable wakeup_mode during hibernation
2026-02-05 23:16 ` [PATCH v3] " David McFarland
@ 2026-03-17 13:01 ` Ilpo Järvinen
0 siblings, 0 replies; 6+ messages in thread
From: Ilpo Järvinen @ 2026-03-17 13:01 UTC (permalink / raw)
To: Rafael J. Wysocki, Hans de Goede, Alex Hung, David McFarland
Cc: platform-driver-x86
On Thu, 05 Feb 2026 19:16:24 -0400, David McFarland wrote:
> Add a freeze handler which clears wakeup_mode. This fixes aborted hibernation on
> Dell Precision 3880.
>
> Wakeup event detected during hibernation, rolling back
>
> This system sends power button events during hibernation, even when triggered by
> software.
>
> [...]
Thank you for your contribution, it has been applied to my local
review-ilpo-fixes branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-fixes branch only once I've pushed my
local branch there, which might take a while.
The list of commits applied:
[1/1] platform/x86/intel: disable wakeup_mode during hibernation
commit: 3dd92e37adc7052ba67926438012fe6f4a71ff37
--
i.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-03-17 13:01 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-20 14:17 [PATCH] platform/x86/intel: disable wakeup_mode during hibernation David McFarland
2026-01-20 16:10 ` [PATCH v2] " David McFarland
2026-01-22 15:46 ` David McFarland
2026-01-29 12:25 ` Ilpo Järvinen
2026-02-05 23:16 ` [PATCH v3] " David McFarland
2026-03-17 13:01 ` Ilpo Järvinen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox