From 5b6e8995b2a3d399a8cc7fd249301122053666e1 Mon Sep 17 00:00:00 2001 From: Konsta Holtta Date: Tue, 20 Jan 2015 13:34:04 +0200 Subject: 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 Reviewed-on: http://git-master/r/674020 Reviewed-by: Terje Bergstrom Tested-by: Terje Bergstrom --- drivers/gpu/nvgpu/gk20a/as_gk20a.c | 6 +++--- drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 7 ++----- drivers/gpu/nvgpu/gk20a/mm_gk20a.h | 4 ++-- 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( { gk20a_dbg_fn(""); - return gk20a_vm_map_buffer(as_share, args->dmabuf_fd, + return gk20a_vm_map_buffer(as_share->vm, args->dmabuf_fd, &args->offset, args->flags, args->kind, args->buffer_offset, @@ -160,7 +160,7 @@ static int gk20a_as_ioctl_map_buffer( struct nvgpu_as_map_buffer_args *args) { gk20a_dbg_fn(""); - return gk20a_vm_map_buffer(as_share, args->dmabuf_fd, + return gk20a_vm_map_buffer(as_share->vm, args->dmabuf_fd, &args->o_a.offset, args->flags, NV_KIND_DEFAULT, 0, 0); @@ -172,7 +172,7 @@ static int gk20a_as_ioctl_unmap_buffer( struct nvgpu_as_unmap_buffer_args *args) { gk20a_dbg_fn(""); - return gk20a_vm_unmap_buffer(as_share, args->offset); + return gk20a_vm_unmap_buffer(as_share->vm, args->offset); } static 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) return kind; } -int gk20a_vm_map_buffer(struct gk20a_as_share *as_share, +int gk20a_vm_map_buffer(struct vm_gk20a *vm, int dmabuf_fd, u64 *offset_align, u32 flags, /*NVGPU_AS_MAP_BUFFER_FLAGS_*/ @@ -2621,7 +2621,6 @@ int gk20a_vm_map_buffer(struct gk20a_as_share *as_share, u64 mapping_size) { int err = 0; - struct vm_gk20a *vm = as_share->vm; struct dma_buf *dmabuf; u64 ret_va; @@ -2656,10 +2655,8 @@ int gk20a_vm_map_buffer(struct gk20a_as_share *as_share, return err; } -int gk20a_vm_unmap_buffer(struct gk20a_as_share *as_share, u64 offset) +int gk20a_vm_unmap_buffer(struct vm_gk20a *vm, u64 offset) { - struct vm_gk20a *vm = as_share->vm; - gk20a_dbg_fn(""); 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, struct nvgpu_as_free_space_args *args); int gk20a_vm_bind_channel(struct gk20a_as_share *as_share, struct channel_gk20a *ch); -int gk20a_vm_map_buffer(struct gk20a_as_share *as_share, +int gk20a_vm_map_buffer(struct vm_gk20a *vm, int dmabuf_fd, u64 *offset_align, u32 flags, /* NVGPU_AS_MAP_BUFFER_FLAGS_ */ @@ -548,7 +548,7 @@ int gk20a_init_vm(struct mm_gk20a *mm, bool big_pages, char *name); void gk20a_deinit_vm(struct vm_gk20a *vm); -int gk20a_vm_unmap_buffer(struct gk20a_as_share *, u64 offset); +int gk20a_vm_unmap_buffer(struct vm_gk20a *vm, u64 offset); void gk20a_get_comptags(struct device *dev, struct dma_buf *dmabuf, struct gk20a_comptags *comptags); dma_addr_t gk20a_mm_gpuva_to_iova_base(struct vm_gk20a *vm, u64 gpu_vaddr); -- cgit v1.2.2