summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/mm_gk20a.h
diff options
context:
space:
mode:
authorKonsta Holtta <kholtta@nvidia.com>2016-06-17 08:56:07 -0400
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-07-06 06:34:23 -0400
commitb8915ab5aabb02866019221c51d96f304658207f (patch)
tree16754368daa70c837dea7be8283cf0c5027b23f3 /drivers/gpu/nvgpu/gk20a/mm_gk20a.h
parent67fae6e547ca20c4171e1b3d0ad9d252c2e3c0ee (diff)
gpu: nvgpu: support in-kernel vidmem mappings
Propagate the buffer aperture flag in gk20a_locked_gmmu_map up so that buffers represented as a mem_desc and present in vidmem can be mapped to gpu. JIRA DNVGPU-18 JIRA DNVGPU-76 Change-Id: I46cf87e27229123016727339b9349d5e2c835b3e Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1169308 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.h')
-rw-r--r--drivers/gpu/nvgpu/gk20a/mm_gk20a.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h
index a697e520..f87ba605 100644
--- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.h
@@ -40,8 +40,13 @@
40 outer_flush_range(pa, pa + (size_t)(size)); \ 40 outer_flush_range(pa, pa + (size_t)(size)); \
41 } while (0) 41 } while (0)
42 42
43/*
44 * Real location of a buffer - gk20a_aperture_mask() will deduce what will be
45 * told to the gpu about the aperture, but this flag designates where the
46 * memory actually was allocated from.
47 */
43enum gk20a_aperture { 48enum gk20a_aperture {
44 APERTURE_INVALID, /* e.g., unallocated */ 49 APERTURE_INVALID, /* unallocated or N/A */
45 APERTURE_SYSMEM, 50 APERTURE_SYSMEM,
46 APERTURE_VIDMEM 51 APERTURE_VIDMEM
47}; 52};
@@ -520,14 +525,16 @@ u64 gk20a_gmmu_map(struct vm_gk20a *vm,
520 u64 size, 525 u64 size,
521 u32 flags, 526 u32 flags,
522 int rw_flag, 527 int rw_flag,
523 bool priv); 528 bool priv,
529 enum gk20a_aperture aperture);
524u64 gk20a_gmmu_fixed_map(struct vm_gk20a *vm, 530u64 gk20a_gmmu_fixed_map(struct vm_gk20a *vm,
525 struct sg_table **sgt, 531 struct sg_table **sgt,
526 u64 addr, 532 u64 addr,
527 u64 size, 533 u64 size,
528 u32 flags, 534 u32 flags,
529 int rw_flag, 535 int rw_flag,
530 bool priv); 536 bool priv,
537 enum gk20a_aperture aperture);
531 538
532int gk20a_gmmu_alloc_map(struct vm_gk20a *vm, 539int gk20a_gmmu_alloc_map(struct vm_gk20a *vm,
533 size_t size, 540 size_t size,
@@ -619,7 +626,8 @@ u64 gk20a_locked_gmmu_map(struct vm_gk20a *vm,
619 bool clear_ctags, 626 bool clear_ctags,
620 bool sparse, 627 bool sparse,
621 bool priv, 628 bool priv,
622 struct vm_gk20a_mapping_batch *batch); 629 struct vm_gk20a_mapping_batch *batch,
630 enum gk20a_aperture aperture);
623 631
624void gk20a_gmmu_unmap(struct vm_gk20a *vm, 632void gk20a_gmmu_unmap(struct vm_gk20a *vm,
625 u64 vaddr, 633 u64 vaddr,