drm/amdgpu: Remove redundant .ras_fini initialization in some ras blocks
1. Define amdgpu_ras_block_late_fini_default in amdgpu_ras.c as .ras_fini common function, which is called when .ras_fini of ras block isn't initialized. 2. Remove the code of using amdgpu_ras_block_late_fini to initialize .ras_fini in ras blocks. 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:
parent
30e58102d5
commit
80e0c2cb37
@ -2477,6 +2477,12 @@ void amdgpu_ras_block_late_fini(struct amdgpu_device *adev,
|
||||
amdgpu_ras_interrupt_remove_handler(adev, ras_block);
|
||||
}
|
||||
|
||||
static void amdgpu_ras_block_late_fini_default(struct amdgpu_device *adev,
|
||||
struct ras_common_if *ras_block)
|
||||
{
|
||||
return amdgpu_ras_block_late_fini(adev, ras_block);
|
||||
}
|
||||
|
||||
/* do some init work after IP late init as dependence.
|
||||
* and it runs in resume/gpu reset/booting up cases.
|
||||
*/
|
||||
@ -2584,6 +2590,8 @@ int amdgpu_ras_fini(struct amdgpu_device *adev)
|
||||
if (amdgpu_ras_is_supported(adev, obj->ras_comm.block) &&
|
||||
obj->ras_fini)
|
||||
obj->ras_fini(adev, &obj->ras_comm);
|
||||
else
|
||||
amdgpu_ras_block_late_fini_default(adev, &obj->ras_comm);
|
||||
}
|
||||
|
||||
/* Clear ras blocks from ras_list and free ras block list node */
|
||||
|
@ -975,6 +975,5 @@ struct amdgpu_xgmi_ras xgmi_ras = {
|
||||
},
|
||||
.hw_ops = &xgmi_ras_hw_ops,
|
||||
.ras_late_init = amdgpu_xgmi_ras_late_init,
|
||||
.ras_fini = amdgpu_ras_block_late_fini,
|
||||
},
|
||||
};
|
||||
|
@ -2204,10 +2204,6 @@ static int gfx_v9_0_gpu_early_init(struct amdgpu_device *adev)
|
||||
if (!adev->gfx.ras->ras_block.ras_late_init)
|
||||
adev->gfx.ras->ras_block.ras_late_init = amdgpu_gfx_ras_late_init;
|
||||
|
||||
/* If not define special ras_fini function, use gfx default ras_fini */
|
||||
if (!adev->gfx.ras->ras_block.ras_fini)
|
||||
adev->gfx.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
|
||||
|
||||
/* If not defined special ras_cb function, use default ras_cb */
|
||||
if (!adev->gfx.ras->ras_block.ras_cb)
|
||||
adev->gfx.ras->ras_block.ras_cb = amdgpu_gfx_process_ras_data_cb;
|
||||
|
@ -683,10 +683,6 @@ static void gmc_v10_0_set_umc_funcs(struct amdgpu_device *adev)
|
||||
if (!adev->umc.ras->ras_block.ras_late_init)
|
||||
adev->umc.ras->ras_block.ras_late_init = amdgpu_umc_ras_late_init;
|
||||
|
||||
/* If don't define special ras_fini function, use default ras_fini */
|
||||
if (!adev->umc.ras->ras_block.ras_fini)
|
||||
adev->umc.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
|
||||
|
||||
/* If not defined special ras_cb function, use default ras_cb */
|
||||
if (!adev->umc.ras->ras_block.ras_cb)
|
||||
adev->umc.ras->ras_block.ras_cb = amdgpu_umc_process_ras_data_cb;
|
||||
|
@ -1243,10 +1243,6 @@ static void gmc_v9_0_set_umc_funcs(struct amdgpu_device *adev)
|
||||
if (!adev->umc.ras->ras_block.ras_late_init)
|
||||
adev->umc.ras->ras_block.ras_late_init = amdgpu_umc_ras_late_init;
|
||||
|
||||
/* If don't define special ras_fini function, use default ras_fini */
|
||||
if (!adev->umc.ras->ras_block.ras_fini)
|
||||
adev->umc.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
|
||||
|
||||
/* If not defined special ras_cb function, use default ras_cb */
|
||||
if (!adev->umc.ras->ras_block.ras_cb)
|
||||
adev->umc.ras->ras_block.ras_cb = amdgpu_umc_process_ras_data_cb;
|
||||
@ -1292,10 +1288,6 @@ static void gmc_v9_0_set_mmhub_ras_funcs(struct amdgpu_device *adev)
|
||||
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_fini function, use default ras_fini */
|
||||
if (!adev->mmhub.ras->ras_block.ras_fini)
|
||||
adev->mmhub.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,7 +166,6 @@ struct amdgpu_hdp_ras hdp_v4_0_ras = {
|
||||
.type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE,
|
||||
},
|
||||
.hw_ops = &hdp_v4_0_ras_hw_ops,
|
||||
.ras_fini = amdgpu_ras_block_late_fini,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -66,7 +66,6 @@ struct amdgpu_mca_ras_block mca_v3_0_mp0_ras = {
|
||||
},
|
||||
.hw_ops = &mca_v3_0_mp0_hw_ops,
|
||||
.ras_block_match = mca_v3_0_ras_block_match,
|
||||
.ras_fini = amdgpu_ras_block_late_fini,
|
||||
},
|
||||
};
|
||||
|
||||
@ -93,7 +92,6 @@ struct amdgpu_mca_ras_block mca_v3_0_mp1_ras = {
|
||||
},
|
||||
.hw_ops = &mca_v3_0_mp1_hw_ops,
|
||||
.ras_block_match = mca_v3_0_ras_block_match,
|
||||
.ras_fini = amdgpu_ras_block_late_fini,
|
||||
},
|
||||
};
|
||||
|
||||
@ -120,7 +118,6 @@ struct amdgpu_mca_ras_block mca_v3_0_mpio_ras = {
|
||||
},
|
||||
.hw_ops = &mca_v3_0_mpio_hw_ops,
|
||||
.ras_block_match = mca_v3_0_ras_block_match,
|
||||
.ras_fini = amdgpu_ras_block_late_fini,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -671,7 +671,6 @@ struct amdgpu_nbio_ras nbio_v7_4_ras = {
|
||||
},
|
||||
.hw_ops = &nbio_v7_4_ras_hw_ops,
|
||||
.ras_late_init = amdgpu_nbio_ras_late_init,
|
||||
.ras_fini = amdgpu_ras_block_late_fini,
|
||||
},
|
||||
.handle_ras_controller_intr_no_bifring = nbio_v7_4_handle_ras_controller_intr_no_bifring,
|
||||
.handle_ras_err_event_athub_intr_no_bifring = nbio_v7_4_handle_ras_err_event_athub_intr_no_bifring,
|
||||
|
@ -2822,10 +2822,6 @@ static void sdma_v4_0_set_ras_funcs(struct amdgpu_device *adev)
|
||||
if (!adev->sdma.ras->ras_block.ras_late_init)
|
||||
adev->sdma.ras->ras_block.ras_late_init = amdgpu_sdma_ras_late_init;
|
||||
|
||||
/* If don't define special ras_fini function, use default ras_fini */
|
||||
if (!adev->sdma.ras->ras_block.ras_fini)
|
||||
adev->sdma.ras->ras_block.ras_fini = amdgpu_ras_block_late_fini;
|
||||
|
||||
/* If not defined special ras_cb function, use default ras_cb */
|
||||
if (!adev->sdma.ras->ras_block.ras_cb)
|
||||
adev->sdma.ras->ras_block.ras_cb = amdgpu_sdma_process_ras_data_cb;
|
||||
|
Loading…
x
Reference in New Issue
Block a user