[AMD Official Use Only] Other than my suggestions, the series is: Reviewed-by: Tao Zhou <tao.zhou1@xxxxxxx> > -----Original Message----- > From: Chai, Thomas <YiPeng.Chai@xxxxxxx> > Sent: Monday, February 21, 2022 6:16 PM > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Chai, Thomas <YiPeng.Chai@xxxxxxx>; Zhang, Hawking > <Hawking.Zhang@xxxxxxx>; Zhou1, Tao <Tao.Zhou1@xxxxxxx>; Clements, > John <John.Clements@xxxxxxx>; Chai, Thomas <YiPeng.Chai@xxxxxxx> > Subject: [PATCH 12/12] 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@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 8 ++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 1 - > drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 4 ---- > drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 ---- > drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 8 -------- > drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c | 1 - > drivers/gpu/drm/amd/amdgpu/mca_v3_0.c | 3 --- > drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 1 - > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 4 ---- > 9 files changed, 8 insertions(+), 26 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > index 846f51b0c013..17f7c0259115 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > @@ -2477,6 +2477,12 @@ void amdgpu_ras_block_late_fini(struct > amdgpu_device *adev, > amdgpu_ras_interrupt_remove_handler(adev, ras_block); } > > +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. > */ > @@ -2586,6 +2592,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 */ > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > index c04d98e3bd9d..8abdab6869e9 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c > @@ -950,6 +950,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, > }, > }; > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > index f0cc073e6bb0..8def7f630d4c 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c > @@ -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; diff --git > a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c > b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c > index c8ad824328d7..d9353bb99314 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c > @@ -681,10 +681,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; diff --git > a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > index b01767d78153..4c3483fbe613 100644 > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > @@ -1241,10 +1241,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; @@ -1290,10 +1286,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; > } > } > > diff --git a/drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c > b/drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c > index 86c166ae794a..04bc615f3af0 100644 > --- a/drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/hdp_v4_0.c > @@ -163,7 +163,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, > }, > }; > > diff --git a/drivers/gpu/drm/amd/amdgpu/mca_v3_0.c > b/drivers/gpu/drm/amd/amdgpu/mca_v3_0.c > index 5ce6778a821d..d4bd7d1d2649 100644 > --- a/drivers/gpu/drm/amd/amdgpu/mca_v3_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/mca_v3_0.c > @@ -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, > }, > }; > > diff --git a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c > b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c > index 485fd9239cd5..b31df4db01fb 100644 > --- a/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c > +++ b/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c > @@ -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, > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > index 206acb6a5b20..01b385568c14 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c > @@ -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; > -- > 2.25.1