aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2017-06-29 05:46:15 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-07-14 11:05:57 -0400
commitfc9c8f5459f2dfa7f83bee3f388faaf570ef96ed (patch)
tree549af39b8bb1671c1fd915a2d953438177165e42 /drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
parentdf264f9e08081c8c79523fd9e9f5241ed23ee7e8 (diff)
drm/amdgpu: add vm_needs_flush parameter to amdgpu_copy_buffer
This allows us to flush the system VM here. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index c9b131b13ef7..8c5f75d29f32 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -318,7 +318,7 @@ static int amdgpu_move_blit(struct ttm_buffer_object *bo,
318 318
319 r = amdgpu_copy_buffer(ring, old_start, new_start, 319 r = amdgpu_copy_buffer(ring, old_start, new_start,
320 cur_pages * PAGE_SIZE, 320 cur_pages * PAGE_SIZE,
321 bo->resv, &next, false); 321 bo->resv, &next, false, false);
322 if (r) 322 if (r)
323 goto error; 323 goto error;
324 324
@@ -1256,12 +1256,11 @@ int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma)
1256 return ttm_bo_mmap(filp, vma, &adev->mman.bdev); 1256 return ttm_bo_mmap(filp, vma, &adev->mman.bdev);
1257} 1257}
1258 1258
1259int amdgpu_copy_buffer(struct amdgpu_ring *ring, 1259int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset,
1260 uint64_t src_offset, 1260 uint64_t dst_offset, uint32_t byte_count,
1261 uint64_t dst_offset,
1262 uint32_t byte_count,
1263 struct reservation_object *resv, 1261 struct reservation_object *resv,
1264 struct dma_fence **fence, bool direct_submit) 1262 struct dma_fence **fence, bool direct_submit,
1263 bool vm_needs_flush)
1265{ 1264{
1266 struct amdgpu_device *adev = ring->adev; 1265 struct amdgpu_device *adev = ring->adev;
1267 struct amdgpu_job *job; 1266 struct amdgpu_job *job;
@@ -1283,6 +1282,7 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring,
1283 if (r) 1282 if (r)
1284 return r; 1283 return r;
1285 1284
1285 job->vm_needs_flush = vm_needs_flush;
1286 if (resv) { 1286 if (resv) {
1287 r = amdgpu_sync_resv(adev, &job->sync, resv, 1287 r = amdgpu_sync_resv(adev, &job->sync, resv,
1288 AMDGPU_FENCE_OWNER_UNDEFINED); 1288 AMDGPU_FENCE_OWNER_UNDEFINED);