37 lines
1.1 KiB
Diff
37 lines
1.1 KiB
Diff
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
|
|
index fb9b9349215b8..12c69b7ee54df 100644
|
|
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
|
|
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
|
|
@@ -4047,15 +4047,17 @@ void amdgpu_device_fini_sw(struct amdgpu_device *adev)
|
|
* at suspend time.
|
|
*
|
|
*/
|
|
-static void amdgpu_device_evict_resources(struct amdgpu_device *adev)
|
|
+static int amdgpu_device_evict_resources(struct amdgpu_device *adev)
|
|
{
|
|
+ int ret;
|
|
/* No need to evict vram on APUs for suspend to ram or s2idle */
|
|
if ((adev->in_s3 || adev->in_s0ix) && (adev->flags & AMD_IS_APU))
|
|
- return;
|
|
+ return 0;
|
|
|
|
- if (amdgpu_ttm_evict_resources(adev, TTM_PL_VRAM))
|
|
+ ret = amdgpu_ttm_evict_resources(adev, TTM_PL_VRAM);
|
|
+ if (ret)
|
|
DRM_WARN("evicting device resources failed\n");
|
|
-
|
|
+ return ret;
|
|
}
|
|
|
|
/*
|
|
@@ -4105,7 +4107,9 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon)
|
|
if (!adev->in_s0ix)
|
|
amdgpu_amdkfd_suspend(adev, adev->in_runpm);
|
|
|
|
- amdgpu_device_evict_resources(adev);
|
|
+ r = amdgpu_device_evict_resources(adev);
|
|
+ if (r)
|
|
+ return r;
|
|
|
|
amdgpu_fence_driver_hw_fini(adev);
|
|
|