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