mirror of
https://github.com/torvalds/linux.git
synced 2025-11-01 09:09:47 +02:00
drm/amd: Fix hybrid sleep
[Why] commit530694f54d("drm/amdgpu: do not resume device in thaw for normal hibernation") optimized the flow for systems that are going into S4 where the power would be turned off. Basically the thaw() callback wouldn't resume the device if the hibernation image was successfully created since the system would be powered off. This however isn't the correct flow for a system entering into s0i3 after the hibernation image is created. Some of the amdgpu callbacks have different behavior depending upon the intended state of the suspend. [How] Use pm_hibernation_mode_is_suspend() as an input to decide whether to run resume during thaw() callback. Reported-by: Ionut Nechita <ionut_n2001@yahoo.com> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4573 Tested-by: Ionut Nechita <ionut_n2001@yahoo.com> Fixes:530694f54d("drm/amdgpu: do not resume device in thaw for normal hibernation") Acked-by: Alex Deucher <alexander.deucher@amd.com> Tested-by: Kenneth Crudup <kenny@panix.com> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org> Cc: 6.17+ <stable@vger.kernel.org> # 6.17+:495c8d3503: PM: hibernate: Add pm_hibernation_mode_is_suspend() Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
495c8d3503
commit
0a6e9e098f
1 changed files with 1 additions and 1 deletions
|
|
@ -2665,7 +2665,7 @@ static int amdgpu_pmops_thaw(struct device *dev)
|
|||
struct drm_device *drm_dev = dev_get_drvdata(dev);
|
||||
|
||||
/* do not resume device if it's normal hibernation */
|
||||
if (!pm_hibernate_is_recovering())
|
||||
if (!pm_hibernate_is_recovering() && !pm_hibernation_mode_is_suspend())
|
||||
return 0;
|
||||
|
||||
return amdgpu_device_resume(drm_dev, true);
|
||||
|
|
|
|||
Loading…
Reference in a new issue