diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/vgpu/gp10b')
3 files changed, 2 insertions, 32 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.c index fe85e113..ed61f16b 100644 --- a/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.c +++ b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.c | |||
@@ -26,34 +26,6 @@ | |||
26 | 26 | ||
27 | #include <nvgpu/hw/gp10b/hw_gr_gp10b.h> | 27 | #include <nvgpu/hw/gp10b/hw_gr_gp10b.h> |
28 | 28 | ||
29 | void vgpu_gr_gp10b_free_gr_ctx(struct gk20a *g, struct vm_gk20a *vm, | ||
30 | struct gr_ctx_desc *gr_ctx) | ||
31 | { | ||
32 | struct tegra_vgpu_cmd_msg msg = {0}; | ||
33 | struct tegra_vgpu_gr_ctx_params *p = &msg.params.gr_ctx; | ||
34 | int err; | ||
35 | |||
36 | gk20a_dbg_fn(""); | ||
37 | |||
38 | if (!gr_ctx || !gr_ctx->mem.gpu_va) | ||
39 | return; | ||
40 | |||
41 | msg.cmd = TEGRA_VGPU_CMD_GR_CTX_FREE; | ||
42 | msg.handle = vgpu_get_handle(g); | ||
43 | p->gr_ctx_handle = gr_ctx->virt_ctx; | ||
44 | err = vgpu_comm_sendrecv(&msg, sizeof(msg), sizeof(msg)); | ||
45 | WARN_ON(err || msg.ret); | ||
46 | |||
47 | __nvgpu_vm_free_va(vm, gr_ctx->mem.gpu_va, gmmu_page_size_kernel); | ||
48 | |||
49 | nvgpu_dma_unmap_free(vm, &gr_ctx->pagepool_ctxsw_buffer); | ||
50 | nvgpu_dma_unmap_free(vm, &gr_ctx->betacb_ctxsw_buffer); | ||
51 | nvgpu_dma_unmap_free(vm, &gr_ctx->spill_ctxsw_buffer); | ||
52 | nvgpu_dma_unmap_free(vm, &gr_ctx->preempt_ctxsw_buffer); | ||
53 | |||
54 | nvgpu_kfree(g, gr_ctx); | ||
55 | } | ||
56 | |||
57 | int vgpu_gr_gp10b_alloc_gr_ctx(struct gk20a *g, | 29 | int vgpu_gr_gp10b_alloc_gr_ctx(struct gk20a *g, |
58 | struct gr_ctx_desc **__gr_ctx, | 30 | struct gr_ctx_desc **__gr_ctx, |
59 | struct vm_gk20a *vm, | 31 | struct vm_gk20a *vm, |
@@ -107,7 +79,7 @@ int vgpu_gr_gp10b_alloc_gr_ctx(struct gk20a *g, | |||
107 | return err; | 79 | return err; |
108 | 80 | ||
109 | fail: | 81 | fail: |
110 | vgpu_gr_gp10b_free_gr_ctx(g, vm, gr_ctx); | 82 | vgpu_gr_free_gr_ctx(g, vm, gr_ctx); |
111 | return err; | 83 | return err; |
112 | } | 84 | } |
113 | 85 | ||
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.h b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.h index a11dab7d..31b88d19 100644 --- a/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.h +++ b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_gr_gp10b.h | |||
@@ -19,8 +19,6 @@ | |||
19 | 19 | ||
20 | #include "gk20a/gk20a.h" | 20 | #include "gk20a/gk20a.h" |
21 | 21 | ||
22 | void vgpu_gr_gp10b_free_gr_ctx(struct gk20a *g, struct vm_gk20a *vm, | ||
23 | struct gr_ctx_desc *gr_ctx); | ||
24 | int vgpu_gr_gp10b_alloc_gr_ctx(struct gk20a *g, | 22 | int vgpu_gr_gp10b_alloc_gr_ctx(struct gk20a *g, |
25 | struct gr_ctx_desc **__gr_ctx, | 23 | struct gr_ctx_desc **__gr_ctx, |
26 | struct vm_gk20a *vm, | 24 | struct vm_gk20a *vm, |
diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_hal_gp10b.c b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_hal_gp10b.c index aa520690..e8cb96b4 100644 --- a/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_hal_gp10b.c +++ b/drivers/gpu/nvgpu/common/linux/vgpu/gp10b/vgpu_hal_gp10b.c | |||
@@ -128,7 +128,7 @@ static const struct gpu_ops vgpu_gp10b_ops = { | |||
128 | .pagepool_default_size = gr_gp10b_pagepool_default_size, | 128 | .pagepool_default_size = gr_gp10b_pagepool_default_size, |
129 | .init_ctx_state = vgpu_gr_gp10b_init_ctx_state, | 129 | .init_ctx_state = vgpu_gr_gp10b_init_ctx_state, |
130 | .alloc_gr_ctx = vgpu_gr_gp10b_alloc_gr_ctx, | 130 | .alloc_gr_ctx = vgpu_gr_gp10b_alloc_gr_ctx, |
131 | .free_gr_ctx = vgpu_gr_gp10b_free_gr_ctx, | 131 | .free_gr_ctx = vgpu_gr_free_gr_ctx, |
132 | .update_ctxsw_preemption_mode = | 132 | .update_ctxsw_preemption_mode = |
133 | gr_gp10b_update_ctxsw_preemption_mode, | 133 | gr_gp10b_update_ctxsw_preemption_mode, |
134 | .dump_gr_regs = NULL, | 134 | .dump_gr_regs = NULL, |