aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-09-15 08:58:48 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-10-25 14:38:26 -0400
commita7d64de659946e852cd8f2a9691a21ddbb4ebc86 (patch)
tree23d8072cb76d150d6ab08961f233cbffde97ce1a /drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
parentf3fd451263f0dbfb99adaa40d7ac7cc458f9c533 (diff)
drm/amdgpu: remove adev pointer from struct amdgpu_bo v2
It's completely pointless to have two pointers to the device in the same structure. v2: rename function to amdgpu_ttm_adev, fix typos Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c43
1 files changed, 17 insertions, 26 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index f757f68418b7..414fa8fa8488 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -51,16 +51,6 @@
51static int amdgpu_ttm_debugfs_init(struct amdgpu_device *adev); 51static int amdgpu_ttm_debugfs_init(struct amdgpu_device *adev);
52static void amdgpu_ttm_debugfs_fini(struct amdgpu_device *adev); 52static void amdgpu_ttm_debugfs_fini(struct amdgpu_device *adev);
53 53
54static struct amdgpu_device *amdgpu_get_adev(struct ttm_bo_device *bdev)
55{
56 struct amdgpu_mman *mman;
57 struct amdgpu_device *adev;
58
59 mman = container_of(bdev, struct amdgpu_mman, bdev);
60 adev = container_of(mman, struct amdgpu_device, mman);
61 return adev;
62}
63
64 54
65/* 55/*
66 * Global memory. 56 * Global memory.
@@ -150,7 +140,7 @@ static int amdgpu_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
150{ 140{
151 struct amdgpu_device *adev; 141 struct amdgpu_device *adev;
152 142
153 adev = amdgpu_get_adev(bdev); 143 adev = amdgpu_ttm_adev(bdev);
154 144
155 switch (type) { 145 switch (type) {
156 case TTM_PL_SYSTEM: 146 case TTM_PL_SYSTEM:
@@ -195,6 +185,7 @@ static int amdgpu_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
195static void amdgpu_evict_flags(struct ttm_buffer_object *bo, 185static void amdgpu_evict_flags(struct ttm_buffer_object *bo,
196 struct ttm_placement *placement) 186 struct ttm_placement *placement)
197{ 187{
188 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->bdev);
198 struct amdgpu_bo *abo; 189 struct amdgpu_bo *abo;
199 static struct ttm_place placements = { 190 static struct ttm_place placements = {
200 .fpfn = 0, 191 .fpfn = 0,
@@ -213,7 +204,7 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo,
213 abo = container_of(bo, struct amdgpu_bo, tbo); 204 abo = container_of(bo, struct amdgpu_bo, tbo);
214 switch (bo->mem.mem_type) { 205 switch (bo->mem.mem_type) {
215 case TTM_PL_VRAM: 206 case TTM_PL_VRAM:
216 if (abo->adev->mman.buffer_funcs_ring->ready == false) { 207 if (adev->mman.buffer_funcs_ring->ready == false) {
217 amdgpu_ttm_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_CPU); 208 amdgpu_ttm_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_CPU);
218 } else { 209 } else {
219 amdgpu_ttm_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_GTT); 210 amdgpu_ttm_placement_from_domain(abo, AMDGPU_GEM_DOMAIN_GTT);
@@ -229,7 +220,7 @@ static void amdgpu_evict_flags(struct ttm_buffer_object *bo,
229 * allocating address space for the BO. 220 * allocating address space for the BO.
230 */ 221 */
231 abo->placements[i].lpfn = 222 abo->placements[i].lpfn =
232 abo->adev->mc.gtt_size >> PAGE_SHIFT; 223 adev->mc.gtt_size >> PAGE_SHIFT;
233 } 224 }
234 } 225 }
235 break; 226 break;
@@ -290,7 +281,7 @@ static int amdgpu_move_blit(struct ttm_buffer_object *bo,
290 struct ttm_mem_reg *new_mem, 281 struct ttm_mem_reg *new_mem,
291 struct ttm_mem_reg *old_mem) 282 struct ttm_mem_reg *old_mem)
292{ 283{
293 struct amdgpu_device *adev = amdgpu_get_adev(bo->bdev); 284 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->bdev);
294 struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring; 285 struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring;
295 286
296 struct drm_mm_node *old_mm, *new_mm; 287 struct drm_mm_node *old_mm, *new_mm;
@@ -384,7 +375,7 @@ static int amdgpu_move_vram_ram(struct ttm_buffer_object *bo,
384 struct ttm_placement placement; 375 struct ttm_placement placement;
385 int r; 376 int r;
386 377
387 adev = amdgpu_get_adev(bo->bdev); 378 adev = amdgpu_ttm_adev(bo->bdev);
388 tmp_mem = *new_mem; 379 tmp_mem = *new_mem;
389 tmp_mem.mm_node = NULL; 380 tmp_mem.mm_node = NULL;
390 placement.num_placement = 1; 381 placement.num_placement = 1;
@@ -431,7 +422,7 @@ static int amdgpu_move_ram_vram(struct ttm_buffer_object *bo,
431 struct ttm_place placements; 422 struct ttm_place placements;
432 int r; 423 int r;
433 424
434 adev = amdgpu_get_adev(bo->bdev); 425 adev = amdgpu_ttm_adev(bo->bdev);
435 tmp_mem = *new_mem; 426 tmp_mem = *new_mem;
436 tmp_mem.mm_node = NULL; 427 tmp_mem.mm_node = NULL;
437 placement.num_placement = 1; 428 placement.num_placement = 1;
@@ -474,7 +465,7 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo,
474 if (WARN_ON_ONCE(abo->pin_count > 0)) 465 if (WARN_ON_ONCE(abo->pin_count > 0))
475 return -EINVAL; 466 return -EINVAL;
476 467
477 adev = amdgpu_get_adev(bo->bdev); 468 adev = amdgpu_ttm_adev(bo->bdev);
478 469
479 /* remember the eviction */ 470 /* remember the eviction */
480 if (evict) 471 if (evict)
@@ -527,7 +518,7 @@ memcpy:
527static int amdgpu_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem) 518static int amdgpu_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
528{ 519{
529 struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type]; 520 struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
530 struct amdgpu_device *adev = amdgpu_get_adev(bdev); 521 struct amdgpu_device *adev = amdgpu_ttm_adev(bdev);
531 522
532 mem->bus.addr = NULL; 523 mem->bus.addr = NULL;
533 mem->bus.offset = 0; 524 mem->bus.offset = 0;
@@ -659,7 +650,7 @@ release_pages:
659/* prepare the sg table with the user pages */ 650/* prepare the sg table with the user pages */
660static int amdgpu_ttm_tt_pin_userptr(struct ttm_tt *ttm) 651static int amdgpu_ttm_tt_pin_userptr(struct ttm_tt *ttm)
661{ 652{
662 struct amdgpu_device *adev = amdgpu_get_adev(ttm->bdev); 653 struct amdgpu_device *adev = amdgpu_ttm_adev(ttm->bdev);
663 struct amdgpu_ttm_tt *gtt = (void *)ttm; 654 struct amdgpu_ttm_tt *gtt = (void *)ttm;
664 unsigned nents; 655 unsigned nents;
665 int r; 656 int r;
@@ -691,7 +682,7 @@ release_sg:
691 682
692static void amdgpu_ttm_tt_unpin_userptr(struct ttm_tt *ttm) 683static void amdgpu_ttm_tt_unpin_userptr(struct ttm_tt *ttm)
693{ 684{
694 struct amdgpu_device *adev = amdgpu_get_adev(ttm->bdev); 685 struct amdgpu_device *adev = amdgpu_ttm_adev(ttm->bdev);
695 struct amdgpu_ttm_tt *gtt = (void *)ttm; 686 struct amdgpu_ttm_tt *gtt = (void *)ttm;
696 struct sg_page_iter sg_iter; 687 struct sg_page_iter sg_iter;
697 688
@@ -851,7 +842,7 @@ static struct ttm_tt *amdgpu_ttm_tt_create(struct ttm_bo_device *bdev,
851 struct amdgpu_device *adev; 842 struct amdgpu_device *adev;
852 struct amdgpu_ttm_tt *gtt; 843 struct amdgpu_ttm_tt *gtt;
853 844
854 adev = amdgpu_get_adev(bdev); 845 adev = amdgpu_ttm_adev(bdev);
855 846
856 gtt = kzalloc(sizeof(struct amdgpu_ttm_tt), GFP_KERNEL); 847 gtt = kzalloc(sizeof(struct amdgpu_ttm_tt), GFP_KERNEL);
857 if (gtt == NULL) { 848 if (gtt == NULL) {
@@ -895,7 +886,7 @@ static int amdgpu_ttm_tt_populate(struct ttm_tt *ttm)
895 return 0; 886 return 0;
896 } 887 }
897 888
898 adev = amdgpu_get_adev(ttm->bdev); 889 adev = amdgpu_ttm_adev(ttm->bdev);
899 890
900#ifdef CONFIG_SWIOTLB 891#ifdef CONFIG_SWIOTLB
901 if (swiotlb_nr_tbl()) { 892 if (swiotlb_nr_tbl()) {
@@ -941,7 +932,7 @@ static void amdgpu_ttm_tt_unpopulate(struct ttm_tt *ttm)
941 if (slave) 932 if (slave)
942 return; 933 return;
943 934
944 adev = amdgpu_get_adev(ttm->bdev); 935 adev = amdgpu_ttm_adev(ttm->bdev);
945 936
946#ifdef CONFIG_SWIOTLB 937#ifdef CONFIG_SWIOTLB
947 if (swiotlb_nr_tbl()) { 938 if (swiotlb_nr_tbl()) {
@@ -1064,7 +1055,7 @@ uint32_t amdgpu_ttm_tt_pte_flags(struct amdgpu_device *adev, struct ttm_tt *ttm,
1064 1055
1065static void amdgpu_ttm_lru_removal(struct ttm_buffer_object *tbo) 1056static void amdgpu_ttm_lru_removal(struct ttm_buffer_object *tbo)
1066{ 1057{
1067 struct amdgpu_device *adev = amdgpu_get_adev(tbo->bdev); 1058 struct amdgpu_device *adev = amdgpu_ttm_adev(tbo->bdev);
1068 unsigned i, j; 1059 unsigned i, j;
1069 1060
1070 for (i = 0; i < AMDGPU_TTM_LRU_SIZE; ++i) { 1061 for (i = 0; i < AMDGPU_TTM_LRU_SIZE; ++i) {
@@ -1081,7 +1072,7 @@ static void amdgpu_ttm_lru_removal(struct ttm_buffer_object *tbo)
1081 1072
1082static struct amdgpu_mman_lru *amdgpu_ttm_lru(struct ttm_buffer_object *tbo) 1073static struct amdgpu_mman_lru *amdgpu_ttm_lru(struct ttm_buffer_object *tbo)
1083{ 1074{
1084 struct amdgpu_device *adev = amdgpu_get_adev(tbo->bdev); 1075 struct amdgpu_device *adev = amdgpu_ttm_adev(tbo->bdev);
1085 unsigned log2_size = min(ilog2(tbo->num_pages), 1076 unsigned log2_size = min(ilog2(tbo->num_pages),
1086 AMDGPU_TTM_LRU_SIZE - 1); 1077 AMDGPU_TTM_LRU_SIZE - 1);
1087 1078
@@ -1370,7 +1361,7 @@ int amdgpu_fill_buffer(struct amdgpu_bo *bo,
1370 struct reservation_object *resv, 1361 struct reservation_object *resv,
1371 struct fence **fence) 1362 struct fence **fence)
1372{ 1363{
1373 struct amdgpu_device *adev = bo->adev; 1364 struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
1374 struct amdgpu_job *job; 1365 struct amdgpu_job *job;
1375 struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring; 1366 struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring;
1376 1367