diff options
author | Aingara Paramakuru <aparamakuru@nvidia.com> | 2015-08-27 13:53:47 -0400 |
---|---|---|
committer | Terje Bergstrom <tbergstrom@nvidia.com> | 2015-09-29 11:12:15 -0400 |
commit | 39e8bff2fc02b4037dc925076e5f42f6519101eb (patch) | |
tree | 5ca1ff277226a8f69b9947a367a209c9d581fe02 /drivers/gpu/nvgpu/vgpu/mm_vgpu.c | |
parent | ce4dd7ef86e5fec95bd8d2f90eb78e9643dd01d9 (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.c | 14 |
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 | ||
54 | int vgpu_init_mm_support(struct gk20a *g) | 54 | int 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 | ||
61 | static u64 vgpu_locked_gmmu_map(struct vm_gk20a *vm, | 70 | static 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 | } |