summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorMukul Joshi <mukul.joshi@amd.com>2025-02-26 15:45:46 -0500
committerAlex Deucher <alexander.deucher@amd.com>2025-12-08 14:13:01 -0500
commit4da4990337b34be49b95d99524c99910f4f0577f (patch)
treea971fdb2be53361eeae10ae234dc7cf3ba923e18 /drivers/gpu/drm/amd
parente08a675f940b2ec546236754718cd5f2a0054317 (diff)
drm/amdgpu: Setup PCIe atomics bit in PTE on GFX 12.1.0
To enable atomic access to memory, setup the new PCIe atomics bit in PTE on GFX 12.1.0. Signed-off-by: Mukul Joshi <mukul.joshi@amd.com> Reviewed-by: Alex Sierra <alex.sierra@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c3
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_svm.c5
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c b/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c
index ae08f8b3bfbc..4ead488261a6 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c
@@ -308,6 +308,9 @@ static void gmc_v12_1_get_vm_pte(struct amdgpu_device *adev,
if (bo && bo->flags & AMDGPU_GEM_CREATE_UNCACHED)
*flags = AMDGPU_PTE_MTYPE_GFX12(*flags, MTYPE_UC);
+
+ if (adev->have_atomics_support)
+ *flags |= AMDGPU_PTE_BUS_ATOMICS;
}
static const struct amdgpu_gmc_funcs gmc_v12_1_gmc_funcs = {
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
index 24a698702da7..903064610c23 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c
@@ -1305,6 +1305,11 @@ svm_range_get_pte_flags(struct kfd_node *node, struct amdgpu_vm *vm,
pte_flags |= AMDGPU_PTE_READABLE;
if (!(flags & KFD_IOCTL_SVM_FLAG_GPU_RO))
pte_flags |= AMDGPU_PTE_WRITEABLE;
+
+ if ((gc_ip_version == IP_VERSION(12, 1, 0)) &&
+ node->adev->have_atomics_support)
+ pte_flags |= AMDGPU_PTE_BUS_ATOMICS;
+
return pte_flags;
}