Modify amdgpu_gem_object_create() to allocate
amdgpu_bo_dmabuf BO for ttm_bo_type_sg.

Signed-off-by: Nirmoy Das <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
index 311bcdc59eda..5366a806be2b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -59,6 +59,7 @@ int amdgpu_gem_object_create(struct amdgpu_device *adev, 
unsigned long size,
 {
        struct amdgpu_bo *bo;
        struct amdgpu_bo_user *ubo;
+       struct amdgpu_bo_dmabuf *dbo;
        struct amdgpu_bo_param bp;
        int r;
 
@@ -74,11 +75,18 @@ int amdgpu_gem_object_create(struct amdgpu_device *adev, 
unsigned long size,
        bp.domain = initial_domain;
        bp.bo_ptr_size = sizeof(struct amdgpu_bo);
 
-       r = amdgpu_bo_create_user(adev, &bp, &ubo);
+       if (type != ttm_bo_type_sg)
+               r = amdgpu_bo_create_user(adev, &bp, &ubo);
+       else
+               r = amdgpu_bo_create_dmabuf(adev, &bp, &dbo);
        if (r)
                return r;
 
-       bo = &ubo->bo;
+       if (type != ttm_bo_type_sg)
+               bo = &ubo->bo;
+       else
+               bo = &dbo->bo;
+
        *obj = &bo->tbo.base;
        (*obj)->funcs = &amdgpu_gem_object_funcs;
 
-- 
2.30.1

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to