diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3947-drm-amdgpu-implement-common-gmc_ras_late_init.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3947-drm-amdgpu-implement-common-gmc_ras_late_init.patch | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3947-drm-amdgpu-implement-common-gmc_ras_late_init.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3947-drm-amdgpu-implement-common-gmc_ras_late_init.patch new file mode 100644 index 00000000..5a9ae8b0 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3947-drm-amdgpu-implement-common-gmc_ras_late_init.patch @@ -0,0 +1,102 @@ +From 1e29fc6cc7d5d385a8a79ea0591579006c37dc0c Mon Sep 17 00:00:00 2001 +From: Tao Zhou <tao.zhou1@amd.com> +Date: Wed, 18 Sep 2019 18:31:07 +0800 +Subject: [PATCH 3947/4256] drm/amdgpu: implement common gmc_ras_late_init + +common gmc_ecc_late_init can be shared among all generations of gmc + +v2: rename gmc_ecc_late_init to gmc_ras_late_init + +Signed-off-by: Tao Zhou <tao.zhou1@amd.com> +Reviewed-by: Guchun Chen <guchun.chen@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 19 +++++++++++++++++++ + drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 1 + + drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 22 +--------------------- + 3 files changed, 21 insertions(+), 21 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +index 8dc5251d346f..3ffd7fe16679 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +@@ -306,6 +306,25 @@ bool amdgpu_gmc_filter_faults(struct amdgpu_device *adev, uint64_t addr, + return false; + } + ++int amdgpu_gmc_ras_late_init(struct amdgpu_device *adev) ++{ ++ int r; ++ ++ if (adev->umc.funcs && adev->umc.funcs->ras_late_init) { ++ r = adev->umc.funcs->ras_late_init(adev); ++ if (r) ++ return r; ++ } ++ ++ if (adev->mmhub.funcs && adev->mmhub.funcs->ras_late_init) { ++ r = adev->mmhub.funcs->ras_late_init(adev); ++ if (r) ++ return r; ++ } ++ ++ return amdgpu_xgmi_ras_late_init(adev); ++} ++ + void amdgpu_gmc_ras_fini(struct amdgpu_device *adev) + { + amdgpu_umc_ras_fini(adev); +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h +index 9dd9c47cb47d..387cf338c958 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h +@@ -233,6 +233,7 @@ void amdgpu_gmc_agp_location(struct amdgpu_device *adev, + struct amdgpu_gmc *mc); + bool amdgpu_gmc_filter_faults(struct amdgpu_device *adev, uint64_t addr, + uint16_t pasid, uint64_t timestamp); ++int amdgpu_gmc_ras_late_init(struct amdgpu_device *adev); + void amdgpu_gmc_ras_fini(struct amdgpu_device *adev); + + #endif +diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +index a7ef9f3f5207..5b6f97f4a875 100644 +--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +@@ -732,26 +732,6 @@ static int gmc_v9_0_allocate_vm_inv_eng(struct amdgpu_device *adev) + return 0; + } + +-static int gmc_v9_0_ecc_late_init(void *handle) +-{ +- int r; +- struct amdgpu_device *adev = (struct amdgpu_device *)handle; +- +- if (adev->umc.funcs && adev->umc.funcs->ras_late_init) { +- r = adev->umc.funcs->ras_late_init(adev); +- if (r) +- return r; +- } +- +- if (adev->mmhub.funcs && adev->mmhub.funcs->ras_late_init) { +- r = adev->mmhub.funcs->ras_late_init(adev); +- if (r) +- return r; +- } +- +- return amdgpu_xgmi_ras_late_init(adev); +-} +- + static int gmc_v9_0_late_init(void *handle) + { + struct amdgpu_device *adev = (struct amdgpu_device *)handle; +@@ -789,7 +769,7 @@ static int gmc_v9_0_late_init(void *handle) + } + } + +- r = gmc_v9_0_ecc_late_init(handle); ++ r = amdgpu_gmc_ras_late_init(adev); + if (r) + return r; + +-- +2.17.1 + |