diff options
author | Alex Waterman <alexw@nvidia.com> | 2017-04-10 17:04:15 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-05-11 09:04:12 -0400 |
commit | c3fa78b1d9cba28547ca59154207d434931ae746 (patch) | |
tree | 42117714f2d8dd217229e6c183d4b6affd29c7d1 /drivers/gpu/nvgpu/common/semaphore.c | |
parent | 36c1fdccc994d337fc15dd2b67ff05435f37dec9 (diff) |
gpu: nvgpu: Separate GMMU out of mm_gk20a.c
Begin moving (and renaming) the GMMU code into common/mm/gmmu.c. This
block of code will be responsible for handling the platform/OS
independent GMMU operations.
JIRA NVGPU-12
JIRA NVGPU-30
Change-Id: Ide761bab75e5d84be3dcb977c4842ae4b3a7c1b3
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: http://git-master/r/1464083
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common/semaphore.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/semaphore.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/drivers/gpu/nvgpu/common/semaphore.c b/drivers/gpu/nvgpu/common/semaphore.c index fa86985b..a54ce831 100644 --- a/drivers/gpu/nvgpu/common/semaphore.c +++ b/drivers/gpu/nvgpu/common/semaphore.c | |||
@@ -14,6 +14,7 @@ | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <nvgpu/dma.h> | 16 | #include <nvgpu/dma.h> |
17 | #include <nvgpu/gmmu.h> | ||
17 | #include <nvgpu/semaphore.h> | 18 | #include <nvgpu/semaphore.h> |
18 | #include <nvgpu/kmem.h> | 19 | #include <nvgpu/kmem.h> |
19 | #include <nvgpu/bug.h> | 20 | #include <nvgpu/bug.h> |
@@ -197,7 +198,7 @@ int nvgpu_semaphore_pool_map(struct nvgpu_semaphore_pool *p, | |||
197 | */ | 198 | */ |
198 | __lock_sema_sea(p->sema_sea); | 199 | __lock_sema_sea(p->sema_sea); |
199 | 200 | ||
200 | addr = gk20a_gmmu_fixed_map(vm, &p->sema_sea->sea_mem.priv.sgt, | 201 | addr = nvgpu_gmmu_map_fixed(vm, &p->sema_sea->sea_mem, |
201 | p->sema_sea->gpu_va, | 202 | p->sema_sea->gpu_va, |
202 | p->sema_sea->map_size, | 203 | p->sema_sea->map_size, |
203 | 0, gk20a_mem_flag_read_only, 0, | 204 | 0, gk20a_mem_flag_read_only, 0, |
@@ -225,7 +226,7 @@ int nvgpu_semaphore_pool_map(struct nvgpu_semaphore_pool *p, | |||
225 | if (err) | 226 | if (err) |
226 | goto fail_unmap; | 227 | goto fail_unmap; |
227 | 228 | ||
228 | addr = gk20a_gmmu_map(vm, &p->rw_mem.priv.sgt, SZ_4K, 0, | 229 | addr = nvgpu_gmmu_map(vm, &p->rw_mem, SZ_4K, 0, |
229 | gk20a_mem_flag_none, 0, | 230 | gk20a_mem_flag_none, 0, |
230 | p->rw_mem.aperture); | 231 | p->rw_mem.aperture); |
231 | 232 | ||
@@ -250,10 +251,7 @@ int nvgpu_semaphore_pool_map(struct nvgpu_semaphore_pool *p, | |||
250 | fail_free_submem: | 251 | fail_free_submem: |
251 | nvgpu_dma_free(pool_to_gk20a(p), &p->rw_mem); | 252 | nvgpu_dma_free(pool_to_gk20a(p), &p->rw_mem); |
252 | fail_unmap: | 253 | fail_unmap: |
253 | gk20a_gmmu_unmap(vm, | 254 | nvgpu_gmmu_unmap(vm, &p->sema_sea->sea_mem, p->gpu_va_ro); |
254 | p->sema_sea->sea_mem.gpu_va, | ||
255 | p->sema_sea->map_size, | ||
256 | gk20a_mem_flag_none); | ||
257 | gpu_sema_dbg(pool_to_gk20a(p), | 255 | gpu_sema_dbg(pool_to_gk20a(p), |
258 | " %d: Failed to map semaphore pool!", p->page_idx); | 256 | " %d: Failed to map semaphore pool!", p->page_idx); |
259 | fail_unlock: | 257 | fail_unlock: |
@@ -269,14 +267,8 @@ void nvgpu_semaphore_pool_unmap(struct nvgpu_semaphore_pool *p, | |||
269 | { | 267 | { |
270 | __lock_sema_sea(p->sema_sea); | 268 | __lock_sema_sea(p->sema_sea); |
271 | 269 | ||
272 | gk20a_gmmu_unmap(vm, | 270 | nvgpu_gmmu_unmap(vm, &p->sema_sea->sea_mem, p->gpu_va_ro); |
273 | p->sema_sea->sea_mem.gpu_va, | 271 | nvgpu_gmmu_unmap(vm, &p->rw_mem, p->gpu_va); |
274 | p->sema_sea->sea_mem.size, | ||
275 | gk20a_mem_flag_none); | ||
276 | gk20a_gmmu_unmap(vm, | ||
277 | p->rw_mem.gpu_va, | ||
278 | p->rw_mem.size, | ||
279 | gk20a_mem_flag_none); | ||
280 | nvgpu_dma_free(pool_to_gk20a(p), &p->rw_mem); | 272 | nvgpu_dma_free(pool_to_gk20a(p), &p->rw_mem); |
281 | 273 | ||
282 | p->gpu_va = 0; | 274 | p->gpu_va = 0; |