diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 40 | 
1 files changed, 11 insertions, 29 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c index 75dc58470393..067690ba7bff 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c @@ -142,6 +142,7 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)  {  	int i;  	int last_valid_bit; +	int ret;  	amdgpu_amdkfd_gpuvm_init_mem_limits(); @@ -160,6 +161,12 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)  			.enable_mes = adev->enable_mes,  		}; +		ret = drm_client_init(&adev->ddev, &adev->kfd.client, "kfd", NULL); +		if (ret) { +			dev_err(adev->dev, "Failed to init DRM client: %d\n", ret); +			return; +		} +  		/* this is going to have a few of the MSBs set that we need to  		 * clear  		 */ @@ -198,6 +205,10 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)  		adev->kfd.init_complete = kgd2kfd_device_init(adev->kfd.dev,  							&gpu_resources); +		if (adev->kfd.init_complete) +			drm_client_register(&adev->kfd.client); +		else +			drm_client_release(&adev->kfd.client);  		amdgpu_amdkfd_total_mem_size += adev->gmc.real_vram_size; @@ -710,35 +721,6 @@ bool amdgpu_amdkfd_is_kfd_vmid(struct amdgpu_device *adev, u32 vmid)  	return false;  } -int amdgpu_amdkfd_flush_gpu_tlb_vmid(struct amdgpu_device *adev, -				     uint16_t vmid) -{ -	if (adev->family == AMDGPU_FAMILY_AI) { -		int i; - -		for_each_set_bit(i, adev->vmhubs_mask, AMDGPU_MAX_VMHUBS) -			amdgpu_gmc_flush_gpu_tlb(adev, vmid, i, 0); -	} else { -		amdgpu_gmc_flush_gpu_tlb(adev, vmid, AMDGPU_GFXHUB(0), 0); -	} - -	return 0; -} - -int amdgpu_amdkfd_flush_gpu_tlb_pasid(struct amdgpu_device *adev, -				      uint16_t pasid, -				      enum TLB_FLUSH_TYPE flush_type, -				      uint32_t inst) -{ -	bool all_hub = false; - -	if (adev->family == AMDGPU_FAMILY_AI || -	    adev->family == AMDGPU_FAMILY_RV) -		all_hub = true; - -	return amdgpu_gmc_flush_gpu_tlb_pasid(adev, pasid, flush_type, all_hub, inst); -} -  bool amdgpu_amdkfd_have_atomics_support(struct amdgpu_device *adev)  {  	return adev->have_atomics_support; | 
