summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/vgpu/mm_vgpu.c
diff options
context:
space:
mode:
authorAingara Paramakuru <aparamakuru@nvidia.com>2015-08-27 13:53:47 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-09-29 11:12:15 -0400
commit39e8bff2fc02b4037dc925076e5f42f6519101eb (patch)
tree5ca1ff277226a8f69b9947a367a209c9d581fe02 /drivers/gpu/nvgpu/vgpu/mm_vgpu.c
parentce4dd7ef86e5fec95bd8d2f90eb78e9643dd01d9 (diff)
gpu: nvgpu: vgpu: T18x support
Add vgpu framework and build for T18x. Bug 1677153 JIRA VFND-693 Change-Id: Icf9fd8e0b5769228aee59c54f9b000b992e5fcca Signed-off-by: Aingara Paramakuru <aparamakuru@nvidia.com> Reviewed-on: http://git-master/r/792559 Reviewed-on: http://git-master/r/806178 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/vgpu/mm_vgpu.c')
-rw-r--r--drivers/gpu/nvgpu/vgpu/mm_vgpu.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/vgpu/mm_vgpu.c b/drivers/gpu/nvgpu/vgpu/mm_vgpu.c
index 2b23c4e6..b5846043 100644
--- a/drivers/gpu/nvgpu/vgpu/mm_vgpu.c
+++ b/drivers/gpu/nvgpu/vgpu/mm_vgpu.c
@@ -53,9 +53,18 @@ static int vgpu_init_mm_setup_sw(struct gk20a *g)
53 53
54int vgpu_init_mm_support(struct gk20a *g) 54int vgpu_init_mm_support(struct gk20a *g)
55{ 55{
56 int err;
57
56 gk20a_dbg_fn(""); 58 gk20a_dbg_fn("");
57 59
58 return vgpu_init_mm_setup_sw(g); 60 err = vgpu_init_mm_setup_sw(g);
61 if (err)
62 return err;
63
64 if (g->ops.mm.init_mm_setup_hw)
65 err = g->ops.mm.init_mm_setup_hw(g);
66
67 return err;
59} 68}
60 69
61static u64 vgpu_locked_gmmu_map(struct vm_gk20a *vm, 70static u64 vgpu_locked_gmmu_map(struct vm_gk20a *vm,
@@ -275,7 +284,7 @@ static int vgpu_vm_alloc_share(struct gk20a_as_share *as_share,
275 for (i = 0; i < gmmu_nr_page_sizes; i++) 284 for (i = 0; i < gmmu_nr_page_sizes; i++)
276 vm->gmmu_page_sizes[i] = gmmu_page_sizes[i]; 285 vm->gmmu_page_sizes[i] = gmmu_page_sizes[i];
277 286
278 vm->big_pages = true; 287 vm->big_pages = !mm->disable_bigpage;
279 vm->big_page_size = big_page_size; 288 vm->big_page_size = big_page_size;
280 289
281 vm->va_start = big_page_size << 10; /* create a one pde hole */ 290 vm->va_start = big_page_size << 10; /* create a one pde hole */
@@ -450,4 +459,5 @@ void vgpu_init_mm_ops(struct gpu_ops *gops)
450 gops->mm.tlb_invalidate = vgpu_mm_tlb_invalidate; 459 gops->mm.tlb_invalidate = vgpu_mm_tlb_invalidate;
451 gops->mm.get_physical_addr_bits = gk20a_mm_get_physical_addr_bits; 460 gops->mm.get_physical_addr_bits = gk20a_mm_get_physical_addr_bits;
452 gops->mm.get_iova_addr = gk20a_mm_iova_addr; 461 gops->mm.get_iova_addr = gk20a_mm_iova_addr;
462 gops->mm.init_mm_setup_hw = NULL;
453} 463}