* [PATCH v2 0/2] Fixups for cancelled hibernate
@ 2025-10-25 1:00 Mario Limonciello (AMD)
2025-10-25 1:00 ` [PATCH v2 1/2] PM: Allow device drivers to manage the frozen state of a device Mario Limonciello (AMD)
2025-10-25 1:00 ` [PATCH v2 2/2] drm/amd: Manage frozen state internally Mario Limonciello (AMD)
0 siblings, 2 replies; 5+ messages in thread
From: Mario Limonciello (AMD) @ 2025-10-25 1:00 UTC (permalink / raw)
To: Rafael J . Wysocki, Alex Deucher
Cc: open list:HIBERNATION (aka Software Suspend, aka swsusp),
open list:RADEON and AMDGPU DRM DRIVERS, Mario Limonciello (AMD),
Muhammad Usama Anjum
Muhammad Usama Anjun's recent series for being able to cancel
the hibernate sequence [1] exposes a bug with amdgpu handling for
skipping the thaw step.
Because the thaw step is skipped in most cases, cancelling the
hibernate means that the device is left in an inconsistent
state.
Add support to the PM core to let a driver track it's frozen
state when an error code is returned during thaw(). This will
ensure that the poweroff() and restore() callbacks get run.
Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>
I suggest this patch series merge through linux-pm.
v2:
* pick up tag
* rebase on linux-pm/bleeding-edge
* fix lkp robot issue
Mario Limonciello (AMD) (2):
PM: Allow device drivers to manage the frozen state of a device
drm/amd: Manage frozen state internally
Documentation/driver-api/pm/devices.rst | 8 ++++++++
drivers/base/power/main.c | 7 +++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 10 ++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +-
include/linux/pm.h | 3 +++
5 files changed, 29 insertions(+), 1 deletion(-)
--
2.43.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] PM: Allow device drivers to manage the frozen state of a device
2025-10-25 1:00 [PATCH v2 0/2] Fixups for cancelled hibernate Mario Limonciello (AMD)
@ 2025-10-25 1:00 ` Mario Limonciello (AMD)
2025-11-03 19:50 ` Rafael J. Wysocki
2025-10-25 1:00 ` [PATCH v2 2/2] drm/amd: Manage frozen state internally Mario Limonciello (AMD)
1 sibling, 1 reply; 5+ messages in thread
From: Mario Limonciello (AMD) @ 2025-10-25 1:00 UTC (permalink / raw)
To: Rafael J . Wysocki, Alex Deucher
Cc: open list:HIBERNATION (aka Software Suspend, aka swsusp),
open list:RADEON and AMDGPU DRM DRIVERS, Mario Limonciello (AMD),
Muhammad Usama Anjum
During a normal successful hibernate sequence devices will go through
the freeze() callbacks create an image, go through the thaw() callbacks,
and poweroff() callbacks.
During a successful hibernate sequence some device drivers may want to
skip the thaw() callbacks. This confuses the PM core though because it
thinks the device is no longer suspended.
To accommodate drivers that want to do this, introduce a new is_frozen
bit that the driver can set and manage. From the driver perspective
any thaw() or restore() callbacks that are being skipped should set
is_frozen and return an error code. The PM core will then put the
device back into the list of devices to resume for any aborted hibernate.
Tested-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
---
v2:
* add tag
* fix lkp robot issue
* rebase on linux-pm/bleeding-edge
---
Documentation/driver-api/pm/devices.rst | 8 ++++++++
drivers/base/power/main.c | 7 +++++++
include/linux/pm.h | 3 +++
3 files changed, 18 insertions(+)
diff --git a/Documentation/driver-api/pm/devices.rst b/Documentation/driver-api/pm/devices.rst
index 36d5c9c9fd113..55c6337271086 100644
--- a/Documentation/driver-api/pm/devices.rst
+++ b/Documentation/driver-api/pm/devices.rst
@@ -578,6 +578,14 @@ should already have been stored during the ``freeze``, ``freeze_late`` or
the entire system, so it is not necessary for the callback to put the device in
a low-power state.
+Skipping thaw phase
+-------------------
+In some rare situations, it may be desirable to skip the thaw phases
+(``thaw_noirq``, ``thaw_early``, ``thaw``) of a device entirely. This can be
+achieved by a device driver returning an error code from any of it's thaw
+callbacks but also setting dev->power.is_frozen to true. This indicates to the
+PM core that the device is still in the frozen state. The PM core will consider
+this when resuming the device in later phases such as `restore` or `poweroff`.
Leaving Hibernation
-------------------
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 7a8807ec9a5d0..c5a192fc04344 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -1110,6 +1110,13 @@ static void device_resume(struct device *dev, pm_message_t state, bool async)
End:
error = dpm_run_callback(callback, dev, state, info);
+#ifdef CONFIG_HIBERNATE_CALLBACKS
+ /* device manages frozen state */
+ if (error && dev->power.is_frozen) {
+ dev->power.is_suspended = true;
+ error = 0;
+ }
+#endif
device_unlock(dev);
dpm_watchdog_clear(&wd);
diff --git a/include/linux/pm.h b/include/linux/pm.h
index a72e42eec1303..852902fc72158 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -689,6 +689,9 @@ struct dev_pm_info {
#else
bool should_wakeup:1;
#endif
+#ifdef CONFIG_HIBERNATE_CALLBACKS
+ bool is_frozen:1; /* Owned by the driver */
+#endif
#ifdef CONFIG_PM
struct hrtimer suspend_timer;
u64 timer_expires;
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] drm/amd: Manage frozen state internally
2025-10-25 1:00 [PATCH v2 0/2] Fixups for cancelled hibernate Mario Limonciello (AMD)
2025-10-25 1:00 ` [PATCH v2 1/2] PM: Allow device drivers to manage the frozen state of a device Mario Limonciello (AMD)
@ 2025-10-25 1:00 ` Mario Limonciello (AMD)
1 sibling, 0 replies; 5+ messages in thread
From: Mario Limonciello (AMD) @ 2025-10-25 1:00 UTC (permalink / raw)
To: Rafael J . Wysocki, Alex Deucher
Cc: open list:HIBERNATION (aka Software Suspend, aka swsusp),
open list:RADEON and AMDGPU DRM DRIVERS, Mario Limonciello (AMD),
Muhammad Usama Anjum
[Why]
On a normal hibernate sequence amdgpu will skip the thaw step due to
commit 530694f54dd5e ("drm/amdgpu: do not resume device in thaw for
normal hibernation").
If the hibernate sequence has been aborted however after this thawed
step runs the PM core will think the device is suspended and will skip
the restore() sequence for amdgpu. This leads to accessing the device
while in a low power state and will freeze the system.
[How]
Set `dev->power.is_frozen` to indicate to the PM core that an error
code will be returned for thaw() callback because driver managed the
frozen state. If the restore() callback is called by the PM core the
driver will resume the device.
Tested-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
---
v2:
* add tag
* rebase on linux-pm/bleeding-edge
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 10 ++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 3d032c4e2dce1..693347eb6861b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -5247,6 +5247,11 @@ int amdgpu_device_suspend(struct drm_device *dev, bool notify_clients)
if (r)
return r;
+#ifdef CONFIG_HIBERNATE_CALLBACKS
+ if (adev->in_s4)
+ dev->dev->power.is_frozen = 1;
+#endif
+
return 0;
}
@@ -5385,6 +5390,11 @@ int amdgpu_device_resume(struct drm_device *dev, bool notify_clients)
if (amdgpu_acpi_smart_shift_update(adev, AMDGPU_SS_DEV_D0))
dev_warn(adev->dev, "smart shift update failed\n");
+#ifdef CONFIG_HIBERNATE_CALLBACKS
+ if (adev->in_s4)
+ dev->dev->power.is_frozen = 0;
+#endif
+
return 0;
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 61268aa82df4d..d40af069f24dd 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -2681,7 +2681,7 @@ static int amdgpu_pmops_thaw(struct device *dev)
/* do not resume device if it's normal hibernation */
if (!pm_hibernate_is_recovering() && !pm_hibernation_mode_is_suspend())
- return 0;
+ return -EBUSY;
return amdgpu_device_resume(drm_dev, true);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] PM: Allow device drivers to manage the frozen state of a device
2025-10-25 1:00 ` [PATCH v2 1/2] PM: Allow device drivers to manage the frozen state of a device Mario Limonciello (AMD)
@ 2025-11-03 19:50 ` Rafael J. Wysocki
2025-11-04 12:14 ` Muhammad Usama Anjum
0 siblings, 1 reply; 5+ messages in thread
From: Rafael J. Wysocki @ 2025-11-03 19:50 UTC (permalink / raw)
To: Mario Limonciello (AMD)
Cc: Rafael J . Wysocki, Alex Deucher,
open list:HIBERNATION (aka Software Suspend, aka swsusp),
open list:RADEON and AMDGPU DRM DRIVERS, Muhammad Usama Anjum
On Sat, Oct 25, 2025 at 3:01 AM Mario Limonciello (AMD)
<superm1@kernel.org> wrote:
>
> During a normal successful hibernate sequence devices will go through
> the freeze() callbacks create an image, go through the thaw() callbacks,
> and poweroff() callbacks.
>
> During a successful hibernate sequence some device drivers may want to
> skip the thaw() callbacks. This confuses the PM core though because it
> thinks the device is no longer suspended.
The problem only really occurs if hibernation is aborted before or
during the final "poweroff" transition.
What happens is that if a driver decides to leave the device in the
"frozen" state during its "thaw" callback and its "poweroff" callback
is not invoked because hibernation is aborted earlier, the device will
be left in the "frozen" state going forward.
The goal of the change should be to make the core detect that
situation and "thaw" the device.
> To accommodate drivers that want to do this, introduce a new is_frozen
> bit that the driver can set and manage. From the driver perspective
> any thaw() or restore() callbacks that are being skipped should set
> is_frozen and return an error code.
"Restore" has nothing to do with this, it is just about "freeze".
> The PM core will then put the device back into the list of devices to resume for any aborted hibernate.
That's not what the patch does, though (see below).
All of this is mainly about what the core should do when it sees the
"is_frozen" flag set, so a few observations to that end:
1. That flag is only relevant when hibernation is aborted before
invoking the given driver's "poweroff" callback (because that callback
must be prepared to deal with a "frozen" device).
2. If the final "poweroff" transition is aborted during its "prepare"
phase, the "frozen" device may need to be "thawed" even if its
driver's "prepare" callback is not invoked.
3. There is a possibility, not taken into account so far, that
hibernation is aborted because of a failure to save the image. Then,
"frozen" devices will need to be "thawed" before starting the final
"poweroff" transition.
Moreover, I'm not sure if it really makes sense to invoke "complete"
callbacks during the "thaw" transition for the devices left in the
"frozen" state.
All of the above means that the approach needs to be rethought and my
advice is to revert the commit causing the AMD driver to leave its
device in the "frozen" for 6.18 (and previous kernels).
> Tested-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
> ---
> v2:
> * add tag
> * fix lkp robot issue
> * rebase on linux-pm/bleeding-edge
> ---
> Documentation/driver-api/pm/devices.rst | 8 ++++++++
> drivers/base/power/main.c | 7 +++++++
> include/linux/pm.h | 3 +++
> 3 files changed, 18 insertions(+)
>
> diff --git a/Documentation/driver-api/pm/devices.rst b/Documentation/driver-api/pm/devices.rst
> index 36d5c9c9fd113..55c6337271086 100644
> --- a/Documentation/driver-api/pm/devices.rst
> +++ b/Documentation/driver-api/pm/devices.rst
> @@ -578,6 +578,14 @@ should already have been stored during the ``freeze``, ``freeze_late`` or
> the entire system, so it is not necessary for the callback to put the device in
> a low-power state.
>
> +Skipping thaw phase
> +-------------------
> +In some rare situations, it may be desirable to skip the thaw phases
> +(``thaw_noirq``, ``thaw_early``, ``thaw``) of a device entirely. This can be
> +achieved by a device driver returning an error code from any of it's thaw
> +callbacks but also setting dev->power.is_frozen to true.
Returning an error code should not be necessary.
Also this needs to be done in "thaw_noirq" or maybe even in
"freeze_noirq" because "thaw_noirq" may involve some bus type actions
changing the state of the device before the driver gets to it.
So the driver would opt in for leaving the device in the "frozen"
state at the "noirq" stage of the preceding "freeze" transition. That
can be achieved by setting a "leave_in_freeze" flag, so no callbacks
would be run for any devices with that flag set during the subsequent
"thaw" transition.
If hibernation is aborted before the final "poweroff" transition
begins, the "thaw*" and "complete" callbacks will have to be run for
all of those devices (I'm wondering if any ordering issues may arise
at that point; presumably, devices that depend on the "frozen" ones
would also need to be "frozen"?).
During the final "poweroff" transition, since "complete" has not been
called for any of the "frozen" devices, it should not be necessary to
call "prepare" for any of them, so that one can be skipped.
Again, if hibernation is aborted at this point, all of the "thaw*" and
complete callbacks need to be run for all of the "frozen" devices.
Now, "poweroff", "poweroff" and "poweroff_noirq" callbacks for the
"frozen" devices need to be prepared to deal with them, but the exact
rules there will need some consideration. They kind of need to assume
that "freeze" may be changed into "poweroff" transparently without a
"thaw" in between and that generally depends on the bus type/PM domain
involved.
> This indicates to the
> +PM core that the device is still in the frozen state. The PM core will consider
> +this when resuming the device in later phases such as `restore` or `poweroff`.
>
> Leaving Hibernation
> -------------------
> diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
> index 7a8807ec9a5d0..c5a192fc04344 100644
> --- a/drivers/base/power/main.c
> +++ b/drivers/base/power/main.c
> @@ -1110,6 +1110,13 @@ static void device_resume(struct device *dev, pm_message_t state, bool async)
>
> End:
> error = dpm_run_callback(callback, dev, state, info);
> +#ifdef CONFIG_HIBERNATE_CALLBACKS
CONFIG_HIBERNATION should be sufficient.
> + /* device manages frozen state */
> + if (error && dev->power.is_frozen) {
> + dev->power.is_suspended = true;
> + error = 0;
> + }
This assumes that the callback will run, but what if hibernation is
aborted before running it? Isn't that really the problem at hand?
> +#endif
>
> device_unlock(dev);
> dpm_watchdog_clear(&wd);
> diff --git a/include/linux/pm.h b/include/linux/pm.h
> index a72e42eec1303..852902fc72158 100644
> --- a/include/linux/pm.h
> +++ b/include/linux/pm.h
> @@ -689,6 +689,9 @@ struct dev_pm_info {
> #else
> bool should_wakeup:1;
> #endif
> +#ifdef CONFIG_HIBERNATE_CALLBACKS
> + bool is_frozen:1; /* Owned by the driver */
> +#endif
> #ifdef CONFIG_PM
> struct hrtimer suspend_timer;
> u64 timer_expires;
> --
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] PM: Allow device drivers to manage the frozen state of a device
2025-11-03 19:50 ` Rafael J. Wysocki
@ 2025-11-04 12:14 ` Muhammad Usama Anjum
0 siblings, 0 replies; 5+ messages in thread
From: Muhammad Usama Anjum @ 2025-11-04 12:14 UTC (permalink / raw)
To: Rafael J. Wysocki, Mario Limonciello (AMD)
Cc: usama.anjum, Alex Deucher,
open list:HIBERNATION (aka Software Suspend, aka swsusp),
open list:RADEON and AMDGPU DRM DRIVERS
On 11/4/25 12:50 AM, Rafael J. Wysocki wrote:
> On Sat, Oct 25, 2025 at 3:01 AM Mario Limonciello (AMD)
> <superm1@kernel.org> wrote:
>>
>> During a normal successful hibernate sequence devices will go through
>> the freeze() callbacks create an image, go through the thaw() callbacks,
>> and poweroff() callbacks.
>>
>> During a successful hibernate sequence some device drivers may want to
>> skip the thaw() callbacks. This confuses the PM core though because it
>> thinks the device is no longer suspended.
With RFC [1] applied and hibernation is cancelled until or from inside of
dpm_suspend(), this series restores the amdgpu driver.
hibernate()
-> hibernation_snapshot()
-> dpm_suspend()
>
> The problem only really occurs if hibernation is aborted before or
> during the final "poweroff" transition.
This isn't supported yet. I'm working on a new patch to cancel hibernation
after dpm_suspend() and before power_down(). But it causes missed resumption
of amdgpu even after applying this series. Probably some
dpm_resume_start(PMSG_RECOVER) and dpm_resume_end(PMSG_RECOVER) are missing.
I've not been able to sort it out.
Its a very late stage and I'm not getting console logs. I don't have serial
connection to get those logs as well.
I'll send the series without this patch in coming days if I'm not able to sort
it out.
[1] https://lore.kernel.org/all/20251018142114.897445-1-usama.anjum@collabora.com
>
> What happens is that if a driver decides to leave the device in the
> "frozen" state during its "thaw" callback and its "poweroff" callback
> is not invoked because hibernation is aborted earlier, the device will
> be left in the "frozen" state going forward.
>
> The goal of the change should be to make the core detect that
> situation and "thaw" the device.
>
>> To accommodate drivers that want to do this, introduce a new is_frozen
>> bit that the driver can set and manage. From the driver perspective
>> any thaw() or restore() callbacks that are being skipped should set
>> is_frozen and return an error code.
>
> "Restore" has nothing to do with this, it is just about "freeze".
>
>> The PM core will then put the device back into the list of devices to resume for any aborted hibernate.
>
> That's not what the patch does, though (see below).
>
> All of this is mainly about what the core should do when it sees the
> "is_frozen" flag set, so a few observations to that end:
>
> 1. That flag is only relevant when hibernation is aborted before
> invoking the given driver's "poweroff" callback (because that callback
> must be prepared to deal with a "frozen" device).
>
> 2. If the final "poweroff" transition is aborted during its "prepare"
> phase, the "frozen" device may need to be "thawed" even if its
> driver's "prepare" callback is not invoked.
>
> 3. There is a possibility, not taken into account so far, that
> hibernation is aborted because of a failure to save the image. Then,
> "frozen" devices will need to be "thawed" before starting the final
> "poweroff" transition.
>
> Moreover, I'm not sure if it really makes sense to invoke "complete"
> callbacks during the "thaw" transition for the devices left in the
> "frozen" state.
>
> All of the above means that the approach needs to be rethought and my
> advice is to revert the commit causing the AMD driver to leave its
> device in the "frozen" for 6.18 (and previous kernels).
>
>> Tested-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
>> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
>> ---
>> v2:
>> * add tag
>> * fix lkp robot issue
>> * rebase on linux-pm/bleeding-edge
>> ---
>> Documentation/driver-api/pm/devices.rst | 8 ++++++++
>> drivers/base/power/main.c | 7 +++++++
>> include/linux/pm.h | 3 +++
>> 3 files changed, 18 insertions(+)
>>
>> diff --git a/Documentation/driver-api/pm/devices.rst b/Documentation/driver-api/pm/devices.rst
>> index 36d5c9c9fd113..55c6337271086 100644
>> --- a/Documentation/driver-api/pm/devices.rst
>> +++ b/Documentation/driver-api/pm/devices.rst
>> @@ -578,6 +578,14 @@ should already have been stored during the ``freeze``, ``freeze_late`` or
>> the entire system, so it is not necessary for the callback to put the device in
>> a low-power state.
>>
>> +Skipping thaw phase
>> +-------------------
>> +In some rare situations, it may be desirable to skip the thaw phases
>> +(``thaw_noirq``, ``thaw_early``, ``thaw``) of a device entirely. This can be
>> +achieved by a device driver returning an error code from any of it's thaw
>> +callbacks but also setting dev->power.is_frozen to true.
>
> Returning an error code should not be necessary.
>
> Also this needs to be done in "thaw_noirq" or maybe even in
> "freeze_noirq" because "thaw_noirq" may involve some bus type actions
> changing the state of the device before the driver gets to it.
>
> So the driver would opt in for leaving the device in the "frozen"
> state at the "noirq" stage of the preceding "freeze" transition. That
> can be achieved by setting a "leave_in_freeze" flag, so no callbacks
> would be run for any devices with that flag set during the subsequent
> "thaw" transition.
>
> If hibernation is aborted before the final "poweroff" transition
> begins, the "thaw*" and "complete" callbacks will have to be run for
> all of those devices (I'm wondering if any ordering issues may arise
> at that point; presumably, devices that depend on the "frozen" ones
> would also need to be "frozen"?).
>
> During the final "poweroff" transition, since "complete" has not been
> called for any of the "frozen" devices, it should not be necessary to
> call "prepare" for any of them, so that one can be skipped.
>
> Again, if hibernation is aborted at this point, all of the "thaw*" and
> complete callbacks need to be run for all of the "frozen" devices.
>
> Now, "poweroff", "poweroff" and "poweroff_noirq" callbacks for the
> "frozen" devices need to be prepared to deal with them, but the exact
> rules there will need some consideration. They kind of need to assume
> that "freeze" may be changed into "poweroff" transparently without a
> "thaw" in between and that generally depends on the bus type/PM domain
> involved.
>
>> This indicates to the
>> +PM core that the device is still in the frozen state. The PM core will consider
>> +this when resuming the device in later phases such as `restore` or `poweroff`.
>>
>> Leaving Hibernation
>> -------------------
>> diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
>> index 7a8807ec9a5d0..c5a192fc04344 100644
>> --- a/drivers/base/power/main.c
>> +++ b/drivers/base/power/main.c
>> @@ -1110,6 +1110,13 @@ static void device_resume(struct device *dev, pm_message_t state, bool async)
>>
>> End:
>> error = dpm_run_callback(callback, dev, state, info);
>> +#ifdef CONFIG_HIBERNATE_CALLBACKS
>
> CONFIG_HIBERNATION should be sufficient.
>
>> + /* device manages frozen state */
>> + if (error && dev->power.is_frozen) {
>> + dev->power.is_suspended = true;
>> + error = 0;
>> + }
>
> This assumes that the callback will run, but what if hibernation is
> aborted before running it? Isn't that really the problem at hand?
>
>> +#endif
>>
>> device_unlock(dev);
>> dpm_watchdog_clear(&wd);
>> diff --git a/include/linux/pm.h b/include/linux/pm.h
>> index a72e42eec1303..852902fc72158 100644
>> --- a/include/linux/pm.h
>> +++ b/include/linux/pm.h
>> @@ -689,6 +689,9 @@ struct dev_pm_info {
>> #else
>> bool should_wakeup:1;
>> #endif
>> +#ifdef CONFIG_HIBERNATE_CALLBACKS
>> + bool is_frozen:1; /* Owned by the driver */
>> +#endif
>> #ifdef CONFIG_PM
>> struct hrtimer suspend_timer;
>> u64 timer_expires;
>> --
--
---
Thanks,
Usama
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-11-04 13:30 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-25 1:00 [PATCH v2 0/2] Fixups for cancelled hibernate Mario Limonciello (AMD)
2025-10-25 1:00 ` [PATCH v2 1/2] PM: Allow device drivers to manage the frozen state of a device Mario Limonciello (AMD)
2025-11-03 19:50 ` Rafael J. Wysocki
2025-11-04 12:14 ` Muhammad Usama Anjum
2025-10-25 1:00 ` [PATCH v2 2/2] drm/amd: Manage frozen state internally Mario Limonciello (AMD)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox