diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2686-drm-amdkfd-kfd-expose-the-hive_id-of-the-device-thro.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2686-drm-amdkfd-kfd-expose-the-hive_id-of-the-device-thro.patch | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2686-drm-amdkfd-kfd-expose-the-hive_id-of-the-device-thro.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2686-drm-amdkfd-kfd-expose-the-hive_id-of-the-device-thro.patch new file mode 100644 index 00000000..1ea83969 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2686-drm-amdkfd-kfd-expose-the-hive_id-of-the-device-thro.patch @@ -0,0 +1,88 @@ +From d30bf4b9ed72442b750b787bc6befe305a3cf426 Mon Sep 17 00:00:00 2001 +From: Shaoyun Liu <Shaoyun.Liu@amd.com> +Date: Fri, 6 Jul 2018 11:32:42 -0400 +Subject: [PATCH 2686/2940] drm/amdkfd: kfd expose the hive_id of the device + through its node properties +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Thunk will generate the XGMI topology information when necessary with the hive_id +for each specified device + +Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com> +Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> +Acked-by: Christian König <christian.koenig@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdkfd/kfd_device.c | 3 +++ + drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 3 +++ + drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 4 ++++ + drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 1 + + 4 files changed, 11 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c +index 29ac74f40dce..9b4e6ad4a7df 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c +@@ -477,6 +477,9 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd, + goto kfd_doorbell_error; + } + ++ if (kfd->kfd2kgd->get_hive_id) ++ kfd->hive_id = kfd->kfd2kgd->get_hive_id(kfd->kgd); ++ + if (kfd_topology_add_device(kfd)) { + dev_err(kfd_device, "Error adding device to topology\n"); + goto kfd_topology_add_device_error; +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +index 92b285ca73aa..843dbd4ad776 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +@@ -282,6 +282,9 @@ struct kfd_dev { + bool cwsr_enabled; + const void *cwsr_isa; + unsigned int cwsr_isa_size; ++ ++ /* xGMI */ ++ uint64_t hive_id; + }; + + /* KGD2KFD callbacks */ +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c +index 80f5db4ef75f..0dff66be8d7a 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c +@@ -454,6 +454,8 @@ static ssize_t node_show(struct kobject *kobj, struct attribute *attr, + dev->node_props.location_id); + sysfs_show_32bit_prop(buffer, "drm_render_minor", + dev->node_props.drm_render_minor); ++ sysfs_show_64bit_prop(buffer, "hive_id", ++ dev->node_props.hive_id); + + if (dev->gpu) { + log_max_watch_addr = +@@ -1230,6 +1232,8 @@ int kfd_topology_add_device(struct kfd_dev *gpu) + dev->node_props.drm_render_minor = + gpu->shared_resources.drm_render_minor; + ++ dev->node_props.hive_id = gpu->hive_id; ++ + kfd_fill_mem_clk_max_info(dev); + kfd_fill_iolink_non_crat_info(dev); + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h +index 7d9c3f948dff..92a19be07344 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h +@@ -49,6 +49,7 @@ + #define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000 + + struct kfd_node_properties { ++ uint64_t hive_id; + uint32_t cpu_cores_count; + uint32_t simd_count; + uint32_t mem_banks_count; +-- +2.17.1 + |