mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-29 05:12:59 +01: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 <[email protected]> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4573 Tested-by: Ionut Nechita <[email protected]> Fixes:530694f54d("drm/amdgpu: do not resume device in thaw for normal hibernation") Acked-by: Alex Deucher <[email protected]> Tested-by: Kenneth Crudup <[email protected]> Signed-off-by: Mario Limonciello (AMD) <[email protected]> Cc: 6.17+ <[email protected]> # 6.17+:495c8d3503: PM: hibernate: Add pm_hibernation_mode_is_suspend() Signed-off-by: Rafael J. Wysocki <[email protected]>
This commit is contained in:
1 parent
495c8d3503
commit
0a6e9e098f
1 file changed
+1
-1
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user