summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/pramin.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/pramin.c')
-rw-r--r--drivers/gpu/nvgpu/common/pramin.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/common/pramin.c b/drivers/gpu/nvgpu/common/pramin.c
index ed961965..4c6a4a0d 100644
--- a/drivers/gpu/nvgpu/common/pramin.c
+++ b/drivers/gpu/nvgpu/common/pramin.c
@@ -61,7 +61,8 @@ void nvgpu_pramin_access_batched(struct gk20a *g, struct nvgpu_mem *mem,
61 while (size) { 61 while (size) {
62 u32 sgl_len = (u32)nvgpu_sgt_get_length(sgt, sgl); 62 u32 sgl_len = (u32)nvgpu_sgt_get_length(sgt, sgl);
63 63
64 byteoff = g->ops.pramin.enter(g, mem, sgt, sgl, 64 nvgpu_spinlock_acquire(&g->mm.pramin_window_lock);
65 byteoff = g->ops.bus.set_bar0_window(g, mem, sgt, sgl,
65 offset / sizeof(u32)); 66 offset / sizeof(u32));
66 start_reg = g->ops.pramin.data032_r(byteoff / sizeof(u32)); 67 start_reg = g->ops.pramin.data032_r(byteoff / sizeof(u32));
67 until_end = SZ_1M - (byteoff & (SZ_1M - 1)); 68 until_end = SZ_1M - (byteoff & (SZ_1M - 1));
@@ -72,7 +73,8 @@ void nvgpu_pramin_access_batched(struct gk20a *g, struct nvgpu_mem *mem,
72 73
73 /* read back to synchronize accesses */ 74 /* read back to synchronize accesses */
74 gk20a_readl(g, start_reg); 75 gk20a_readl(g, start_reg);
75 g->ops.pramin.exit(g, mem, sgl); 76
77 nvgpu_spinlock_release(&g->mm.pramin_window_lock);
76 78
77 size -= n; 79 size -= n;
78 80