summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2017-05-09 21:34:54 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-06 20:09:16 -0400
commitc21f5bca9ae81804130e30ea3e6f7a18d51203dc (patch)
treefb1a2d67532df19d70468610ad2a62c3464876c1 /drivers/gpu/nvgpu/gm20b/acr_gm20b.c
parentc2b63150cd947557b8d17637258b988459b8e0ec (diff)
gpu: nvgpu: Remove extraneous VM init/deinit APIs
Support only VM pointers and ref-counting for maintaining VMs. This dramatically reduces the complexity of the APIs, avoids the API abuse that has existed, and ensures that future VM usage is consistent with current usage. Also remove the combined VM free/instance block deletion. Any place where this was done is now replaced with an explict free of the instance block and a nvgpu_vm_put(). JIRA NVGPU-12 JIRA NVGPU-30 Change-Id: Ib73e8d574ecc9abf6dad0b40a2c5795d6396cc8c Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: http://git-master/r/1480227 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/acr_gm20b.c')
-rw-r--r--drivers/gpu/nvgpu/gm20b/acr_gm20b.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
index 666f629e..580ba5e5 100644
--- a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
+++ b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c
@@ -388,7 +388,7 @@ int prepare_ucode_blob(struct gk20a *g)
388 u32 wprsize; 388 u32 wprsize;
389 int i; 389 int i;
390 struct mm_gk20a *mm = &g->mm; 390 struct mm_gk20a *mm = &g->mm;
391 struct vm_gk20a *vm = &mm->pmu.vm; 391 struct vm_gk20a *vm = mm->pmu.vm;
392 struct wpr_carveout_info wpr_inf; 392 struct wpr_carveout_info wpr_inf;
393 struct page **pages; 393 struct page **pages;
394 394
@@ -1067,7 +1067,7 @@ static int lsf_gen_wpr_requirements(struct gk20a *g, struct ls_flcn_mgr *plsfm)
1067static int gm20b_bootstrap_hs_flcn(struct gk20a *g) 1067static int gm20b_bootstrap_hs_flcn(struct gk20a *g)
1068{ 1068{
1069 struct mm_gk20a *mm = &g->mm; 1069 struct mm_gk20a *mm = &g->mm;
1070 struct vm_gk20a *vm = &mm->pmu.vm; 1070 struct vm_gk20a *vm = mm->pmu.vm;
1071 int err = 0; 1071 int err = 0;
1072 u64 *acr_dmem; 1072 u64 *acr_dmem;
1073 u32 img_size_in_bytes = 0; 1073 u32 img_size_in_bytes = 0;
@@ -1385,7 +1385,7 @@ static int gm20b_init_pmu_setup_hw1(struct gk20a *g,
1385int pmu_exec_gen_bl(struct gk20a *g, void *desc, u8 b_wait_for_halt) 1385int pmu_exec_gen_bl(struct gk20a *g, void *desc, u8 b_wait_for_halt)
1386{ 1386{
1387 struct mm_gk20a *mm = &g->mm; 1387 struct mm_gk20a *mm = &g->mm;
1388 struct vm_gk20a *vm = &mm->pmu.vm; 1388 struct vm_gk20a *vm = mm->pmu.vm;
1389 int err = 0; 1389 int err = 0;
1390 u32 bl_sz; 1390 u32 bl_sz;
1391 struct acr_desc *acr = &g->acr; 1391 struct acr_desc *acr = &g->acr;