diff options
author | Christian König <christian.koenig@amd.com> | 2020-06-24 16:15:20 +0300 |
---|---|---|
committer | Christian König <christian.koenig@amd.com> | 2020-06-29 18:54:13 +0300 |
commit | 2ddef17678bc2ea1d20517dd2b4ed4aa967ffa8b (patch) | |
tree | 4b097fe90e0a0773ec01a06f67e2c75f539bd683 /drivers/gpu/drm/ttm/ttm_tt.c | |
parent | 58e4d686d456c3e356439ae160ff4a0728940b8e (diff) | |
download | linux-2ddef17678bc2ea1d20517dd2b4ed4aa967ffa8b.tar.xz |
drm/ttm: make TT creation purely optional v3
We only need the page array when the BO is about to be accessed.
So not only populate, but also create it on demand.
v2: move NULL check into ttm_tt_create()
v3: fix the occurrence in ttm_bo_kmap_ttm as well
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Link: https://patchwork.freedesktop.org/patch/373182/
Diffstat (limited to 'drivers/gpu/drm/ttm/ttm_tt.c')
-rw-r--r-- | drivers/gpu/drm/ttm/ttm_tt.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c index 2ec448e1d663..e25d4097aa16 100644 --- a/drivers/gpu/drm/ttm/ttm_tt.c +++ b/drivers/gpu/drm/ttm/ttm_tt.c @@ -50,6 +50,9 @@ int ttm_tt_create(struct ttm_buffer_object *bo, bool zero_alloc) dma_resv_assert_held(bo->base.resv); + if (bo->ttm) + return 0; + if (bdev->need_dma32) page_flags |= TTM_PAGE_FLAG_DMA32; @@ -67,7 +70,6 @@ int ttm_tt_create(struct ttm_buffer_object *bo, bool zero_alloc) page_flags |= TTM_PAGE_FLAG_SG; break; default: - bo->ttm = NULL; pr_err("Illegal buffer object type\n"); return -EINVAL; } |