aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3942-drm-amdgpu-add-ras-fini-for-nbio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3942-drm-amdgpu-add-ras-fini-for-nbio.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3942-drm-amdgpu-add-ras-fini-for-nbio.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3942-drm-amdgpu-add-ras-fini-for-nbio.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3942-drm-amdgpu-add-ras-fini-for-nbio.patch
new file mode 100644
index 00000000..25d11997
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3942-drm-amdgpu-add-ras-fini-for-nbio.patch
@@ -0,0 +1,63 @@
+From 338a97d4f5bb1371a8d886539d426d34d4eb1e64 Mon Sep 17 00:00:00 2001
+From: Tao Zhou <tao.zhou1@amd.com>
+Date: Wed, 18 Sep 2019 17:30:50 +0800
+Subject: [PATCH 3942/4256] drm/amdgpu: add ras fini for nbio
+
+add a common nbio ras fini implementation to cleanup nbio ras framework
+
+Signed-off-by: Tao Zhou <tao.zhou1@amd.com>
+Reviewed-by: Guchun Chen <guchun.chen@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c | 14 ++++++++++++++
+ drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h | 2 +-
+ drivers/gpu/drm/amd/amdgpu/soc15.c | 1 +
+ 3 files changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c
+index 65373ad03763..7d5c3a9de9ea 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c
+@@ -68,3 +68,17 @@ int amdgpu_nbio_ras_late_init(struct amdgpu_device *adev)
+ adev->nbio.ras_if = NULL;
+ return r;
+ }
++
++void amdgpu_nbio_ras_fini(struct amdgpu_device *adev)
++{
++ if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__PCIE_BIF) &&
++ adev->nbio.ras_if) {
++ struct ras_common_if *ras_if = adev->nbio.ras_if;
++ struct ras_ih_if ih_info = {
++ .cb = NULL,
++ };
++
++ amdgpu_ras_late_fini(adev, ras_if, &ih_info);
++ kfree(ras_if);
++ }
++}
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h
+index 9e26b81ba6ad..1f26a17e6561 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h
+@@ -95,5 +95,5 @@ struct amdgpu_nbio {
+ };
+
+ int amdgpu_nbio_ras_late_init(struct amdgpu_device *adev);
+-
++void amdgpu_nbio_ras_fini(struct amdgpu_device *adev);
+ #endif
+diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c
+index a66ef0460762..14c7fc141322 100644
+--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
++++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
+@@ -1247,6 +1247,7 @@ static int soc15_common_sw_fini(void *handle)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+
++ amdgpu_nbio_ras_fini(adev);
+ adev->df_funcs->sw_fini(adev);
+ return 0;
+ }
+--
+2.17.1
+