summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux/nvgpu_mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/nvgpu_mem.c')
-rw-r--r--drivers/gpu/nvgpu/common/linux/nvgpu_mem.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/nvgpu_mem.c b/drivers/gpu/nvgpu/common/linux/nvgpu_mem.c
index d4549e1b..63a14f40 100644
--- a/drivers/gpu/nvgpu/common/linux/nvgpu_mem.c
+++ b/drivers/gpu/nvgpu/common/linux/nvgpu_mem.c
@@ -34,6 +34,11 @@
34#include "gk20a/gk20a.h" 34#include "gk20a/gk20a.h"
35#include "gk20a/mm_gk20a.h" 35#include "gk20a/mm_gk20a.h"
36 36
37static inline u64 __nvgpu_sgl_phys(struct gk20a *g, struct nvgpu_sgl *sgl)
38{
39 return sg_phys((struct scatterlist *)sgl);
40}
41
37int nvgpu_mem_begin(struct gk20a *g, struct nvgpu_mem *mem) 42int nvgpu_mem_begin(struct gk20a *g, struct nvgpu_mem *mem)
38{ 43{
39 void *cpu_va; 44 void *cpu_va;
@@ -309,10 +314,12 @@ u64 nvgpu_mem_get_addr_sgl(struct gk20a *g, struct scatterlist *sgl)
309{ 314{
310 if (nvgpu_is_enabled(g, NVGPU_MM_USE_PHYSICAL_SG) || 315 if (nvgpu_is_enabled(g, NVGPU_MM_USE_PHYSICAL_SG) ||
311 !nvgpu_iommuable(g)) 316 !nvgpu_iommuable(g))
312 return g->ops.mm.gpu_phys_addr(g, NULL, sg_phys(sgl)); 317 return g->ops.mm.gpu_phys_addr(g, NULL,
318 __nvgpu_sgl_phys(g, (struct nvgpu_sgl *)sgl));
313 319
314 if (sg_dma_address(sgl) == 0) 320 if (sg_dma_address(sgl) == 0)
315 return g->ops.mm.gpu_phys_addr(g, NULL, sg_phys(sgl)); 321 return g->ops.mm.gpu_phys_addr(g, NULL,
322 __nvgpu_sgl_phys(g, (struct nvgpu_sgl *)sgl));
316 323
317 if (sg_dma_address(sgl) == DMA_ERROR_CODE) 324 if (sg_dma_address(sgl) == DMA_ERROR_CODE)
318 return 0; 325 return 0;
@@ -376,7 +383,7 @@ u64 nvgpu_mem_get_phys_addr(struct gk20a *g, struct nvgpu_mem *mem)
376 if (mem->aperture == APERTURE_VIDMEM) 383 if (mem->aperture == APERTURE_VIDMEM)
377 return nvgpu_mem_get_addr(g, mem); 384 return nvgpu_mem_get_addr(g, mem);
378 385
379 return sg_phys(mem->priv.sgt->sgl); 386 return __nvgpu_sgl_phys(g, (struct nvgpu_sgl *)mem->priv.sgt->sgl);
380} 387}
381 388
382/* 389/*
@@ -501,9 +508,9 @@ static struct nvgpu_sgl *nvgpu_mem_linux_sgl_next(struct nvgpu_sgl *sgl)
501 return (struct nvgpu_sgl *)sg_next((struct scatterlist *)sgl); 508 return (struct nvgpu_sgl *)sg_next((struct scatterlist *)sgl);
502} 509}
503 510
504static u64 nvgpu_mem_linux_sgl_phys(struct nvgpu_sgl *sgl) 511static u64 nvgpu_mem_linux_sgl_phys(struct gk20a *g, struct nvgpu_sgl *sgl)
505{ 512{
506 return (u64)sg_phys((struct scatterlist *)sgl); 513 return (u64)__nvgpu_sgl_phys(g, sgl);
507} 514}
508 515
509static u64 nvgpu_mem_linux_sgl_dma(struct nvgpu_sgl *sgl) 516static u64 nvgpu_mem_linux_sgl_dma(struct nvgpu_sgl *sgl)
@@ -522,7 +529,7 @@ static u64 nvgpu_mem_linux_sgl_gpu_addr(struct gk20a *g,
522{ 529{
523 if (sg_dma_address((struct scatterlist *)sgl) == 0) 530 if (sg_dma_address((struct scatterlist *)sgl) == 0)
524 return g->ops.mm.gpu_phys_addr(g, attrs, 531 return g->ops.mm.gpu_phys_addr(g, attrs,
525 sg_phys((struct scatterlist *)sgl)); 532 __nvgpu_sgl_phys(g, sgl));
526 533
527 if (sg_dma_address((struct scatterlist *)sgl) == DMA_ERROR_CODE) 534 if (sg_dma_address((struct scatterlist *)sgl) == DMA_ERROR_CODE)
528 return 0; 535 return 0;