diff options
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/vm_priv.h')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/vm_priv.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/vm_priv.h b/drivers/gpu/nvgpu/common/linux/vm_priv.h new file mode 100644 index 00000000..c0fb0ffe --- /dev/null +++ b/drivers/gpu/nvgpu/common/linux/vm_priv.h | |||
@@ -0,0 +1,62 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it | ||
5 | * under the terms and conditions of the GNU General Public License, | ||
6 | * version 2, as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
11 | * more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | |||
17 | #ifndef __COMMON_LINUX_VM_PRIV_H__ | ||
18 | #define __COMMON_LINUX_VM_PRIV_H__ | ||
19 | |||
20 | #include <nvgpu/types.h> | ||
21 | |||
22 | struct sg_table; | ||
23 | struct dma_buf; | ||
24 | |||
25 | struct vm_gk20a; | ||
26 | struct vm_gk20a_mapping_batch; | ||
27 | |||
28 | u64 nvgpu_vm_map(struct vm_gk20a *vm, | ||
29 | struct dma_buf *dmabuf, | ||
30 | u64 offset_align, | ||
31 | u32 flags /*NVGPU_AS_MAP_BUFFER_FLAGS_*/, | ||
32 | int kind, | ||
33 | struct sg_table **sgt, | ||
34 | bool user_mapped, | ||
35 | int rw_flag, | ||
36 | u64 buffer_offset, | ||
37 | u64 mapping_size, | ||
38 | struct vm_gk20a_mapping_batch *mapping_batch); | ||
39 | |||
40 | int nvgpu_vm_map_compbits(struct vm_gk20a *vm, | ||
41 | u64 mapping_gva, | ||
42 | u64 *compbits_win_gva, | ||
43 | u64 *mapping_iova, | ||
44 | u32 flags); | ||
45 | |||
46 | /* Note: batch may be NULL if map op is not part of a batch */ | ||
47 | int nvgpu_vm_map_buffer(struct vm_gk20a *vm, | ||
48 | int dmabuf_fd, | ||
49 | u64 *offset_align, | ||
50 | u32 flags, /* NVGPU_AS_MAP_BUFFER_FLAGS_ */ | ||
51 | int kind, | ||
52 | u64 buffer_offset, | ||
53 | u64 mapping_size, | ||
54 | struct vm_gk20a_mapping_batch *batch); | ||
55 | |||
56 | void nvgpu_vm_unmap(struct vm_gk20a *vm, u64 offset); | ||
57 | |||
58 | /* find buffer corresponding to va */ | ||
59 | int nvgpu_vm_find_buffer(struct vm_gk20a *vm, u64 gpu_va, | ||
60 | struct dma_buf **dmabuf, | ||
61 | u64 *offset); | ||
62 | #endif | ||