diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 25 | 
1 files changed, 10 insertions, 15 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index cef920a93924..425cebcc5cbf 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -1245,19 +1245,15 @@ int amdgpu_bo_get_metadata(struct amdgpu_bo *bo, void *buffer,   * amdgpu_bo_move_notify - notification about a memory move   * @bo: pointer to a buffer object   * @evict: if this move is evicting the buffer from the graphics address space - * @new_mem: new information of the bufer object   *   * Marks the corresponding &amdgpu_bo buffer object as invalid, also performs   * bookkeeping.   * TTM driver callback which is called when ttm moves a buffer.   */ -void amdgpu_bo_move_notify(struct ttm_buffer_object *bo, -			   bool evict, -			   struct ttm_resource *new_mem) +void amdgpu_bo_move_notify(struct ttm_buffer_object *bo, bool evict)  {  	struct amdgpu_device *adev = amdgpu_ttm_adev(bo->bdev);  	struct amdgpu_bo *abo; -	struct ttm_resource *old_mem = bo->resource;  	if (!amdgpu_bo_is_amdgpu_bo(bo))  		return; @@ -1274,13 +1270,6 @@ void amdgpu_bo_move_notify(struct ttm_buffer_object *bo,  	/* remember the eviction */  	if (evict)  		atomic64_inc(&adev->num_evictions); - -	/* update statistics */ -	if (!new_mem) -		return; - -	/* move_notify is called before move happens */ -	trace_amdgpu_bo_move(abo, new_mem->mem_type, old_mem->mem_type);  }  void amdgpu_bo_get_memory(struct amdgpu_bo *bo, @@ -1343,6 +1332,8 @@ void amdgpu_bo_release_notify(struct ttm_buffer_object *bo)  	abo = ttm_to_amdgpu_bo(bo); +	WARN_ON(abo->vm_bo); +  	if (abo->kfd_bo)  		amdgpu_amdkfd_release_notify(abo); @@ -1527,10 +1518,14 @@ u64 amdgpu_bo_gpu_offset(struct amdgpu_bo *bo)  u64 amdgpu_bo_gpu_offset_no_check(struct amdgpu_bo *bo)  {  	struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); -	uint64_t offset; +	uint64_t offset = AMDGPU_BO_INVALID_OFFSET; + +	if (bo->tbo.resource->mem_type == TTM_PL_TT) +		offset = amdgpu_gmc_agp_addr(&bo->tbo); -	offset = (bo->tbo.resource->start << PAGE_SHIFT) + -		 amdgpu_ttm_domain_start(adev, bo->tbo.resource->mem_type); +	if (offset == AMDGPU_BO_INVALID_OFFSET) +		offset = (bo->tbo.resource->start << PAGE_SHIFT) + +			amdgpu_ttm_domain_start(adev, bo->tbo.resource->mem_type);  	return amdgpu_gmc_sign_extend(offset);  } | 
