diff options
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 6f958603c8cc..ae10acede495 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -4060,15 +4060,18 @@ 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;  }  /* @@ -4118,7 +4121,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); | 
