[PATCH 3/3] drm/amdgpu: reset the asic when hibernating v2

Alex Deucher alexdeucher at gmail.com
Tue Aug 23 17:45:31 UTC 2016


Some blocks require a reset to properly resume if there
is no power down of the asic like during various
hibernation steps.

Reset the asic on freeze and force asic_init on thaw.

Port of:
274ad65c9d02bdcbee9bae045517864c3521d530
(drm/radeon: hard reset r600 and newer GPU when hibernating.) from radeon.

v2: split out just the freeze change and force init on thaw

Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index d0f65d4..2b57d68 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -423,14 +423,14 @@ static int amdgpu_pmops_freeze(struct device *dev)
 {
 	struct pci_dev *pdev = to_pci_dev(dev);
 	struct drm_device *drm_dev = pci_get_drvdata(pdev);
-	return amdgpu_device_suspend(drm_dev, false, true, false);
+	return amdgpu_device_suspend(drm_dev, false, true, true);
 }
 
 static int amdgpu_pmops_thaw(struct device *dev)
 {
 	struct pci_dev *pdev = to_pci_dev(dev);
 	struct drm_device *drm_dev = pci_get_drvdata(pdev);
-	return amdgpu_device_resume(drm_dev, false, true, false);
+	return amdgpu_device_resume(drm_dev, false, true, true);
 }
 
 static int amdgpu_pmops_runtime_suspend(struct device *dev)
-- 
2.5.5



More information about the amd-gfx mailing list