diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/common/posix/dma.c | 8 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/dma.h | 18 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/os/linux/dma.c | 7 |
3 files changed, 33 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/posix/dma.c b/drivers/gpu/nvgpu/common/posix/dma.c index 23f59501..95bb1a75 100644 --- a/drivers/gpu/nvgpu/common/posix/dma.c +++ b/drivers/gpu/nvgpu/common/posix/dma.c | |||
@@ -110,6 +110,14 @@ int nvgpu_dma_alloc_flags_vid(struct gk20a *g, unsigned long flags, | |||
110 | return __nvgpu_do_dma_alloc(g, flags, size, mem, APERTURE_VIDMEM); | 110 | return __nvgpu_do_dma_alloc(g, flags, size, mem, APERTURE_VIDMEM); |
111 | } | 111 | } |
112 | 112 | ||
113 | int nvgpu_dma_alloc_vid_at(struct gk20a *g, | ||
114 | size_t size, struct nvgpu_mem *mem, u64 at) | ||
115 | { | ||
116 | BUG(); | ||
117 | |||
118 | return 0; | ||
119 | } | ||
120 | |||
113 | int nvgpu_dma_alloc_flags_vid_at(struct gk20a *g, unsigned long flags, | 121 | int nvgpu_dma_alloc_flags_vid_at(struct gk20a *g, unsigned long flags, |
114 | size_t size, struct nvgpu_mem *mem, u64 at) | 122 | size_t size, struct nvgpu_mem *mem, u64 at) |
115 | { | 123 | { |
diff --git a/drivers/gpu/nvgpu/include/nvgpu/dma.h b/drivers/gpu/nvgpu/include/nvgpu/dma.h index c0397b58..d83346a3 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/dma.h +++ b/drivers/gpu/nvgpu/include/nvgpu/dma.h | |||
@@ -167,6 +167,24 @@ int nvgpu_dma_alloc_vid(struct gk20a *g, size_t size, struct nvgpu_mem *mem); | |||
167 | int nvgpu_dma_alloc_flags_vid(struct gk20a *g, unsigned long flags, | 167 | int nvgpu_dma_alloc_flags_vid(struct gk20a *g, unsigned long flags, |
168 | size_t size, struct nvgpu_mem *mem); | 168 | size_t size, struct nvgpu_mem *mem); |
169 | 169 | ||
170 | |||
171 | /** | ||
172 | * nvgpu_dma_alloc_flags_vid_at - Allocate DMA memory | ||
173 | * | ||
174 | * @g - The GPU. | ||
175 | * @size - Size of the allocation in bytes. | ||
176 | * @mem - Struct for storing the allocation information. | ||
177 | * @at - A specific location to attempt to allocate memory from or 0 if the | ||
178 | * caller does not care what the address is. | ||
179 | * | ||
180 | * Allocate memory suitable for doing DMA. Store the allocation info in @mem. | ||
181 | * Returns 0 on success and a suitable error code when there's an error. This | ||
182 | * allocates memory specifically in VIDMEM. | ||
183 | * | ||
184 | */ | ||
185 | int nvgpu_dma_alloc_vid_at(struct gk20a *g, | ||
186 | size_t size, struct nvgpu_mem *mem, u64 at); | ||
187 | |||
170 | /** | 188 | /** |
171 | * nvgpu_dma_alloc_flags_vid_at - Allocate DMA memory | 189 | * nvgpu_dma_alloc_flags_vid_at - Allocate DMA memory |
172 | * | 190 | * |
diff --git a/drivers/gpu/nvgpu/os/linux/dma.c b/drivers/gpu/nvgpu/os/linux/dma.c index f513dcd6..51c8323a 100644 --- a/drivers/gpu/nvgpu/os/linux/dma.c +++ b/drivers/gpu/nvgpu/os/linux/dma.c | |||
@@ -313,6 +313,13 @@ int nvgpu_dma_alloc_flags_vid(struct gk20a *g, unsigned long flags, | |||
313 | return nvgpu_dma_alloc_flags_vid_at(g, flags, size, mem, 0); | 313 | return nvgpu_dma_alloc_flags_vid_at(g, flags, size, mem, 0); |
314 | } | 314 | } |
315 | 315 | ||
316 | int nvgpu_dma_alloc_vid_at(struct gk20a *g, | ||
317 | size_t size, struct nvgpu_mem *mem, u64 at) | ||
318 | { | ||
319 | return nvgpu_dma_alloc_flags_vid_at(g, | ||
320 | NVGPU_DMA_NO_KERNEL_MAPPING, size, mem, at); | ||
321 | } | ||
322 | |||
316 | int nvgpu_dma_alloc_flags_vid_at(struct gk20a *g, unsigned long flags, | 323 | int nvgpu_dma_alloc_flags_vid_at(struct gk20a *g, unsigned long flags, |
317 | size_t size, struct nvgpu_mem *mem, u64 at) | 324 | size_t size, struct nvgpu_mem *mem, u64 at) |
318 | { | 325 | { |