diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2017-05-12 01:54:31 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-06-13 05:40:15 -0400 |
commit | 8c66aef3bdbfbbeb1d3c3ef3bd6b1bee3ac05411 (patch) | |
tree | 80b8135576c2419887dc18d588c2efd493600ab2 /drivers/gpu/nvgpu/common/pmu/pmu.c | |
parent | 69dee6a648ad434b75e1a9c64b022ee45d3ff87b (diff) |
gpu: nvgpu: reorganize PMU FB alloc/free
Moved PMU FB access related code from pmu_gk20a.c to
"drivers/gpu/nvgpu/common/pmu/pmu.c" file
- Prepended with nvgpu_ for global functions & replaced
wherever used.
JIRA NVGPU-56
JIRA NVGPU-94
Change-Id: I42bfd9d216e6b35672a9738f01302d954b32b69e
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: http://git-master/r/1480551
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/common/pmu/pmu.c')
-rw-r--r-- | drivers/gpu/nvgpu/common/pmu/pmu.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/pmu/pmu.c b/drivers/gpu/nvgpu/common/pmu/pmu.c index 90db07b4..ca532049 100644 --- a/drivers/gpu/nvgpu/common/pmu/pmu.c +++ b/drivers/gpu/nvgpu/common/pmu/pmu.c | |||
@@ -423,3 +423,50 @@ int nvgpu_pmu_destroy(struct gk20a *g) | |||
423 | nvgpu_log_fn(g, "done"); | 423 | nvgpu_log_fn(g, "done"); |
424 | return 0; | 424 | return 0; |
425 | } | 425 | } |
426 | |||
427 | void nvgpu_pmu_surface_describe(struct gk20a *g, struct nvgpu_mem *mem, | ||
428 | struct flcn_mem_desc_v0 *fb) | ||
429 | { | ||
430 | fb->address.lo = u64_lo32(mem->gpu_va); | ||
431 | fb->address.hi = u64_hi32(mem->gpu_va); | ||
432 | fb->params = ((u32)mem->size & 0xFFFFFF); | ||
433 | fb->params |= (GK20A_PMU_DMAIDX_VIRT << 24); | ||
434 | } | ||
435 | |||
436 | int nvgpu_pmu_vidmem_surface_alloc(struct gk20a *g, struct nvgpu_mem *mem, | ||
437 | u32 size) | ||
438 | { | ||
439 | struct mm_gk20a *mm = &g->mm; | ||
440 | struct vm_gk20a *vm = mm->pmu.vm; | ||
441 | int err; | ||
442 | |||
443 | err = nvgpu_dma_alloc_map_vid(vm, size, mem); | ||
444 | if (err) { | ||
445 | nvgpu_err(g, "memory allocation failed"); | ||
446 | return -ENOMEM; | ||
447 | } | ||
448 | |||
449 | return 0; | ||
450 | } | ||
451 | |||
452 | int nvgpu_pmu_sysmem_surface_alloc(struct gk20a *g, struct nvgpu_mem *mem, | ||
453 | u32 size) | ||
454 | { | ||
455 | struct mm_gk20a *mm = &g->mm; | ||
456 | struct vm_gk20a *vm = mm->pmu.vm; | ||
457 | int err; | ||
458 | |||
459 | err = nvgpu_dma_alloc_map_sys(vm, size, mem); | ||
460 | if (err) { | ||
461 | nvgpu_err(g, "failed to allocate memory\n"); | ||
462 | return -ENOMEM; | ||
463 | } | ||
464 | |||
465 | return 0; | ||
466 | } | ||
467 | |||
468 | void nvgpu_pmu_surface_free(struct gk20a *g, struct nvgpu_mem *mem) | ||
469 | { | ||
470 | nvgpu_dma_free(g, mem); | ||
471 | memset(mem, 0, sizeof(struct nvgpu_mem)); | ||
472 | } | ||