mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 09:12:24 +03:00
gpu: nvgpu: Enable GPU MMIO path
This is adding support for work submit through GPU mmio for gpu-next. Bug 3938139 Change-Id: I69c6b2865e5264e485d8ecec4239c759abdd63d5 Signed-off-by: Dinesh T <dt@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2903841 Tested-by: Martin Radev <mradev@nvidia.com> Reviewed-by: Martin Radev <mradev@nvidia.com> Reviewed-by: Vaibhav Kachore <vkachore@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
7dbd29ceb6
commit
c8ceef2d08
@@ -813,6 +813,7 @@ int nvgpu_vm_do_init(struct mm_gk20a *mm,
|
||||
vm->mapped_buffers = NULL;
|
||||
|
||||
nvgpu_mutex_init(&vm->syncpt_ro_map_lock);
|
||||
nvgpu_mutex_init(&vm->gpu_mmio_va_map_lock);
|
||||
nvgpu_mutex_init(&vm->update_gmmu_lock);
|
||||
|
||||
nvgpu_ref_init(&vm->ref);
|
||||
@@ -838,6 +839,7 @@ int nvgpu_vm_do_init(struct mm_gk20a *mm,
|
||||
clean_up_gmmu_lock:
|
||||
nvgpu_mutex_destroy(&vm->update_gmmu_lock);
|
||||
nvgpu_mutex_destroy(&vm->syncpt_ro_map_lock);
|
||||
nvgpu_mutex_destroy(&vm->gpu_mmio_va_map_lock);
|
||||
#endif
|
||||
clean_up_gpu_vm:
|
||||
if (g->ops.mm.vm_as_free_share != NULL) {
|
||||
@@ -943,6 +945,16 @@ static void nvgpu_vm_remove(struct vm_gk20a *vm)
|
||||
vm->syncpt_ro_map_gpu_va);
|
||||
}
|
||||
|
||||
nvgpu_mutex_acquire(&vm->gpu_mmio_va_map_lock);
|
||||
if (vm->gpummio_va != 0U) {
|
||||
nvgpu_gmmu_unmap_va(vm, vm->gpummio_va,
|
||||
vm->gpummio_va_mapsize);
|
||||
nvgpu_dma_free(g, &vm->gpummio_mem);
|
||||
vm->gpummio_va = 0U;
|
||||
vm->gpummio_va_mapsize = 0U;
|
||||
}
|
||||
nvgpu_mutex_release(&vm->gpu_mmio_va_map_lock);
|
||||
|
||||
nvgpu_mutex_acquire(&vm->update_gmmu_lock);
|
||||
|
||||
nvgpu_rbtree_enum_start(0, &node, vm->mapped_buffers);
|
||||
@@ -988,6 +1000,7 @@ static void nvgpu_vm_remove(struct vm_gk20a *vm)
|
||||
nvgpu_mutex_destroy(&vm->update_gmmu_lock);
|
||||
|
||||
nvgpu_mutex_destroy(&vm->syncpt_ro_map_lock);
|
||||
nvgpu_mutex_destroy(&vm->gpu_mmio_va_map_lock);
|
||||
nvgpu_kfree(g, vm);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user