diff options
author | Alex Waterman <alexw@nvidia.com> | 2017-11-16 15:56:53 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-11-17 19:17:20 -0500 |
commit | 35ae4194a05d47aa6d79353428f81f2ca47ce90f (patch) | |
tree | 73c7f15348e1f5deb411392f41e339572b797bb4 /drivers/gpu/nvgpu/include | |
parent | b42fb7ba26b565f93118fbdd9e17b42ee6144c5e (diff) |
gpu: nvgpu: Add translation for NVGPU MM flags
Add a translation layer to convert from the NVGPU_AS_* flags to
to new set of NVGPU_VM_MAP_* and NVGPU_VM_AREA_ALLOC_* flags.
This allows the common MM code to not depend on the UAPI header
defined for Linux.
In addition to this change a couple of other small changes were
made:
1. Deprecate, print a warning, and ignore usage of the
NVGPU_AS_MAP_BUFFER_FLAGS_MAPPABLE_COMPBITS flag.
2. Move the t19x IO coherence flag from the t19x UAPI header
to the regular UAPI header.
JIRA NVGPU-293
Change-Id: I146402b0e8617294374e63e78f8826c57cd3b291
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1599802
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/include')
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/vm.h | 12 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/include/nvgpu/vm_area.h | 6 |
2 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/include/nvgpu/vm.h b/drivers/gpu/nvgpu/include/nvgpu/vm.h index 7009ddf4..e091f181 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/vm.h +++ b/drivers/gpu/nvgpu/include/nvgpu/vm.h | |||
@@ -199,6 +199,18 @@ struct vm_gk20a { | |||
199 | u64 syncpt_ro_map_gpu_va; | 199 | u64 syncpt_ro_map_gpu_va; |
200 | }; | 200 | }; |
201 | 201 | ||
202 | /* | ||
203 | * Mapping flags. | ||
204 | */ | ||
205 | #define NVGPU_VM_MAP_FIXED_OFFSET (1 << 0) | ||
206 | #define NVGPU_VM_MAP_CACHEABLE (1 << 1) | ||
207 | #define NVGPU_VM_MAP_IO_COHERENT (1 << 2) | ||
208 | #define NVGPU_VM_MAP_UNMAPPED_PTE (1 << 3) | ||
209 | #define NVGPU_VM_MAP_DIRECT_KIND_CTRL (1 << 4) | ||
210 | #define NVGPU_VM_MAP_L3_ALLOC (1 << 5) | ||
211 | |||
212 | #define NVGPU_KIND_INVALID -1 | ||
213 | |||
202 | void nvgpu_vm_get(struct vm_gk20a *vm); | 214 | void nvgpu_vm_get(struct vm_gk20a *vm); |
203 | void nvgpu_vm_put(struct vm_gk20a *vm); | 215 | void nvgpu_vm_put(struct vm_gk20a *vm); |
204 | 216 | ||
diff --git a/drivers/gpu/nvgpu/include/nvgpu/vm_area.h b/drivers/gpu/nvgpu/include/nvgpu/vm_area.h index 7fc77b29..92852633 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/vm_area.h +++ b/drivers/gpu/nvgpu/include/nvgpu/vm_area.h | |||
@@ -57,6 +57,12 @@ nvgpu_vm_area_from_vm_area_list(struct nvgpu_list_node *node) | |||
57 | vm_area_list)); | 57 | vm_area_list)); |
58 | }; | 58 | }; |
59 | 59 | ||
60 | /* | ||
61 | * Alloc space flags. | ||
62 | */ | ||
63 | #define NVGPU_VM_AREA_ALLOC_FIXED_OFFSET (1 << 0) | ||
64 | #define NVGPU_VM_AREA_ALLOC_SPARSE (1 << 1) | ||
65 | |||
60 | int nvgpu_vm_area_alloc(struct vm_gk20a *vm, u32 pages, u32 page_size, | 66 | int nvgpu_vm_area_alloc(struct vm_gk20a *vm, u32 pages, u32 page_size, |
61 | u64 *addr, u32 flags); | 67 | u64 *addr, u32 flags); |
62 | int nvgpu_vm_area_free(struct vm_gk20a *vm, u64 addr); | 68 | int nvgpu_vm_area_free(struct vm_gk20a *vm, u64 addr); |