diff options
author | Alex Waterman <alexw@nvidia.com> | 2017-05-09 21:34:54 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-06 20:09:16 -0400 |
commit | c21f5bca9ae81804130e30ea3e6f7a18d51203dc (patch) | |
tree | fb1a2d67532df19d70468610ad2a62c3464876c1 /drivers/gpu/nvgpu/gm20b | |
parent | c2b63150cd947557b8d17637258b988459b8e0ec (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')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/acr_gm20b.c | 6 |
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) | |||
1067 | static int gm20b_bootstrap_hs_flcn(struct gk20a *g) | 1067 | static 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, | |||
1385 | int pmu_exec_gen_bl(struct gk20a *g, void *desc, u8 b_wait_for_halt) | 1385 | int 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; |