aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/ttm
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2018-02-22 08:54:57 +0100
committerAlex Deucher <alexander.deucher@amd.com>2018-02-26 23:09:46 -0500
commit45a9d154f61519b64c95bf27ef341e0b50931998 (patch)
treebfef8bf580a2b6dd4601b4f11d0f6cc75b564dc9 /drivers/gpu/drm/ttm
parentdrm/ttm: move ttm_tt_create into ttm_tt.c v2 (diff)
downloadlinux-dev-45a9d154f61519b64c95bf27ef341e0b50931998.tar.xz
linux-dev-45a9d154f61519b64c95bf27ef341e0b50931998.zip
drm/ttm: cleanup ttm_tt_create
Cleanup ttm_tt_create a bit. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Roger He <Hongbo.He@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/ttm')
-rw-r--r--drivers/gpu/drm/ttm/ttm_tt.c29
1 files changed, 13 insertions, 16 deletions
diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
index 917942d03047..0ee3b8f11605 100644
--- a/drivers/gpu/drm/ttm/ttm_tt.c
+++ b/drivers/gpu/drm/ttm/ttm_tt.c
@@ -53,11 +53,9 @@
int ttm_tt_create(struct ttm_buffer_object *bo, bool zero_alloc)
{
struct ttm_bo_device *bdev = bo->bdev;
- int ret = 0;
uint32_t page_flags = 0;
reservation_object_assert_held(bo->resv);
- bo->ttm = NULL;
if (bdev->need_dma32)
page_flags |= TTM_PAGE_FLAG_DMA32;
@@ -69,28 +67,27 @@ int ttm_tt_create(struct ttm_buffer_object *bo, bool zero_alloc)
case ttm_bo_type_device:
if (zero_alloc)
page_flags |= TTM_PAGE_FLAG_ZERO_ALLOC;
+ break;
case ttm_bo_type_kernel:
- bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
- page_flags);
- if (unlikely(bo->ttm == NULL))
- ret = -ENOMEM;
break;
case ttm_bo_type_sg:
- bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
- page_flags | TTM_PAGE_FLAG_SG);
- if (unlikely(bo->ttm == NULL)) {
- ret = -ENOMEM;
- break;
- }
- bo->ttm->sg = bo->sg;
+ page_flags |= TTM_PAGE_FLAG_SG;
break;
default:
+ bo->ttm = NULL;
pr_err("Illegal buffer object type\n");
- ret = -EINVAL;
- break;
+ return -EINVAL;
}
- return ret;
+ bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT,
+ page_flags);
+ if (unlikely(bo->ttm == NULL))
+ return -ENOMEM;
+
+ if (bo->type == ttm_bo_type_sg)
+ bo->ttm->sg = bo->sg;
+
+ return 0;
}
/**