diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c | 47 | 
1 files changed, 5 insertions, 42 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c index 6afb02fef8cf..37d779b8e4a6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c @@ -22,61 +22,24 @@  #include "amdgpu.h"  #include "amdgpu_ras.h" -int amdgpu_nbio_ras_late_init(struct amdgpu_device *adev) +int amdgpu_nbio_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *ras_block)  {  	int r; -	struct ras_ih_if ih_info = { -		.cb = NULL, -	}; -	struct ras_fs_if fs_info = { -		.sysfs_name = "pcie_bif_err_count", -	}; - -	if (!adev->nbio.ras_if) { -		adev->nbio.ras_if = kmalloc(sizeof(struct ras_common_if), GFP_KERNEL); -		if (!adev->nbio.ras_if) -			return -ENOMEM; -		adev->nbio.ras_if->block = AMDGPU_RAS_BLOCK__PCIE_BIF; -		adev->nbio.ras_if->type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE; -		adev->nbio.ras_if->sub_block_index = 0; -	} -	ih_info.head = fs_info.head = *adev->nbio.ras_if; -	r = amdgpu_ras_late_init(adev, adev->nbio.ras_if, -				 &fs_info, &ih_info); +	r = amdgpu_ras_block_late_init(adev, ras_block);  	if (r) -		goto free; +		return r; -	if (amdgpu_ras_is_supported(adev, adev->nbio.ras_if->block)) { +	if (amdgpu_ras_is_supported(adev, ras_block->block)) {  		r = amdgpu_irq_get(adev, &adev->nbio.ras_controller_irq, 0);  		if (r)  			goto late_fini;  		r = amdgpu_irq_get(adev, &adev->nbio.ras_err_event_athub_irq, 0);  		if (r)  			goto late_fini; -	} else { -		r = 0; -		goto free;  	}  	return 0;  late_fini: -	amdgpu_ras_late_fini(adev, adev->nbio.ras_if, &ih_info); -free: -	kfree(adev->nbio.ras_if); -	adev->nbio.ras_if = NULL; +	amdgpu_ras_block_late_fini(adev, ras_block);  	return r;  } - -void amdgpu_nbio_ras_fini(struct amdgpu_device *adev) -{ -	if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__PCIE_BIF) && -			adev->nbio.ras_if) { -		struct ras_common_if *ras_if = adev->nbio.ras_if; -		struct ras_ih_if ih_info = { -			.cb = NULL, -		}; - -		amdgpu_ras_late_fini(adev, ras_if, &ih_info); -		kfree(ras_if); -	} -} |