From 76e5d6ab278b4379b7b2b58e49c6013a56abdc70 Mon Sep 17 00:00:00 2001 From: Nicolas Benech Date: Thu, 13 Dec 2018 12:56:02 -0500 Subject: [PATCH] gpu: nvgpu: posix: expose nvgpu_mem operations The nvgpu_mem operations were all static. This patch makes them public so that they can be reused by other modules. JIRA NVGPU-907 Change-Id: I17cd3934480bcd85d42c2bafbecc23194434ba79 Signed-off-by: Nicolas Benech Reviewed-on: https://git-master.nvidia.com/r/1972429 Reviewed-by: svc-misra-checker Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-misra GVS: Gerrit_Virtual_Submit Reviewed-by: Alex Waterman Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/include/nvgpu/nvgpu_sgt.h | 11 +++++++++++ drivers/gpu/nvgpu/os/posix/posix-nvgpu_mem.c | 16 ++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/nvgpu/include/nvgpu/nvgpu_sgt.h b/drivers/gpu/nvgpu/include/nvgpu/nvgpu_sgt.h index 3868f8529..ee35da96a 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/nvgpu_sgt.h +++ b/drivers/gpu/nvgpu/include/nvgpu/nvgpu_sgt.h @@ -137,4 +137,15 @@ void nvgpu_sgt_free(struct gk20a *g, struct nvgpu_sgt *sgt); bool nvgpu_sgt_iommuable(struct gk20a *g, struct nvgpu_sgt *sgt); u64 nvgpu_sgt_alignment(struct gk20a *g, struct nvgpu_sgt *sgt); +struct nvgpu_sgl *nvgpu_mem_sgl_next(struct nvgpu_sgl *sgl); +u64 nvgpu_mem_sgl_phys(struct gk20a *g, struct nvgpu_sgl *sgl); +u64 nvgpu_mem_sgl_ipa_to_pa(struct gk20a *g, struct nvgpu_sgl *sgl, u64 ipa, + u64 *pa_len); +u64 nvgpu_mem_sgl_dma(struct nvgpu_sgl *sgl); +u64 nvgpu_mem_sgl_length(struct nvgpu_sgl *sgl); +u64 nvgpu_mem_sgl_gpu_addr(struct gk20a *g, struct nvgpu_sgl *sgl, + struct nvgpu_gmmu_attrs *attrs); +bool nvgpu_mem_sgt_iommuable(struct gk20a *g, struct nvgpu_sgt *sgt); +void nvgpu_mem_sgt_free(struct gk20a *g, struct nvgpu_sgt *sgt); + #endif /* NVGPU_SGT_H */ diff --git a/drivers/gpu/nvgpu/os/posix/posix-nvgpu_mem.c b/drivers/gpu/nvgpu/os/posix/posix-nvgpu_mem.c index bec8e1744..b6c0a8525 100644 --- a/drivers/gpu/nvgpu/os/posix/posix-nvgpu_mem.c +++ b/drivers/gpu/nvgpu/os/posix/posix-nvgpu_mem.c @@ -45,41 +45,41 @@ u64 nvgpu_mem_get_phys_addr(struct gk20a *g, struct nvgpu_mem *mem) return (u64)(uintptr_t)mem->cpu_va; } -static struct nvgpu_sgl *nvgpu_mem_sgl_next(struct nvgpu_sgl *sgl) +struct nvgpu_sgl *nvgpu_mem_sgl_next(struct nvgpu_sgl *sgl) { struct nvgpu_mem_sgl *mem = (struct nvgpu_mem_sgl *)sgl; return (struct nvgpu_sgl *) mem->next; } -static u64 nvgpu_mem_sgl_phys(struct gk20a *g, struct nvgpu_sgl *sgl) +u64 nvgpu_mem_sgl_phys(struct gk20a *g, struct nvgpu_sgl *sgl) { struct nvgpu_mem_sgl *mem = (struct nvgpu_mem_sgl *)sgl; return (u64)(uintptr_t)mem->phys; } -static u64 nvgpu_mem_sgl_ipa_to_pa(struct gk20a *g, struct nvgpu_sgl *sgl, +u64 nvgpu_mem_sgl_ipa_to_pa(struct gk20a *g, struct nvgpu_sgl *sgl, u64 ipa, u64 *pa_len) { return nvgpu_mem_sgl_phys(g, sgl); } -static u64 nvgpu_mem_sgl_dma(struct nvgpu_sgl *sgl) +u64 nvgpu_mem_sgl_dma(struct nvgpu_sgl *sgl) { struct nvgpu_mem_sgl *mem = (struct nvgpu_mem_sgl *)sgl; return (u64)(uintptr_t)mem->dma; } -static u64 nvgpu_mem_sgl_length(struct nvgpu_sgl *sgl) +u64 nvgpu_mem_sgl_length(struct nvgpu_sgl *sgl) { struct nvgpu_mem_sgl *mem = (struct nvgpu_mem_sgl *)sgl; return (u64)mem->length; } -static u64 nvgpu_mem_sgl_gpu_addr(struct gk20a *g, struct nvgpu_sgl *sgl, +u64 nvgpu_mem_sgl_gpu_addr(struct gk20a *g, struct nvgpu_sgl *sgl, struct nvgpu_gmmu_attrs *attrs) { struct nvgpu_mem_sgl *mem = (struct nvgpu_mem_sgl *)sgl; @@ -95,7 +95,7 @@ static u64 nvgpu_mem_sgl_gpu_addr(struct gk20a *g, struct nvgpu_sgl *sgl, return nvgpu_mem_iommu_translate(g, mem->dma); } -static bool nvgpu_mem_sgt_iommuable(struct gk20a *g, struct nvgpu_sgt *sgt) +bool nvgpu_mem_sgt_iommuable(struct gk20a *g, struct nvgpu_sgt *sgt) { struct nvgpu_os_posix *p = nvgpu_os_posix_from_gk20a(g); @@ -113,7 +113,7 @@ void nvgpu_mem_sgl_free(struct gk20a *g, struct nvgpu_mem_sgl *sgl) } } -static void nvgpu_mem_sgt_free(struct gk20a *g, struct nvgpu_sgt *sgt) +void nvgpu_mem_sgt_free(struct gk20a *g, struct nvgpu_sgt *sgt) { nvgpu_mem_sgl_free(g, (struct nvgpu_mem_sgl *)sgt->sgl); nvgpu_kfree(g, sgt);