]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
Merge tag 'amd-drm-next-6.11-2024-06-22' of https://gitlab.freedesktop.org/agd5f...
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_gem.c
index 67c234bcf89ffdfa13a85c576a08fdc2deb3c754..1f22b4208729bf330096a7cdc6937541e26854c1 100644 (file)
@@ -174,7 +174,7 @@ static int amdgpu_gem_object_open(struct drm_gem_object *obj,
                return -EPERM;
 
        if (abo->flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID &&
-           abo->tbo.base.resv != vm->root.bo->tbo.base.resv)
+           !amdgpu_vm_is_bo_always_valid(vm, abo))
                return -EPERM;
 
        r = amdgpu_bo_reserve(abo, false);
@@ -334,6 +334,7 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
                      AMDGPU_GEM_CREATE_VM_ALWAYS_VALID |
                      AMDGPU_GEM_CREATE_EXPLICIT_SYNC |
                      AMDGPU_GEM_CREATE_ENCRYPTED |
+                     AMDGPU_GEM_CREATE_GFX12_DCC |
                      AMDGPU_GEM_CREATE_DISCARDABLE))
                return -EINVAL;
 
@@ -341,6 +342,11 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data,
        if (args->in.domains & ~AMDGPU_GEM_DOMAIN_MASK)
                return -EINVAL;
 
+       if ((flags & AMDGPU_GEM_CREATE_GFX12_DCC) &&
+           ((amdgpu_ip_version(adev, GC_HWIP, 0) < IP_VERSION(12, 0, 0)) ||
+            !(args->in.domains & AMDGPU_GEM_DOMAIN_VRAM)))
+               return -EINVAL;
+
        if (!amdgpu_is_tmz(adev) && (flags & AMDGPU_GEM_CREATE_ENCRYPTED)) {
                DRM_NOTE_ONCE("Cannot allocate secure buffer since TMZ is disabled\n");
                return -EINVAL;
@@ -683,7 +689,7 @@ uint64_t amdgpu_gem_va_map_flags(struct amdgpu_device *adev, uint32_t flags)
        if (flags & AMDGPU_VM_PAGE_WRITEABLE)
                pte_flag |= AMDGPU_PTE_WRITEABLE;
        if (flags & AMDGPU_VM_PAGE_PRT)
-               pte_flag |= AMDGPU_PTE_PRT;
+               pte_flag |= AMDGPU_PTE_PRT_FLAG(adev);
        if (flags & AMDGPU_VM_PAGE_NOALLOC)
                pte_flag |= AMDGPU_PTE_NOALLOC;
 
This page took 0.03795 seconds and 4 git commands to generate.