From fd2ec5a1baecab1204b594fd0c04416334394434 Mon Sep 17 00:00:00 2001 From: Amber Lin 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 --- 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