From d38ffc74c0d17cff290157b4194c134f2f3ae8eb Mon Sep 17 00:00:00 2001 From: Kent Russell Date: Wed, 18 Jan 2017 12:21:03 -0500 Subject: [PATCH 1405/4131] drm/amdgpu: Reconcile code to upstream Replace bo->adev with amdgpu_ttm_adev(bo->tbo.bdev), replace entry.robj with bo, remove references to gem_base Change-Id: Ia215797588ec78070ac1aa904712f46b46535caf Signed-off-by: Kent Russell Signed-off-by: kalyan alle --- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 10 +++++----- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c | 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 9 ++++++++- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- 6 files changed, 18 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c index 5de1ca1..359ca9b 100755 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c @@ -214,7 +214,7 @@ static void amdgdu_amdkfd_restore_mem_worker(struct work_struct *work) mutex_lock(&mem->data2.lock); - adev = mem->data2.bo->adev; + adev = amdgpu_ttm_adev(mem->data2.bo->tbo.bdev); mm = mem->data2.mm; /* Restoration may have been canceled by another eviction or diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c index 2826e50..c4ef8ab 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -240,7 +240,7 @@ static int try_pin_pts(struct amdgpu_bo_va *bo_va, bool resv) /* walk over the address space and pin the page tables BOs*/ for (pt_idx = start; pt_idx <= last; pt_idx++) { - ret = try_pin_bo(vm->page_tables[pt_idx].entry.robj, resv, + ret = try_pin_bo(vm->page_tables[pt_idx].bo, resv, AMDGPU_GEM_DOMAIN_VRAM); if (ret != 0) { failed = pt_idx; @@ -257,7 +257,7 @@ static int try_pin_pts(struct amdgpu_bo_va *bo_va, bool resv) /* walk over the address space and pin the page tables BOs*/ for (pt_idx = start; pt_idx <= last; pt_idx++) { - ret = try_pin_bo(vm->page_tables[pt_idx].entry.robj, resv, + ret = try_pin_bo(vm->page_tables[pt_idx].bo, resv, AMDGPU_GEM_DOMAIN_VRAM); if (ret != 0) { failed = pt_idx; @@ -273,7 +273,7 @@ static int try_pin_pts(struct amdgpu_bo_va *bo_va, bool resv) /* Unpin all already pinned BOs*/ if (failed > 0) { for (pt_idx = start; pt_idx <= failed - 1; pt_idx++) - unpin_bo(vm->page_tables[pt_idx].entry.robj, resv); + unpin_bo(vm->page_tables[pt_idx].bo, resv); } return ret; } @@ -292,7 +292,7 @@ static void unpin_pts(struct amdgpu_bo_va *bo_va, struct amdgpu_vm *vm, /* walk over the address space and unpin the page tables BOs*/ for (pt_idx = start; pt_idx <= last; pt_idx++) - unpin_bo(vm->page_tables[pt_idx].entry.robj, resv); + unpin_bo(vm->page_tables[pt_idx].bo, resv); } list_for_each_entry(mapping, &bo_va->invalids, list) { @@ -303,7 +303,7 @@ static void unpin_pts(struct amdgpu_bo_va *bo_va, struct amdgpu_vm *vm, /* walk over the address space and unpin the page tables BOs*/ for (pt_idx = start; pt_idx <= last; pt_idx++) - unpin_bo(vm->page_tables[pt_idx].entry.robj, resv); + unpin_bo(vm->page_tables[pt_idx].bo, resv); } } diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index 88ac51c..87d6ff4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c @@ -1533,7 +1533,7 @@ amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser, struct amdgpu_bo_list_entry *lobj; lobj = &parser->bo_list->array[i]; - if (!lobj->bo_va || lobj->bo_va->bo->adev != parser->adev) + if (!lobj->bo_va || amdgpu_ttm_adev(lobj->bo_va->base.bo->tbo.bdev) != parser->adev) continue; list_for_each_entry(mapping, &lobj->bo_va->valids, list) { diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c index 87bb00d..40e431a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c @@ -229,7 +229,7 @@ static void amdgpu_mn_invalidate_range_start_hsa(struct mmu_notifier *mn, if (amdgpu_ttm_tt_affect_userptr(bo->tbo.ttm, start, end)) - amdgpu_amdkfd_evict_mem(bo->adev, mem, mm); + amdgpu_amdkfd_evict_mem(amdgpu_ttm_adev(bo->tbo.bdev), mem, mm); } } } @@ -272,7 +272,7 @@ static void amdgpu_mn_invalidate_range_end_hsa(struct mmu_notifier *mn, if (amdgpu_ttm_tt_affect_userptr(bo->tbo.ttm, start, end)) - amdgpu_amdkfd_schedule_restore_mem(bo->adev, + amdgpu_amdkfd_schedule_restore_mem(amdgpu_ttm_adev(bo->tbo.bdev), mem, mm, 1); } } diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 7ed9e8b..18750dd 100755 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -336,6 +336,7 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev, struct amdgpu_bo **bo_ptr) { struct amdgpu_bo *bo; + struct amdgpu_gem_object *gobj; enum ttm_bo_type type; unsigned long page_align; u64 initial_bytes_moved, bytes_moved; @@ -360,7 +361,13 @@ int amdgpu_bo_create_restricted(struct amdgpu_device *adev, bo = kzalloc(sizeof(struct amdgpu_bo), GFP_KERNEL); if (bo == NULL) return -ENOMEM; - r = drm_gem_object_init(adev->ddev, &bo->gem_base, size); + gobj = kzalloc(sizeof(struct amdgpu_gem_object), GFP_KERNEL); + if (unlikely(!gobj)) { + amdgpu_bo_unref(&bo); + return -ENOMEM; + } + + r = drm_gem_object_init(adev->ddev, &gobj->base, size); if (unlikely(r)) { kfree(bo); return r; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 0e77e62..50d1d55 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -1631,7 +1631,7 @@ static int amdgpu_ttm_bo_access_vram(struct amdgpu_bo *abo, unsigned long offset, void *buf, int len, int write) { - struct amdgpu_device *adev = abo->adev; + struct amdgpu_device *adev = amdgpu_ttm_adev(abo->tbo.bdev); uint64_t pos = amdgpu_bo_gpu_offset(abo) + offset; uint32_t value = 0; unsigned long flags; -- 2.7.4