mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 18:16:01 +03:00
gpu: nvgpu: select map access type from dmabuf permission and user request
Add api to translate dmabuf's fmode_t to gk20a_mem_rw_flag for read only/read write mapping selection. By default dmabuf fd mapping permission should be a maximum access permission associated to a particual dmabuf fd. Remove bit flag MAP_ACCESS_NO_WRITE and add 2 bit values for user access requests NVGPU_VM_MAP_ACCESS_DEFAULT|READ_ONLY| READ_WRITE. To unify map access type handling in Linux and QNX move the parameter NVGPU_VM_MAP_ACCESS_* check to common function nvgpu_vm_map. Set MAP_ACCESS_TYPE enabled flag in common characteristics init function as it is supported for Linux and QNX. Bug 200717195 Bug 3250920 Change-Id: I1a249f7c52bda099390dd4f371b005e1a7cef62f Signed-off-by: Lakshmanan M <lm@nvidia.com> Signed-off-by: Sagar Kamble <skamble@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2507150 Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com> Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
261bdb9cc2
commit
19186c8a02
@@ -355,6 +355,7 @@ int test_map_buffer_error_cases(struct unit_module *m, struct gk20a *g,
|
||||
buf_size,
|
||||
0,
|
||||
gk20a_mem_flag_none,
|
||||
NVGPU_VM_MAP_ACCESS_READ_WRITE,
|
||||
NVGPU_VM_MAP_CACHEABLE,
|
||||
NV_KIND_INVALID,
|
||||
0,
|
||||
@@ -377,6 +378,7 @@ int test_map_buffer_error_cases(struct unit_module *m, struct gk20a *g,
|
||||
buf_size,
|
||||
0,
|
||||
gk20a_mem_flag_none,
|
||||
NVGPU_VM_MAP_ACCESS_READ_WRITE,
|
||||
NVGPU_VM_MAP_CACHEABLE,
|
||||
NV_KIND_INVALID,
|
||||
0,
|
||||
@@ -399,6 +401,7 @@ int test_map_buffer_error_cases(struct unit_module *m, struct gk20a *g,
|
||||
buf_size,
|
||||
0,
|
||||
gk20a_mem_flag_none,
|
||||
NVGPU_VM_MAP_ACCESS_READ_WRITE,
|
||||
NVGPU_VM_MAP_CACHEABLE,
|
||||
NV_KIND_INVALID,
|
||||
0,
|
||||
@@ -420,6 +423,7 @@ int test_map_buffer_error_cases(struct unit_module *m, struct gk20a *g,
|
||||
SZ_1G,
|
||||
0,
|
||||
gk20a_mem_flag_none,
|
||||
NVGPU_VM_MAP_ACCESS_READ_WRITE,
|
||||
NVGPU_VM_MAP_CACHEABLE,
|
||||
NV_KIND_INVALID,
|
||||
0,
|
||||
@@ -441,6 +445,7 @@ int test_map_buffer_error_cases(struct unit_module *m, struct gk20a *g,
|
||||
buf_size,
|
||||
0,
|
||||
gk20a_mem_flag_none,
|
||||
NVGPU_VM_MAP_ACCESS_READ_WRITE,
|
||||
NVGPU_VM_MAP_CACHEABLE,
|
||||
NVGPU_KIND_INVALID,
|
||||
NVGPU_KIND_INVALID,
|
||||
@@ -463,6 +468,7 @@ int test_map_buffer_error_cases(struct unit_module *m, struct gk20a *g,
|
||||
buf_size,
|
||||
0,
|
||||
gk20a_mem_flag_none,
|
||||
NVGPU_VM_MAP_ACCESS_READ_WRITE,
|
||||
NVGPU_VM_MAP_CACHEABLE,
|
||||
NV_KIND_INVALID,
|
||||
0,
|
||||
@@ -616,6 +622,7 @@ static int map_buffer(struct unit_module *m,
|
||||
buf_size,
|
||||
0,
|
||||
gk20a_mem_flag_none,
|
||||
NVGPU_VM_MAP_ACCESS_READ_WRITE,
|
||||
flags,
|
||||
compr_kind,
|
||||
0,
|
||||
@@ -641,6 +648,7 @@ static int map_buffer(struct unit_module *m,
|
||||
buf_size,
|
||||
0,
|
||||
gk20a_mem_flag_none,
|
||||
NVGPU_VM_MAP_ACCESS_READ_WRITE,
|
||||
flags,
|
||||
compr_kind,
|
||||
0,
|
||||
|
||||
Reference in New Issue
Block a user