diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 23 | 
1 files changed, 21 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 3d822eba9a5d..5ac7b5561475 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -918,7 +918,8 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,  		bo->pin_count++;  		if (max_offset != 0) { -			u64 domain_start = bo->tbo.bdev->man[mem_type].gpu_offset; +			u64 domain_start = amdgpu_ttm_domain_start(adev, +								   mem_type);  			WARN_ON_ONCE(max_offset <  				     (amdgpu_bo_gpu_offset(bo) - domain_start));  		} @@ -1484,7 +1485,25 @@ u64 amdgpu_bo_gpu_offset(struct amdgpu_bo *bo)  	WARN_ON_ONCE(bo->tbo.mem.mem_type == TTM_PL_VRAM &&  		     !(bo->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS)); -	return amdgpu_gmc_sign_extend(bo->tbo.offset); +	return amdgpu_bo_gpu_offset_no_check(bo); +} + +/** + * amdgpu_bo_gpu_offset_no_check - return GPU offset of bo + * @bo:	amdgpu object for which we query the offset + * + * Returns: + * current GPU offset of the object without raising warnings. + */ +u64 amdgpu_bo_gpu_offset_no_check(struct amdgpu_bo *bo) +{ +	struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev); +	uint64_t offset; + +	offset = (bo->tbo.mem.start << PAGE_SHIFT) + +		 amdgpu_ttm_domain_start(adev, bo->tbo.mem.mem_type); + +	return amdgpu_gmc_sign_extend(offset);  }  /**  | 
