Commit 80e0c2cb authored by yipechai's avatar yipechai Committed by Alex Deucher
Browse files

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: default avataryipechai <YiPeng.Chai@amd.com>
Reviewed-by: default avatarTao Zhou <tao.zhou1@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 30e58102
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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 */
+0 −1
Original line number Diff line number Diff line
@@ -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,
	},
};
+0 −4
Original line number Diff line number Diff line
@@ -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;
+0 −4
Original line number Diff line number Diff line
@@ -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;
+0 −8
Original line number Diff line number Diff line
@@ -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;
	}
}

Loading