summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/tegra/linux
diff options
context:
space:
mode:
authorKonsta Holtta <kholtta@nvidia.com>2017-03-14 07:47:04 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-03-21 18:01:47 -0400
commit8f3875393e7a6bd0fc03afdb1fa99b7e33b71576 (patch)
tree7ee7b2da741fae7d06eeb367db2b14d8f78f0f55 /drivers/gpu/nvgpu/tegra/linux
parent79658ac5cb22cc68a2d24d964379a606086c8b39 (diff)
gpu: nvgpu: abstract away dma alloc attrs
Don't use enum dma_attr in the gk20a_gmmu_alloc_attr* functions, but define nvgpu-internal flags for no kernel mapping, force contiguous, and read only modes. Store the flags in the allocated struct mem_desc and only use gk20a_gmmu_free, remove gk20a_gmmu_free_attr. This helps in OS abstraction. Rename the notion of attr to flags. Add implicit NVGPU_DMA_NO_KERNEL_MAPPING to all vidmem buffers allocated via gk20a_gmmu_alloc_vid for consistency. Fix a bug in gk20a_gmmu_alloc_map_attr that dropped the attr parameter accidentally. Bug 1853519 Change-Id: I1ff67dff9fc425457ae445ce4976a780eb4dcc9f Signed-off-by: Konsta Holtta <kholtta@nvidia.com> Reviewed-on: http://git-master/r/1321101 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/tegra/linux')
-rw-r--r--drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c
index 1b40702a..d612fcd2 100644
--- a/drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c
+++ b/drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c
@@ -95,9 +95,10 @@ static inline void __maybe_unused pmc_write(u32 val, unsigned long reg)
95static void gk20a_tegra_secure_page_destroy(struct device *dev, 95static void gk20a_tegra_secure_page_destroy(struct device *dev,
96 struct secure_page_buffer *secure_buffer) 96 struct secure_page_buffer *secure_buffer)
97{ 97{
98 DEFINE_DMA_ATTRS(attrs);
98 dma_free_attrs(&tegra_vpr_dev, secure_buffer->size, 99 dma_free_attrs(&tegra_vpr_dev, secure_buffer->size,
99 (void *)(uintptr_t)secure_buffer->iova, 100 (void *)(uintptr_t)secure_buffer->iova,
100 secure_buffer->iova, &secure_buffer->attrs); 101 secure_buffer->iova, &attrs);
101} 102}
102 103
103int gk20a_tegra_secure_page_alloc(struct device *dev) 104int gk20a_tegra_secure_page_alloc(struct device *dev)
@@ -118,7 +119,6 @@ int gk20a_tegra_secure_page_alloc(struct device *dev)
118 119
119 secure_buffer->size = size; 120 secure_buffer->size = size;
120 secure_buffer->iova = iova; 121 secure_buffer->iova = iova;
121 secure_buffer->attrs = attrs;
122 secure_buffer->destroy = gk20a_tegra_secure_page_destroy; 122 secure_buffer->destroy = gk20a_tegra_secure_page_destroy;
123 123
124 return 0; 124 return 0;