diff options
author | Christian König <christian.koenig@amd.com> | 2016-08-16 08:43:17 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-08-22 13:47:24 -0400 |
commit | 99e124f402d6d649498e2aa3cbcf4563a37fea0e (patch) | |
tree | 516453a5e70e3c46a6d4bdb00e56368fc37bb95c /drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |
parent | 6369f6f133f8388dbb9aa4040b06c5ac32a2fe8b (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.c | 21 |
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 | */ |
1127 | int amdgpu_vm_bo_update(struct amdgpu_device *adev, | 1125 | int 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 | ||