summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/mm/nvgpu_mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/mm/nvgpu_mem.c')
-rw-r--r--drivers/gpu/nvgpu/common/mm/nvgpu_mem.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/mm/nvgpu_mem.c b/drivers/gpu/nvgpu/common/mm/nvgpu_mem.c
index 52d20883..faee482d 100644
--- a/drivers/gpu/nvgpu/common/mm/nvgpu_mem.c
+++ b/drivers/gpu/nvgpu/common/mm/nvgpu_mem.c
@@ -22,6 +22,7 @@
22 22
23#include <nvgpu/kmem.h> 23#include <nvgpu/kmem.h>
24#include <nvgpu/nvgpu_mem.h> 24#include <nvgpu/nvgpu_mem.h>
25#include <nvgpu/dma.h>
25 26
26#include "gk20a/gk20a.h" 27#include "gk20a/gk20a.h"
27 28
@@ -56,3 +57,14 @@ void nvgpu_sgt_free(struct nvgpu_sgt *sgt, struct gk20a *g)
56 if (sgt && sgt->ops->sgt_free) 57 if (sgt && sgt->ops->sgt_free)
57 sgt->ops->sgt_free(g, sgt); 58 sgt->ops->sgt_free(g, sgt);
58} 59}
60
61u64 nvgpu_mem_iommu_translate(struct gk20a *g, u64 phys)
62{
63 /* ensure it is not vidmem allocation */
64 WARN_ON(is_vidmem_page_alloc(phys));
65
66 if (nvgpu_iommuable(g) && g->ops.mm.get_iommu_bit)
67 return phys | 1ULL << g->ops.mm.get_iommu_bit(g);
68
69 return phys;
70}