summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
diff options
context:
space:
mode:
authorSeshendra Gadagottu <sgadagottu@nvidia.com>2015-10-08 13:09:37 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2015-10-12 21:22:12 -0400
commit5b7b59714a6f6ea34295e4827eca68f496f5df18 (patch)
treeabcd49abe842589e214b44c467a3baed181bf387 /drivers/gpu/nvgpu/gk20a/mm_gk20a.c
parent1cf6539990dccd4c7a94154cd75d4c257ed39f37 (diff)
gpu: nvgpu: add support to remove bar2 mm
Adding support to remove bar2 mm on gpu module remove. Change-Id: Id5f680b1abf7056da9871d5460d9fbc40422673e Signed-off-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-on: http://git-master/r/814571 (cherry picked from commit e7c6c87dd6b0893d26a9a3b4568121a691e1eb3c) Reviewed-on: http://git-master/r/815429 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index 4b06ff3c..859e46fc 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -325,7 +325,7 @@ static int gk20a_init_mm_reset_enable_hw(struct gk20a *g)
325 return 0; 325 return 0;
326} 326}
327 327
328static void gk20a_remove_vm(struct vm_gk20a *vm, struct mem_desc *inst_block) 328void gk20a_remove_vm(struct vm_gk20a *vm, struct mem_desc *inst_block)
329{ 329{
330 struct gk20a *g = vm->mm->g; 330 struct gk20a *g = vm->mm->g;
331 331
@@ -337,6 +337,10 @@ static void gk20a_remove_vm(struct vm_gk20a *vm, struct mem_desc *inst_block)
337 337
338static void gk20a_remove_mm_support(struct mm_gk20a *mm) 338static void gk20a_remove_mm_support(struct mm_gk20a *mm)
339{ 339{
340 struct gk20a *g = gk20a_from_mm(mm);
341
342 if (g->ops.mm.remove_bar2_vm)
343 g->ops.mm.remove_bar2_vm(g);
340 gk20a_remove_vm(&mm->bar1.vm, &mm->bar1.inst_block); 344 gk20a_remove_vm(&mm->bar1.vm, &mm->bar1.inst_block);
341 gk20a_remove_vm(&mm->pmu.vm, &mm->pmu.inst_block); 345 gk20a_remove_vm(&mm->pmu.vm, &mm->pmu.inst_block);
342 gk20a_free_inst_block(gk20a_from_mm(mm), &mm->hwpm.inst_block); 346 gk20a_free_inst_block(gk20a_from_mm(mm), &mm->hwpm.inst_block);