[PATCH 2/4] drm/amdgpu: use amdgpu_bo_create_dmabuf()

Nirmoy Das nirmoy.das at amd.com
Wed Mar 17 07:47:14 UTC 2021


Modify amdgpu_gem_object_create() to allocate
amdgpu_bo_dmabuf BO for ttm_bo_type_sg.

Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>
---
 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



More information about the amd-gfx mailing list