diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 46 | 
1 files changed, 5 insertions, 41 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c index 65debb65a5df..242a7b4dcad9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c @@ -90,28 +90,10 @@ int amdgpu_sdma_ras_late_init(struct amdgpu_device *adev,  			      void *ras_ih_info)  {  	int r, i; -	struct ras_ih_if *ih_info = (struct ras_ih_if *)ras_ih_info; -	struct ras_fs_if fs_info = { -		.sysfs_name = "sdma_err_count", -	}; - -	if (!ih_info) -		return -EINVAL; -	if (!adev->sdma.ras_if) { -		adev->sdma.ras_if = kmalloc(sizeof(struct ras_common_if), GFP_KERNEL); -		if (!adev->sdma.ras_if) -			return -ENOMEM; -		adev->sdma.ras_if->block = AMDGPU_RAS_BLOCK__SDMA; -		adev->sdma.ras_if->type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE; -		adev->sdma.ras_if->sub_block_index = 0; -	} -	fs_info.head = ih_info->head = *adev->sdma.ras_if; - -	r = amdgpu_ras_late_init(adev, adev->sdma.ras_if, -				 &fs_info, ih_info); +	r = amdgpu_ras_block_late_init(adev, adev->sdma.ras_if);  	if (r) -		goto free; +		return r;  	if (amdgpu_ras_is_supported(adev, adev->sdma.ras_if->block)) {  		for (i = 0; i < adev->sdma.num_instances; i++) { @@ -120,38 +102,20 @@ int amdgpu_sdma_ras_late_init(struct amdgpu_device *adev,  			if (r)  				goto late_fini;  		} -	} else { -		r = 0; -		goto free;  	}  	return 0;  late_fini: -	amdgpu_ras_late_fini(adev, adev->sdma.ras_if, ih_info); -free: -	kfree(adev->sdma.ras_if); -	adev->sdma.ras_if = NULL; +	amdgpu_ras_block_late_fini(adev, adev->sdma.ras_if);  	return r;  }  void amdgpu_sdma_ras_fini(struct amdgpu_device *adev)  {  	if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__SDMA) && -			adev->sdma.ras_if) { -		struct ras_common_if *ras_if = adev->sdma.ras_if; -		struct ras_ih_if ih_info = { -			.head = *ras_if, -			/* the cb member will not be used by -			 * amdgpu_ras_interrupt_remove_handler, init it only -			 * to cheat the check in ras_late_fini -			 */ -			.cb = amdgpu_sdma_process_ras_data_cb, -		}; - -		amdgpu_ras_late_fini(adev, ras_if, &ih_info); -		kfree(ras_if); -	} +			adev->sdma.ras_if) +		amdgpu_ras_block_late_fini(adev, adev->sdma.ras_if);  }  int amdgpu_sdma_process_ras_data_cb(struct amdgpu_device *adev, | 
