summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/semaphore.c
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2017-04-10 17:04:15 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-05-11 09:04:12 -0400
commitc3fa78b1d9cba28547ca59154207d434931ae746 (patch)
tree42117714f2d8dd217229e6c183d4b6affd29c7d1 /drivers/gpu/nvgpu/common/semaphore.c
parent36c1fdccc994d337fc15dd2b67ff05435f37dec9 (diff)
gpu: nvgpu: Separate GMMU out of mm_gk20a.c
Begin moving (and renaming) the GMMU code into common/mm/gmmu.c. This block of code will be responsible for handling the platform/OS independent GMMU operations. JIRA NVGPU-12 JIRA NVGPU-30 Change-Id: Ide761bab75e5d84be3dcb977c4842ae4b3a7c1b3 Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: http://git-master/r/1464083 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common/semaphore.c')
-rw-r--r--drivers/gpu/nvgpu/common/semaphore.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/drivers/gpu/nvgpu/common/semaphore.c b/drivers/gpu/nvgpu/common/semaphore.c
index fa86985b..a54ce831 100644
--- a/drivers/gpu/nvgpu/common/semaphore.c
+++ b/drivers/gpu/nvgpu/common/semaphore.c
@@ -14,6 +14,7 @@
14 */ 14 */
15 15
16#include <nvgpu/dma.h> 16#include <nvgpu/dma.h>
17#include <nvgpu/gmmu.h>
17#include <nvgpu/semaphore.h> 18#include <nvgpu/semaphore.h>
18#include <nvgpu/kmem.h> 19#include <nvgpu/kmem.h>
19#include <nvgpu/bug.h> 20#include <nvgpu/bug.h>
@@ -197,7 +198,7 @@ int nvgpu_semaphore_pool_map(struct nvgpu_semaphore_pool *p,
197 */ 198 */
198 __lock_sema_sea(p->sema_sea); 199 __lock_sema_sea(p->sema_sea);
199 200
200 addr = gk20a_gmmu_fixed_map(vm, &p->sema_sea->sea_mem.priv.sgt, 201 addr = nvgpu_gmmu_map_fixed(vm, &p->sema_sea->sea_mem,
201 p->sema_sea->gpu_va, 202 p->sema_sea->gpu_va,
202 p->sema_sea->map_size, 203 p->sema_sea->map_size,
203 0, gk20a_mem_flag_read_only, 0, 204 0, gk20a_mem_flag_read_only, 0,
@@ -225,7 +226,7 @@ int nvgpu_semaphore_pool_map(struct nvgpu_semaphore_pool *p,
225 if (err) 226 if (err)
226 goto fail_unmap; 227 goto fail_unmap;
227 228
228 addr = gk20a_gmmu_map(vm, &p->rw_mem.priv.sgt, SZ_4K, 0, 229 addr = nvgpu_gmmu_map(vm, &p->rw_mem, SZ_4K, 0,
229 gk20a_mem_flag_none, 0, 230 gk20a_mem_flag_none, 0,
230 p->rw_mem.aperture); 231 p->rw_mem.aperture);
231 232
@@ -250,10 +251,7 @@ int nvgpu_semaphore_pool_map(struct nvgpu_semaphore_pool *p,
250fail_free_submem: 251fail_free_submem:
251 nvgpu_dma_free(pool_to_gk20a(p), &p->rw_mem); 252 nvgpu_dma_free(pool_to_gk20a(p), &p->rw_mem);
252fail_unmap: 253fail_unmap:
253 gk20a_gmmu_unmap(vm, 254 nvgpu_gmmu_unmap(vm, &p->sema_sea->sea_mem, p->gpu_va_ro);
254 p->sema_sea->sea_mem.gpu_va,
255 p->sema_sea->map_size,
256 gk20a_mem_flag_none);
257 gpu_sema_dbg(pool_to_gk20a(p), 255 gpu_sema_dbg(pool_to_gk20a(p),
258 " %d: Failed to map semaphore pool!", p->page_idx); 256 " %d: Failed to map semaphore pool!", p->page_idx);
259fail_unlock: 257fail_unlock:
@@ -269,14 +267,8 @@ void nvgpu_semaphore_pool_unmap(struct nvgpu_semaphore_pool *p,
269{ 267{
270 __lock_sema_sea(p->sema_sea); 268 __lock_sema_sea(p->sema_sea);
271 269
272 gk20a_gmmu_unmap(vm, 270 nvgpu_gmmu_unmap(vm, &p->sema_sea->sea_mem, p->gpu_va_ro);
273 p->sema_sea->sea_mem.gpu_va, 271 nvgpu_gmmu_unmap(vm, &p->rw_mem, p->gpu_va);
274 p->sema_sea->sea_mem.size,
275 gk20a_mem_flag_none);
276 gk20a_gmmu_unmap(vm,
277 p->rw_mem.gpu_va,
278 p->rw_mem.size,
279 gk20a_mem_flag_none);
280 nvgpu_dma_free(pool_to_gk20a(p), &p->rw_mem); 272 nvgpu_dma_free(pool_to_gk20a(p), &p->rw_mem);
281 273
282 p->gpu_va = 0; 274 p->gpu_va = 0;