]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: Setup PCIe atomics bit in PTE on GFX 12.1.0
authorMukul Joshi <mukul.joshi@amd.com>
Wed, 26 Feb 2025 20:45:46 +0000 (15:45 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 8 Dec 2025 19:13:01 +0000 (14:13 -0500)
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>
drivers/gpu/drm/amd/amdgpu/gmc_v12_1.c
drivers/gpu/drm/amd/amdkfd/kfd_svm.c

index ae08f8b3bfbc1a7a4d508f5a5bc67ee6bc226a08..4ead488261a686e2eaecdd6e46a3a3c178d283ca 100644 (file)
@@ -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 = {
index 24a698702da7596f36b3e7aa6053aac089483a42..903064610c23cb1607c18b0c8c5572df9297ab32 100644 (file)
@@ -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;
 }