aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2755-drm-amdkfd-add-RAS-capabilities-in-topology-for-Vega.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2755-drm-amdkfd-add-RAS-capabilities-in-topology-for-Vega.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2755-drm-amdkfd-add-RAS-capabilities-in-topology-for-Vega.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2755-drm-amdkfd-add-RAS-capabilities-in-topology-for-Vega.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2755-drm-amdkfd-add-RAS-capabilities-in-topology-for-Vega.patch
new file mode 100644
index 00000000..6169ab3a
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2755-drm-amdkfd-add-RAS-capabilities-in-topology-for-Vega.patch
@@ -0,0 +1,73 @@
+From b5f14d660084b63856df1e1326265c0cde99a048 Mon Sep 17 00:00:00 2001
+From: Eric Huang <JinhuiEric.Huang@amd.com>
+Date: Fri, 11 Jan 2019 14:52:22 -0500
+Subject: [PATCH 2755/2940] drm/amdkfd: add RAS capabilities in topology for
+ Vega20
+
+It is to collaborate with HSA_CAPABILITY in libhsakmt.
+
+Signed-off-by: Eric Huang <JinhuiEric.Huang@amd.com>
+Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 14 ++++++++++++++
+ drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 4 ++++
+ 2 files changed, 18 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+index f0b415eac7cb..68f80e968f58 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+@@ -37,6 +37,7 @@
+ #include "kfd_device_queue_manager.h"
+ #include "kfd_iommu.h"
+ #include "amdgpu_amdkfd.h"
++#include "amdgpu_ras.h"
+
+ /* topology_device_list - Master list of all topology devices */
+ static struct list_head topology_device_list;
+@@ -1274,6 +1275,7 @@ int kfd_topology_add_device(struct kfd_dev *gpu)
+ void *crat_image = NULL;
+ size_t image_size = 0;
+ int proximity_domain;
++ struct amdgpu_ras *ctx;
+
+ INIT_LIST_HEAD(&temp_topology_device_list);
+
+@@ -1414,6 +1416,18 @@ int kfd_topology_add_device(struct kfd_dev *gpu)
+ dev->node_props.capability |= HSA_CAP_ATS_PRESENT;
+ }
+
++ ctx = amdgpu_ras_get_context((struct amdgpu_device *)(dev->gpu->kgd));
++ /* kfd only concerns sram ecc on GFX/SDMA and HBM ecc on UMC */
++ dev->node_props.capability |=
++ (((ctx->features & BIT(AMDGPU_RAS_BLOCK__SDMA)) != 0) ||
++ ((ctx->features & BIT(AMDGPU_RAS_BLOCK__GFX)) != 0)) ?
++ HSA_CAP_SRAM_EDCSUPPORTED : 0;
++ dev->node_props.capability |= ((ctx->features & BIT(AMDGPU_RAS_BLOCK__UMC)) != 0) ?
++ HSA_CAP_MEM_EDCSUPPORTED : 0;
++
++ dev->node_props.capability |= (ctx->features != 0) ?
++ HSA_CAP_RASEVENTNOTIFY : 0;
++
+ kfd_debug_print_topology();
+
+ if (!res)
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h
+index 5b57801068b1..af0aba3c4561 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h
+@@ -53,6 +53,10 @@
+
+ #define HSA_DBG_TRAP_DEBUG_TRAP_DATA_COUNT 0x00008000
+
++#define HSA_CAP_SRAM_EDCSUPPORTED 0x00080000
++#define HSA_CAP_MEM_EDCSUPPORTED 0x00100000
++#define HSA_CAP_RASEVENTNOTIFY 0x00200000
++
+ struct kfd_node_properties {
+ uint64_t hive_id;
+ uint32_t cpu_cores_count;
+--
+2.17.1
+