drm/amdgpu: Optimize amdgpu_mmhub_ras_late_init/amdgpu_mmhub_ras_fini function code
Optimize amdgpu_mmhub_ras_late_init/amdgpu_mmhub_ras_fini function code. Signed-off-by: yipechai <YiPeng.Chai@amd.com> Reviewed-by: Tao Zhou <tao.zhou1@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -26,43 +26,12 @@
|
|||||||
|
|
||||||
int amdgpu_mmhub_ras_late_init(struct amdgpu_device *adev, void *ras_info)
|
int amdgpu_mmhub_ras_late_init(struct amdgpu_device *adev, void *ras_info)
|
||||||
{
|
{
|
||||||
int r;
|
return amdgpu_ras_block_late_init(adev, adev->mmhub.ras_if);
|
||||||
struct ras_ih_if ih_info = {
|
|
||||||
.cb = NULL,
|
|
||||||
};
|
|
||||||
struct ras_fs_if fs_info = {
|
|
||||||
.sysfs_name = "mmhub_err_count",
|
|
||||||
};
|
|
||||||
|
|
||||||
if (!adev->mmhub.ras_if) {
|
|
||||||
adev->mmhub.ras_if = kmalloc(sizeof(struct ras_common_if), GFP_KERNEL);
|
|
||||||
if (!adev->mmhub.ras_if)
|
|
||||||
return -ENOMEM;
|
|
||||||
adev->mmhub.ras_if->block = AMDGPU_RAS_BLOCK__MMHUB;
|
|
||||||
adev->mmhub.ras_if->type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE;
|
|
||||||
adev->mmhub.ras_if->sub_block_index = 0;
|
|
||||||
}
|
|
||||||
ih_info.head = fs_info.head = *adev->mmhub.ras_if;
|
|
||||||
r = amdgpu_ras_late_init(adev, adev->mmhub.ras_if,
|
|
||||||
&fs_info, &ih_info);
|
|
||||||
if (r || !amdgpu_ras_is_supported(adev, adev->mmhub.ras_if->block)) {
|
|
||||||
kfree(adev->mmhub.ras_if);
|
|
||||||
adev->mmhub.ras_if = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return r;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void amdgpu_mmhub_ras_fini(struct amdgpu_device *adev)
|
void amdgpu_mmhub_ras_fini(struct amdgpu_device *adev)
|
||||||
{
|
{
|
||||||
if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__MMHUB) &&
|
if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__MMHUB) &&
|
||||||
adev->mmhub.ras_if) {
|
adev->mmhub.ras_if)
|
||||||
struct ras_common_if *ras_if = adev->mmhub.ras_if;
|
amdgpu_ras_block_late_fini(adev, adev->mmhub.ras_if);
|
||||||
struct ras_ih_if ih_info = {
|
|
||||||
.cb = NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
amdgpu_ras_late_fini(adev, ras_if, &ih_info);
|
|
||||||
kfree(ras_if);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1282,6 +1282,8 @@ static void gmc_v9_0_set_mmhub_ras_funcs(struct amdgpu_device *adev)
|
|||||||
|
|
||||||
strcpy(adev->mmhub.ras->ras_block.ras_comm.name, "mmhub");
|
strcpy(adev->mmhub.ras->ras_block.ras_comm.name, "mmhub");
|
||||||
adev->mmhub.ras->ras_block.ras_comm.block = AMDGPU_RAS_BLOCK__MMHUB;
|
adev->mmhub.ras->ras_block.ras_comm.block = AMDGPU_RAS_BLOCK__MMHUB;
|
||||||
|
adev->mmhub.ras->ras_block.ras_comm.type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE;
|
||||||
|
adev->mmhub.ras_if = &adev->mmhub.ras->ras_block.ras_comm;
|
||||||
|
|
||||||
/* If don't define special ras_late_init function, use default ras_late_init */
|
/* If don't define special ras_late_init function, use default ras_late_init */
|
||||||
if (!adev->mmhub.ras->ras_block.ras_late_init)
|
if (!adev->mmhub.ras->ras_block.ras_late_init)
|
||||||
|
|||||||
Reference in New Issue
Block a user