diff options
author | Konsta Holtta <kholtta@nvidia.com> | 2017-03-14 07:47:04 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2017-03-21 18:01:47 -0400 |
commit | 8f3875393e7a6bd0fc03afdb1fa99b7e33b71576 (patch) | |
tree | 7ee7b2da741fae7d06eeb367db2b14d8f78f0f55 /drivers/gpu/nvgpu/tegra | |
parent | 79658ac5cb22cc68a2d24d964379a606086c8b39 (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')
-rw-r--r-- | drivers/gpu/nvgpu/tegra/linux/platform_gk20a_tegra.c | 4 |
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) | |||
95 | static void gk20a_tegra_secure_page_destroy(struct device *dev, | 95 | static 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 | ||
103 | int gk20a_tegra_secure_page_alloc(struct device *dev) | 104 | int 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; |