diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/pramin.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/pramin.c | 6 |
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 | ||