Skip to content

Commit 0a6e9e0

Browse files
superm1rafaeljw
authored andcommitted
drm/amd: Fix hybrid sleep
[Why] commit 530694f ("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: 530694f ("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+: 495c8d3: PM: hibernate: Add pm_hibernation_mode_is_suspend() Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent 495c8d3 commit 0a6e9e0

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2665,7 +2665,7 @@ static int amdgpu_pmops_thaw(struct device *dev)
26652665
struct drm_device *drm_dev = dev_get_drvdata(dev);
26662666

26672667
/* do not resume device if it's normal hibernation */
2668-
if (!pm_hibernate_is_recovering())
2668+
if (!pm_hibernate_is_recovering() && !pm_hibernation_mode_is_suspend())
26692669
return 0;
26702670

26712671
return amdgpu_device_resume(drm_dev, true);

0 commit comments

Comments
 (0)