aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-08-16 08:43:17 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-08-22 13:47:24 -0400
commit99e124f402d6d649498e2aa3cbcf4563a37fea0e (patch)
tree516453a5e70e3c46a6d4bdb00e56368fc37bb95c /drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
parent6369f6f133f8388dbb9aa4040b06c5ac32a2fe8b (diff)
drm/amdgpu: cleanup amdgpu_vm_bo_update params
Make it more obvious what we are doing here. 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_vm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index d2824d97b7e5..bf56f1814437 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1117,28 +1117,32 @@ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev,
1117 * 1117 *
1118 * @adev: amdgpu_device pointer 1118 * @adev: amdgpu_device pointer
1119 * @bo_va: requested BO and VM object 1119 * @bo_va: requested BO and VM object
1120 * @mem: ttm mem 1120 * @clear: if true clear the entries
1121 * 1121 *
1122 * Fill in the page table entries for @bo_va. 1122 * Fill in the page table entries for @bo_va.
1123 * Returns 0 for success, -EINVAL for failure. 1123 * Returns 0 for success, -EINVAL for failure.
1124 *
1125 * Object have to be reserved and mutex must be locked!
1126 */ 1124 */
1127int amdgpu_vm_bo_update(struct amdgpu_device *adev, 1125int amdgpu_vm_bo_update(struct amdgpu_device *adev,
1128 struct amdgpu_bo_va *bo_va, 1126 struct amdgpu_bo_va *bo_va,
1129 struct ttm_mem_reg *mem) 1127 bool clear)
1130{ 1128{
1131 struct amdgpu_vm *vm = bo_va->vm; 1129 struct amdgpu_vm *vm = bo_va->vm;
1132 struct amdgpu_bo_va_mapping *mapping; 1130 struct amdgpu_bo_va_mapping *mapping;
1133 dma_addr_t *pages_addr = NULL; 1131 dma_addr_t *pages_addr = NULL;
1134 uint32_t gtt_flags, flags; 1132 uint32_t gtt_flags, flags;
1133 struct ttm_mem_reg *mem;
1135 struct fence *exclusive; 1134 struct fence *exclusive;
1136 uint64_t addr; 1135 uint64_t addr;
1137 int r; 1136 int r;
1138 1137
1139 if (mem) { 1138 if (clear) {
1139 mem = NULL;
1140 addr = 0;
1141 exclusive = NULL;
1142 } else {
1140 struct ttm_dma_tt *ttm; 1143 struct ttm_dma_tt *ttm;
1141 1144
1145 mem = &bo_va->bo->tbo.mem;
1142 addr = (u64)mem->start << PAGE_SHIFT; 1146 addr = (u64)mem->start << PAGE_SHIFT;
1143 switch (mem->mem_type) { 1147 switch (mem->mem_type) {
1144 case TTM_PL_TT: 1148 case TTM_PL_TT:
@@ -1156,9 +1160,6 @@ int amdgpu_vm_bo_update(struct amdgpu_device *adev,
1156 } 1160 }
1157 1161
1158 exclusive = reservation_object_get_excl(bo_va->bo->tbo.resv); 1162 exclusive = reservation_object_get_excl(bo_va->bo->tbo.resv);
1159 } else {
1160 addr = 0;
1161 exclusive = NULL;
1162 } 1163 }
1163 1164
1164 flags = amdgpu_ttm_tt_pte_flags(adev, bo_va->bo->tbo.ttm, mem); 1165 flags = amdgpu_ttm_tt_pte_flags(adev, bo_va->bo->tbo.ttm, mem);
@@ -1189,7 +1190,7 @@ int amdgpu_vm_bo_update(struct amdgpu_device *adev,
1189 spin_lock(&vm->status_lock); 1190 spin_lock(&vm->status_lock);
1190 list_splice_init(&bo_va->invalids, &bo_va->valids); 1191 list_splice_init(&bo_va->invalids, &bo_va->valids);
1191 list_del_init(&bo_va->vm_status); 1192 list_del_init(&bo_va->vm_status);
1192 if (!mem) 1193 if (clear)
1193 list_add(&bo_va->vm_status, &vm->cleared); 1194 list_add(&bo_va->vm_status, &vm->cleared);
1194 spin_unlock(&vm->status_lock); 1195 spin_unlock(&vm->status_lock);
1195 1196
@@ -1252,7 +1253,7 @@ int amdgpu_vm_clear_invalids(struct amdgpu_device *adev,
1252 struct amdgpu_bo_va, vm_status); 1253 struct amdgpu_bo_va, vm_status);
1253 spin_unlock(&vm->status_lock); 1254 spin_unlock(&vm->status_lock);
1254 1255
1255 r = amdgpu_vm_bo_update(adev, bo_va, NULL); 1256 r = amdgpu_vm_bo_update(adev, bo_va, true);
1256 if (r) 1257 if (r)
1257 return r; 1258 return r;
1258 1259