summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
diff options
context:
space:
mode:
authorAlex Waterman <alexw@nvidia.com>2017-03-30 16:16:51 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-04-04 19:57:03 -0400
commitc86e940e1169be32e92297f6dfb07d0c2cade135 (patch)
tree86fc119bc20f6db09eda52ace9a2d76c6bf9ef53 /drivers/gpu/nvgpu/gk20a/gr_gk20a.c
parente3bd4ae2a59fef37a85fbca168fc479dd5514023 (diff)
gpu: nvgpu: Remove last Linux kmem usage
Replace the last of the Linux kmem API usage with nvgpu kmem calls instead. Several places are left alone - allocating the struct gk20a in particular. Also one function was updated in the clk code to take a struct gk20a as an argument so that it could use nvgpu_kmalloc(). Bug 1799159 Bug 1823380 Change-Id: I84fc3f8e19c63d6265bac6098dc727d93e3ff613 Signed-off-by: Alex Waterman <alexw@nvidia.com> Reviewed-on: http://git-master/r/1331702 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gr_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gr_gk20a.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
index 0e3bcdbe..3e9a388b 100644
--- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
@@ -3343,13 +3343,16 @@ int gk20a_comptag_allocator_init(struct gk20a_comptag_allocator *allocator,
3343 3343
3344void gk20a_comptag_allocator_destroy(struct gk20a_comptag_allocator *allocator) 3344void gk20a_comptag_allocator_destroy(struct gk20a_comptag_allocator *allocator)
3345{ 3345{
3346 struct gr_gk20a *gr = container_of(allocator,
3347 struct gr_gk20a, comp_tags);
3348
3346 /* 3349 /*
3347 * called only when exiting the driver (gk20a_remove, or unwinding the 3350 * called only when exiting the driver (gk20a_remove, or unwinding the
3348 * init stage); no users should be active, so taking the mutex is 3351 * init stage); no users should be active, so taking the mutex is
3349 * unnecessary here. 3352 * unnecessary here.
3350 */ 3353 */
3351 allocator->size = 0; 3354 allocator->size = 0;
3352 vfree(allocator->bitmap); 3355 nvgpu_vfree(gr->g, allocator->bitmap);
3353} 3356}
3354 3357
3355static void gk20a_remove_gr_support(struct gr_gk20a *gr) 3358static void gk20a_remove_gr_support(struct gr_gk20a *gr)
@@ -3419,7 +3422,7 @@ static void gk20a_remove_gr_support(struct gr_gk20a *gr)
3419 nvgpu_kfree(g, gr->ctx_vars.ctxsw_regs.pm_ltc.l); 3422 nvgpu_kfree(g, gr->ctx_vars.ctxsw_regs.pm_ltc.l);
3420 nvgpu_kfree(g, gr->ctx_vars.ctxsw_regs.pm_fbpa.l); 3423 nvgpu_kfree(g, gr->ctx_vars.ctxsw_regs.pm_fbpa.l);
3421 3424
3422 vfree(gr->ctx_vars.local_golden_image); 3425 nvgpu_vfree(g, gr->ctx_vars.local_golden_image);
3423 gr->ctx_vars.local_golden_image = NULL; 3426 gr->ctx_vars.local_golden_image = NULL;
3424 3427
3425 if (gr->ctx_vars.hwpm_ctxsw_buffer_offset_map) 3428 if (gr->ctx_vars.hwpm_ctxsw_buffer_offset_map)