summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c68
1 files changed, 0 insertions, 68 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index d95a2cde..08c99895 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -2441,74 +2441,6 @@ int gk20a_vm_map_compbits(struct vm_gk20a *vm,
2441 return 0; 2441 return 0;
2442} 2442}
2443 2443
2444/*
2445 * Core GMMU map function for the kernel to use. If @addr is 0 then the GPU
2446 * VA will be allocated for you. If addr is non-zero then the buffer will be
2447 * mapped at @addr.
2448 */
2449static u64 __gk20a_gmmu_map(struct vm_gk20a *vm,
2450 struct sg_table **sgt,
2451 u64 addr,
2452 u64 size,
2453 u32 flags,
2454 int rw_flag,
2455 bool priv,
2456 enum nvgpu_aperture aperture)
2457{
2458 struct gk20a *g = gk20a_from_vm(vm);
2459 u64 vaddr;
2460
2461 nvgpu_mutex_acquire(&vm->update_gmmu_lock);
2462 vaddr = g->ops.mm.gmmu_map(vm, addr,
2463 *sgt, /* sg table */
2464 0, /* sg offset */
2465 size,
2466 gmmu_page_size_kernel,
2467 0, /* kind */
2468 0, /* ctag_offset */
2469 flags, rw_flag,
2470 false, /* clear_ctags */
2471 false, /* sparse */
2472 priv, /* priv */
2473 NULL, /* mapping_batch handle */
2474 aperture);
2475 nvgpu_mutex_release(&vm->update_gmmu_lock);
2476 if (!vaddr) {
2477 nvgpu_err(g, "failed to allocate va space");
2478 return 0;
2479 }
2480
2481 return vaddr;
2482}
2483
2484u64 gk20a_gmmu_map(struct vm_gk20a *vm,
2485 struct sg_table **sgt,
2486 u64 size,
2487 u32 flags,
2488 int rw_flag,
2489 bool priv,
2490 enum nvgpu_aperture aperture)
2491{
2492 return __gk20a_gmmu_map(vm, sgt, 0, size, flags, rw_flag, priv,
2493 aperture);
2494}
2495
2496/*
2497 * Like gk20a_gmmu_map() except it works on a fixed address instead.
2498 */
2499u64 gk20a_gmmu_fixed_map(struct vm_gk20a *vm,
2500 struct sg_table **sgt,
2501 u64 addr,
2502 u64 size,
2503 u32 flags,
2504 int rw_flag,
2505 bool priv,
2506 enum nvgpu_aperture aperture)
2507{
2508 return __gk20a_gmmu_map(vm, sgt, addr, size, flags, rw_flag, priv,
2509 aperture);
2510}
2511
2512#if defined(CONFIG_GK20A_VIDMEM) 2444#if defined(CONFIG_GK20A_VIDMEM)
2513static int gk20a_gmmu_clear_vidmem_mem(struct gk20a *g, struct nvgpu_mem *mem) 2445static int gk20a_gmmu_clear_vidmem_mem(struct gk20a *g, struct nvgpu_mem *mem)
2514{ 2446{