aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1429-drm-amdkfd-Hawaii-doesn-t-support-atomics.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1429-drm-amdkfd-Hawaii-doesn-t-support-atomics.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1429-drm-amdkfd-Hawaii-doesn-t-support-atomics.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1429-drm-amdkfd-Hawaii-doesn-t-support-atomics.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1429-drm-amdkfd-Hawaii-doesn-t-support-atomics.patch
new file mode 100644
index 00000000..6061f92d
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1429-drm-amdkfd-Hawaii-doesn-t-support-atomics.patch
@@ -0,0 +1,53 @@
+From fd2ec5a1baecab1204b594fd0c04416334394434 Mon Sep 17 00:00:00 2001
+From: Amber Lin <Amber.Lin@amd.com>
+Date: Mon, 16 May 2016 18:34:37 -0400
+Subject: [PATCH 1429/4131] drm/amdkfd: Hawaii doesn't support atomics
+
+Hawaii doesn't support atomics on system memory. Put this information in IO
+link flags.
+
+BUG: KFD-239
+
+Change-Id: I5bf0e5e32ac4f2a3c9431328b68b75754e7f1d6d
+Signed-off-by: Amber Lin <Amber.Lin@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+index 00ad449..ba12d00 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c
+@@ -994,6 +994,21 @@ static void kfd_fill_mem_clk_max_info(struct kfd_topology_device *dev)
+ mem->mem_clk_max = local_mem_info.mem_clk_max;
+ }
+
++static void kfd_fill_iolink_non_crat_info(struct kfd_topology_device *dev)
++{
++ struct kfd_iolink_properties *link;
++
++ if ((dev == NULL) || (dev->gpu == NULL))
++ return;
++
++ /* GPU only creates direck links so apply flags setting to all */
++ if (dev->gpu->device_info->asic_family == CHIP_HAWAII)
++ list_for_each_entry(link, &dev->io_link_props, list)
++ link->flags = CRAT_IOLINK_FLAGS_ENABLED |
++ CRAT_IOLINK_FLAGS_NO_ATOMICS_32_BIT |
++ CRAT_IOLINK_FLAGS_NO_ATOMICS_64_BIT;
++}
++
+ int kfd_topology_add_device(struct kfd_dev *gpu)
+ {
+ uint32_t gpu_id;
+@@ -1076,6 +1091,7 @@ int kfd_topology_add_device(struct kfd_dev *gpu)
+ cpufreq_quick_get_max(0) / 1000;
+
+ kfd_fill_mem_clk_max_info(dev);
++ kfd_fill_iolink_non_crat_info(dev);
+
+ switch (dev->gpu->device_info->asic_family) {
+ case CHIP_KAVERI:
+--
+2.7.4
+