diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c index 1c6be53313a8..f9c01bdc3d4c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c @@ -170,7 +170,7 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)  	}  } -void amdgpu_amdkfd_device_fini(struct amdgpu_device *adev) +void amdgpu_amdkfd_device_fini_sw(struct amdgpu_device *adev)  {  	if (adev->kfd.dev) {  		kgd2kfd_device_exit(adev->kfd.dev); @@ -246,6 +246,7 @@ int amdgpu_amdkfd_alloc_gtt_mem(struct kgd_dev *kgd, size_t size,  	bp.flags = AMDGPU_GEM_CREATE_CPU_GTT_USWC;  	bp.type = ttm_bo_type_kernel;  	bp.resv = NULL; +	bp.bo_ptr_size = sizeof(struct amdgpu_bo);  	if (cp_mqd_gfx9)  		bp.flags |= AMDGPU_GEM_CREATE_CP_MQD_GFX9; @@ -317,6 +318,7 @@ int amdgpu_amdkfd_alloc_gws(struct kgd_dev *kgd, size_t size,  {  	struct amdgpu_device *adev = (struct amdgpu_device *)kgd;  	struct amdgpu_bo *bo = NULL; +	struct amdgpu_bo_user *ubo;  	struct amdgpu_bo_param bp;  	int r; @@ -327,14 +329,16 @@ int amdgpu_amdkfd_alloc_gws(struct kgd_dev *kgd, size_t size,  	bp.flags = AMDGPU_GEM_CREATE_NO_CPU_ACCESS;  	bp.type = ttm_bo_type_device;  	bp.resv = NULL; +	bp.bo_ptr_size = sizeof(struct amdgpu_bo); -	r = amdgpu_bo_create(adev, &bp, &bo); +	r = amdgpu_bo_create_user(adev, &bp, &ubo);  	if (r) {  		dev_err(adev->dev,  			"failed to allocate gws BO for amdkfd (%d)\n", r);  		return r;  	} +	bo = &ubo->bo;  	*mem_obj = bo;  	return 0;  } @@ -495,8 +499,6 @@ int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int dma_buf_fd,  		*dma_buf_kgd = (struct kgd_dev *)adev;  	if (bo_size)  		*bo_size = amdgpu_bo_size(bo); -	if (metadata_size) -		*metadata_size = bo->metadata_size;  	if (metadata_buffer)  		r = amdgpu_bo_get_metadata(bo, metadata_buffer, buffer_size,  					   metadata_size, &metadata_flags); @@ -668,10 +670,10 @@ int amdgpu_amdkfd_flush_gpu_tlb_vmid(struct kgd_dev *kgd, uint16_t vmid)  	return 0;  } -int amdgpu_amdkfd_flush_gpu_tlb_pasid(struct kgd_dev *kgd, uint16_t pasid) +int amdgpu_amdkfd_flush_gpu_tlb_pasid(struct kgd_dev *kgd, uint16_t pasid, +				      enum TLB_FLUSH_TYPE flush_type)  {  	struct amdgpu_device *adev = (struct amdgpu_device *)kgd; -	const uint32_t flush_type = 0;  	bool all_hub = false;  	if (adev->family == AMDGPU_FAMILY_AI) | 
