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.c36
1 files changed, 30 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index 5e87ae25..d7ace0d8 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -713,7 +713,7 @@ static void gk20a_remove_mm_support(struct mm_gk20a *mm)
713 713
714static int gk20a_alloc_sysmem_flush(struct gk20a *g) 714static int gk20a_alloc_sysmem_flush(struct gk20a *g)
715{ 715{
716 return gk20a_gmmu_alloc(g, SZ_4K, &g->mm.sysmem_flush); 716 return gk20a_gmmu_alloc_sys(g, SZ_4K, &g->mm.sysmem_flush);
717} 717}
718 718
719static void gk20a_init_pramin(struct mm_gk20a *mm) 719static void gk20a_init_pramin(struct mm_gk20a *mm)
@@ -976,9 +976,9 @@ static int alloc_gmmu_pages(struct vm_gk20a *vm, u32 order,
976 * default. 976 * default.
977 */ 977 */
978 if (IS_ENABLED(CONFIG_ARM64)) 978 if (IS_ENABLED(CONFIG_ARM64))
979 err = gk20a_gmmu_alloc(g, len, &entry->mem); 979 err = gk20a_gmmu_alloc_sys(g, len, &entry->mem);
980 else 980 else
981 err = gk20a_gmmu_alloc_attr(g, DMA_ATTR_NO_KERNEL_MAPPING, 981 err = gk20a_gmmu_alloc_attr_sys(g, DMA_ATTR_NO_KERNEL_MAPPING,
982 len, &entry->mem); 982 len, &entry->mem);
983 983
984 984
@@ -2363,9 +2363,17 @@ int gk20a_gmmu_alloc(struct gk20a *g, size_t size, struct mem_desc *mem)
2363int gk20a_gmmu_alloc_attr(struct gk20a *g, enum dma_attr attr, size_t size, 2363int gk20a_gmmu_alloc_attr(struct gk20a *g, enum dma_attr attr, size_t size,
2364 struct mem_desc *mem) 2364 struct mem_desc *mem)
2365{ 2365{
2366 if (g->mm.vidmem_is_vidmem)
2367 return gk20a_gmmu_alloc_attr_vid(g, attr, size, mem);
2368
2366 return gk20a_gmmu_alloc_attr_sys(g, attr, size, mem); 2369 return gk20a_gmmu_alloc_attr_sys(g, attr, size, mem);
2367} 2370}
2368 2371
2372int gk20a_gmmu_alloc_sys(struct gk20a *g, size_t size, struct mem_desc *mem)
2373{
2374 return gk20a_gmmu_alloc_attr_sys(g, 0, size, mem);
2375}
2376
2369int gk20a_gmmu_alloc_attr_sys(struct gk20a *g, enum dma_attr attr, 2377int gk20a_gmmu_alloc_attr_sys(struct gk20a *g, enum dma_attr attr,
2370 size_t size, struct mem_desc *mem) 2378 size_t size, struct mem_desc *mem)
2371{ 2379{
@@ -2594,7 +2602,8 @@ u32 gk20a_aperture_mask(struct gk20a *g, struct mem_desc *mem,
2594 sysmem_mask, vidmem_mask); 2602 sysmem_mask, vidmem_mask);
2595} 2603}
2596 2604
2597int gk20a_gmmu_alloc_map(struct vm_gk20a *vm, size_t size, struct mem_desc *mem) 2605int gk20a_gmmu_alloc_map(struct vm_gk20a *vm, size_t size,
2606 struct mem_desc *mem)
2598{ 2607{
2599 return gk20a_gmmu_alloc_map_attr(vm, 0, size, mem); 2608 return gk20a_gmmu_alloc_map_attr(vm, 0, size, mem);
2600} 2609}
@@ -2602,7 +2611,22 @@ int gk20a_gmmu_alloc_map(struct vm_gk20a *vm, size_t size, struct mem_desc *mem)
2602int gk20a_gmmu_alloc_map_attr(struct vm_gk20a *vm, 2611int gk20a_gmmu_alloc_map_attr(struct vm_gk20a *vm,
2603 enum dma_attr attr, size_t size, struct mem_desc *mem) 2612 enum dma_attr attr, size_t size, struct mem_desc *mem)
2604{ 2613{
2605 int err = gk20a_gmmu_alloc_attr(vm->mm->g, attr, size, mem); 2614 if (vm->mm->vidmem_is_vidmem)
2615 return gk20a_gmmu_alloc_map_attr_vid(vm, 0, size, mem);
2616
2617 return gk20a_gmmu_alloc_map_attr_sys(vm, 0, size, mem);
2618}
2619
2620int gk20a_gmmu_alloc_map_sys(struct vm_gk20a *vm, size_t size,
2621 struct mem_desc *mem)
2622{
2623 return gk20a_gmmu_alloc_map_attr_sys(vm, 0, size, mem);
2624}
2625
2626int gk20a_gmmu_alloc_map_attr_sys(struct vm_gk20a *vm,
2627 enum dma_attr attr, size_t size, struct mem_desc *mem)
2628{
2629 int err = gk20a_gmmu_alloc_attr_sys(vm->mm->g, attr, size, mem);
2606 2630
2607 if (err) 2631 if (err)
2608 return err; 2632 return err;
@@ -3983,7 +4007,7 @@ int gk20a_alloc_inst_block(struct gk20a *g, struct mem_desc *inst_block)
3983 4007
3984 gk20a_dbg_fn(""); 4008 gk20a_dbg_fn("");
3985 4009
3986 err = gk20a_gmmu_alloc(g, ram_in_alloc_size_v(), inst_block); 4010 err = gk20a_gmmu_alloc_sys(g, ram_in_alloc_size_v(), inst_block);
3987 if (err) { 4011 if (err) {
3988 gk20a_err(dev, "%s: memory allocation failed\n", __func__); 4012 gk20a_err(dev, "%s: memory allocation failed\n", __func__);
3989 return err; 4013 return err;