diff options
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_test.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 9 | 
5 files changed, 15 insertions, 16 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c index 1beae5b930d0..2fb299afc12b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.c @@ -40,7 +40,7 @@ static int amdgpu_benchmark_do_move(struct amdgpu_device *adev, unsigned size,  	for (i = 0; i < n; i++) {  		struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring;  		r = amdgpu_copy_buffer(ring, saddr, daddr, size, NULL, &fence, -				       false); +				       false, false);  		if (r)  			goto exit_do_move;  		r = dma_fence_wait(fence, false); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 8ee69652be8c..c34cf2c1ae4e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -535,7 +535,7 @@ int amdgpu_bo_backup_to_shadow(struct amdgpu_device *adev,  	r = amdgpu_copy_buffer(ring, bo_addr, shadow_addr,  			       amdgpu_bo_size(bo), resv, fence, -			       direct); +			       direct, false);  	if (!r)  		amdgpu_bo_fence(bo, *fence, true); @@ -588,7 +588,7 @@ int amdgpu_bo_restore_from_shadow(struct amdgpu_device *adev,  	r = amdgpu_copy_buffer(ring, shadow_addr, bo_addr,  			       amdgpu_bo_size(bo), resv, fence, -			       direct); +			       direct, false);  	if (!r)  		amdgpu_bo_fence(bo, *fence, true); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c index 15510dadde01..d02e611a2dae 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_test.c @@ -111,7 +111,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)  		amdgpu_bo_kunmap(gtt_obj[i]);  		r = amdgpu_copy_buffer(ring, gtt_addr, vram_addr, -				       size, NULL, &fence, false); +				       size, NULL, &fence, false, false);  		if (r) {  			DRM_ERROR("Failed GTT->VRAM copy %d\n", i); @@ -156,7 +156,7 @@ static void amdgpu_do_test_moves(struct amdgpu_device *adev)  		amdgpu_bo_kunmap(vram_obj);  		r = amdgpu_copy_buffer(ring, vram_addr, gtt_addr, -				       size, NULL, &fence, false); +				       size, NULL, &fence, false, false);  		if (r) {  			DRM_ERROR("Failed VRAM->GTT copy %d\n", i); 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,  		r = amdgpu_copy_buffer(ring, old_start, new_start,  				       cur_pages * PAGE_SIZE, -				       bo->resv, &next, false); +				       bo->resv, &next, false, false);  		if (r)  			goto error; @@ -1256,12 +1256,11 @@ int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma)  	return ttm_bo_mmap(filp, vma, &adev->mman.bdev);  } -int amdgpu_copy_buffer(struct amdgpu_ring *ring, -		       uint64_t src_offset, -		       uint64_t dst_offset, -		       uint32_t byte_count, +int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset, +		       uint64_t dst_offset, uint32_t byte_count,  		       struct reservation_object *resv, -		       struct dma_fence **fence, bool direct_submit) +		       struct dma_fence **fence, bool direct_submit, +		       bool vm_needs_flush)  {  	struct amdgpu_device *adev = ring->adev;  	struct amdgpu_job *job; @@ -1283,6 +1282,7 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring,  	if (r)  		return r; +	job->vm_needs_flush = vm_needs_flush;  	if (resv) {  		r = amdgpu_sync_resv(adev, &job->sync, resv,  				     AMDGPU_FENCE_OWNER_UNDEFINED); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h index 6bdede8ff12b..cd5bbfa2773f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h @@ -61,12 +61,11 @@ int amdgpu_gtt_mgr_alloc(struct ttm_mem_type_manager *man,  			 const struct ttm_place *place,  			 struct ttm_mem_reg *mem); -int amdgpu_copy_buffer(struct amdgpu_ring *ring, -		       uint64_t src_offset, -		       uint64_t dst_offset, -		       uint32_t byte_count, +int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset, +		       uint64_t dst_offset, uint32_t byte_count,  		       struct reservation_object *resv, -		       struct dma_fence **fence, bool direct_submit); +		       struct dma_fence **fence, bool direct_submit, +		       bool vm_needs_flush);  int amdgpu_fill_buffer(struct amdgpu_bo *bo,  			uint32_t src_data,  			struct reservation_object *resv, | 
