aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3947-drm-amdgpu-implement-common-gmc_ras_late_init.patch
diff options
context:
space:
mode:
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.patch102
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
+