diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/pramin.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/pramin.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/drivers/gpu/nvgpu/common/pramin.c b/drivers/gpu/nvgpu/common/pramin.c index bb7d930e..ae9c9b1f 100644 --- a/drivers/gpu/nvgpu/common/pramin.c +++ b/drivers/gpu/nvgpu/common/pramin.c | |||
@@ -84,24 +84,23 @@ void nvgpu_pramin_access_batched(struct gk20a *g, struct nvgpu_mem *mem, | |||
84 | u32 offset, u32 size, pramin_access_batch_fn loop, u32 **arg) | 84 | u32 offset, u32 size, pramin_access_batch_fn loop, u32 **arg) |
85 | { | 85 | { |
86 | struct nvgpu_page_alloc *alloc = NULL; | 86 | struct nvgpu_page_alloc *alloc = NULL; |
87 | struct nvgpu_mem_sgl *sgl; | 87 | struct nvgpu_sgt *sgt; |
88 | void *sgl; | ||
88 | u32 byteoff, start_reg, until_end, n; | 89 | u32 byteoff, start_reg, until_end, n; |
89 | 90 | ||
90 | alloc = get_vidmem_page_alloc(mem->priv.sgt->sgl); | 91 | alloc = get_vidmem_page_alloc(mem->priv.sgt->sgl); |
91 | sgl = alloc->sgl; | 92 | sgt = &alloc->sgt; |
92 | while (sgl) { | 93 | for (sgl = sgt->sgl; sgl; sgl = nvgpu_sgt_get_next(sgt, sgl)) { |
93 | if (offset >= nvgpu_mem_sgl_length(sgl)) { | 94 | if (offset >= nvgpu_sgt_get_length(sgt, sgl)) |
94 | offset -= nvgpu_mem_sgl_length(sgl); | 95 | offset -= nvgpu_sgt_get_length(sgt, sgl); |
95 | sgl = sgl->next; | 96 | else |
96 | } else { | ||
97 | break; | 97 | break; |
98 | } | ||
99 | } | 98 | } |
100 | 99 | ||
101 | while (size) { | 100 | while (size) { |
102 | u32 sgl_len = (u32)nvgpu_mem_sgl_length(sgl); | 101 | u32 sgl_len = (u32)nvgpu_sgt_get_length(sgt, sgl); |
103 | 102 | ||
104 | byteoff = g->ops.pramin.enter(g, mem, sgl, | 103 | byteoff = g->ops.pramin.enter(g, mem, sgt, sgl, |
105 | offset / sizeof(u32)); | 104 | offset / sizeof(u32)); |
106 | start_reg = g->ops.pramin.data032_r(byteoff / sizeof(u32)); | 105 | start_reg = g->ops.pramin.data032_r(byteoff / sizeof(u32)); |
107 | until_end = SZ_1M - (byteoff & (SZ_1M - 1)); | 106 | until_end = SZ_1M - (byteoff & (SZ_1M - 1)); |
@@ -117,7 +116,7 @@ void nvgpu_pramin_access_batched(struct gk20a *g, struct nvgpu_mem *mem, | |||
117 | size -= n; | 116 | size -= n; |
118 | 117 | ||
119 | if (n == (sgl_len - offset)) { | 118 | if (n == (sgl_len - offset)) { |
120 | sgl = nvgpu_mem_sgl_next(sgl); | 119 | sgl = nvgpu_sgt_get_next(sgt, sgl); |
121 | offset = 0; | 120 | offset = 0; |
122 | } else { | 121 | } else { |
123 | offset += n; | 122 | offset += n; |