summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKonsta Holtta <kholtta@nvidia.com>2015-01-20 06:34:04 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2015-04-04 21:04:48 -0400
commit5b6e8995b2a3d399a8cc7fd249301122053666e1 (patch)
treec38041a22da5260b54f4fc81c53f0038f42a6f75 /drivers
parent8991080a99ec5a166e11068fddbc8420079f6000 (diff)
gpu: nvgpu: use vm param to vm_map/unmap_buffer
Pass vm instead of as share to the userspace buffer mapping functions, since they need to be called also from other places than just the AS device ioctls, and as share is specific to them. Bug 1573150 Change-Id: I994872f23ea7b1582361f3f4fabbd64b4786419c Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/674020 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/as_gk20a.c6
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.c7
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.h4
3 files changed, 7 insertions, 10 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/as_gk20a.c b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
index fa131bb1..3d690e01 100644
--- a/drivers/gpu/nvgpu/gk20a/as_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/as_gk20a.c
@@ -147,7 +147,7 @@ static int gk20a_as_ioctl_map_buffer_ex(
147{ 147{
148 gk20a_dbg_fn(""); 148 gk20a_dbg_fn("");
149 149
150 return gk20a_vm_map_buffer(as_share, args->dmabuf_fd, 150 return gk20a_vm_map_buffer(as_share->vm, args->dmabuf_fd,
151 &args->offset, args->flags, 151 &args->offset, args->flags,
152 args->kind, 152 args->kind,
153 args->buffer_offset, 153 args->buffer_offset,
@@ -160,7 +160,7 @@ static int gk20a_as_ioctl_map_buffer(
160 struct nvgpu_as_map_buffer_args *args) 160 struct nvgpu_as_map_buffer_args *args)
161{ 161{
162 gk20a_dbg_fn(""); 162 gk20a_dbg_fn("");
163 return gk20a_vm_map_buffer(as_share, args->dmabuf_fd, 163 return gk20a_vm_map_buffer(as_share->vm, args->dmabuf_fd,
164 &args->o_a.offset, 164 &args->o_a.offset,
165 args->flags, NV_KIND_DEFAULT, 165 args->flags, NV_KIND_DEFAULT,
166 0, 0); 166 0, 0);
@@ -172,7 +172,7 @@ static int gk20a_as_ioctl_unmap_buffer(
172 struct nvgpu_as_unmap_buffer_args *args) 172 struct nvgpu_as_unmap_buffer_args *args)
173{ 173{
174 gk20a_dbg_fn(""); 174 gk20a_dbg_fn("");
175 return gk20a_vm_unmap_buffer(as_share, args->offset); 175 return gk20a_vm_unmap_buffer(as_share->vm, args->offset);
176} 176}
177 177
178static int gk20a_as_ioctl_get_va_regions( 178static int gk20a_as_ioctl_get_va_regions(
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
index cfd44cc3..2874567c 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c
@@ -2612,7 +2612,7 @@ static int gk20a_dmabuf_get_kind(struct dma_buf *dmabuf)
2612 return kind; 2612 return kind;
2613} 2613}
2614 2614
2615int gk20a_vm_map_buffer(struct gk20a_as_share *as_share, 2615int gk20a_vm_map_buffer(struct vm_gk20a *vm,
2616 int dmabuf_fd, 2616 int dmabuf_fd,
2617 u64 *offset_align, 2617 u64 *offset_align,
2618 u32 flags, /*NVGPU_AS_MAP_BUFFER_FLAGS_*/ 2618 u32 flags, /*NVGPU_AS_MAP_BUFFER_FLAGS_*/
@@ -2621,7 +2621,6 @@ int gk20a_vm_map_buffer(struct gk20a_as_share *as_share,
2621 u64 mapping_size) 2621 u64 mapping_size)
2622{ 2622{
2623 int err = 0; 2623 int err = 0;
2624 struct vm_gk20a *vm = as_share->vm;
2625 struct dma_buf *dmabuf; 2624 struct dma_buf *dmabuf;
2626 u64 ret_va; 2625 u64 ret_va;
2627 2626
@@ -2656,10 +2655,8 @@ int gk20a_vm_map_buffer(struct gk20a_as_share *as_share,
2656 return err; 2655 return err;
2657} 2656}
2658 2657
2659int gk20a_vm_unmap_buffer(struct gk20a_as_share *as_share, u64 offset) 2658int gk20a_vm_unmap_buffer(struct vm_gk20a *vm, u64 offset)
2660{ 2659{
2661 struct vm_gk20a *vm = as_share->vm;
2662
2663 gk20a_dbg_fn(""); 2660 gk20a_dbg_fn("");
2664 2661
2665 gk20a_vm_unmap_user(vm, offset); 2662 gk20a_vm_unmap_user(vm, offset);
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h
index e4fc3085..596661ca 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h
@@ -532,7 +532,7 @@ int gk20a_vm_free_space(struct gk20a_as_share *as_share,
532 struct nvgpu_as_free_space_args *args); 532 struct nvgpu_as_free_space_args *args);
533int gk20a_vm_bind_channel(struct gk20a_as_share *as_share, 533int gk20a_vm_bind_channel(struct gk20a_as_share *as_share,
534 struct channel_gk20a *ch); 534 struct channel_gk20a *ch);
535int gk20a_vm_map_buffer(struct gk20a_as_share *as_share, 535int gk20a_vm_map_buffer(struct vm_gk20a *vm,
536 int dmabuf_fd, 536 int dmabuf_fd,
537 u64 *offset_align, 537 u64 *offset_align,
538 u32 flags, /* NVGPU_AS_MAP_BUFFER_FLAGS_ */ 538 u32 flags, /* NVGPU_AS_MAP_BUFFER_FLAGS_ */
@@ -548,7 +548,7 @@ int gk20a_init_vm(struct mm_gk20a *mm,
548 bool big_pages, 548 bool big_pages,
549 char *name); 549 char *name);
550void gk20a_deinit_vm(struct vm_gk20a *vm); 550void gk20a_deinit_vm(struct vm_gk20a *vm);
551int gk20a_vm_unmap_buffer(struct gk20a_as_share *, u64 offset); 551int gk20a_vm_unmap_buffer(struct vm_gk20a *vm, u64 offset);
552void gk20a_get_comptags(struct device *dev, struct dma_buf *dmabuf, 552void gk20a_get_comptags(struct device *dev, struct dma_buf *dmabuf,
553 struct gk20a_comptags *comptags); 553 struct gk20a_comptags *comptags);
554dma_addr_t gk20a_mm_gpuva_to_iova_base(struct vm_gk20a *vm, u64 gpu_vaddr); 554dma_addr_t gk20a_mm_gpuva_to_iova_base(struct vm_gk20a *vm, u64 gpu_vaddr);