aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2018-09-11 04:36:16 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-09-19 13:38:35 -0400
commitc33adbc7285f72dbd86aedba858e9570cd9f9c99 (patch)
tree8f4b0171599b96cd8883faf20c307f5f11df36e9 /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
parent7fcb0657ffa93544142f6a0bb20b7fecf1cc1dca (diff)
drm/amdgpu: always recover VRAM during GPU recovery
It shouldn't add much overhead and we should make sure that critical VRAM content is always restored. Signed-off-by: Christian König <christian.koenig@amd.com> Acked-by: Junwei Zhang <Jerry.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 354f0557d697..0267fae316d7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2999,7 +2999,7 @@ err:
2999} 2999}
3000 3000
3001/** 3001/**
3002 * amdgpu_device_handle_vram_lost - Handle the loss of VRAM contents 3002 * amdgpu_device_recover_vram - Recover some VRAM contents
3003 * 3003 *
3004 * @adev: amdgpu_device pointer 3004 * @adev: amdgpu_device pointer
3005 * 3005 *
@@ -3008,7 +3008,7 @@ err:
3008 * the contents of VRAM might be lost. 3008 * the contents of VRAM might be lost.
3009 * Returns 0 on success, 1 on failure. 3009 * Returns 0 on success, 1 on failure.
3010 */ 3010 */
3011static int amdgpu_device_handle_vram_lost(struct amdgpu_device *adev) 3011static int amdgpu_device_recover_vram(struct amdgpu_device *adev)
3012{ 3012{
3013 struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring; 3013 struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring;
3014 struct amdgpu_bo *bo, *tmp; 3014 struct amdgpu_bo *bo, *tmp;
@@ -3135,8 +3135,8 @@ out:
3135 } 3135 }
3136 } 3136 }
3137 3137
3138 if (!r && ((need_full_reset && !(adev->flags & AMD_IS_APU)) || vram_lost)) 3138 if (!r)
3139 r = amdgpu_device_handle_vram_lost(adev); 3139 r = amdgpu_device_recover_vram(adev);
3140 3140
3141 return r; 3141 return r;
3142} 3142}
@@ -3182,7 +3182,7 @@ error:
3182 amdgpu_virt_release_full_gpu(adev, true); 3182 amdgpu_virt_release_full_gpu(adev, true);
3183 if (!r && adev->virt.gim_feature & AMDGIM_FEATURE_GIM_FLR_VRAMLOST) { 3183 if (!r && adev->virt.gim_feature & AMDGIM_FEATURE_GIM_FLR_VRAMLOST) {
3184 atomic_inc(&adev->vram_lost_counter); 3184 atomic_inc(&adev->vram_lost_counter);
3185 r = amdgpu_device_handle_vram_lost(adev); 3185 r = amdgpu_device_recover_vram(adev);
3186 } 3186 }
3187 3187
3188 return r; 3188 return r;