video: tegra: nvmap: Adding NvMap config for deferred unmap

Add NvMap config for enabling/disabling deferred dma-buf unmapping.
Keep it disabled by default and enable it based on
CONFIG_DMABUF_DEFERRED_UNMAPPING.

Bug 4067905
Bug 4115589

Change-Id: Ib1ee63cdd61a346f2f9894bb3caf406ae5f159c5
Signed-off-by: Ashish Mhetre <amhetre@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2905251
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Ashish Mhetre
2023-05-18 19:11:17 +00:00
committed by mobile promotions
parent 2e59846460
commit db78501061
2 changed files with 12 additions and 1 deletions

View File

@@ -118,6 +118,9 @@ NVMAP_CONFIG_UPSTREAM_KERNEL := n
# Config for enabling the cache flush at buffer allocation time from carveout # Config for enabling the cache flush at buffer allocation time from carveout
NVMAP_CONFIG_CACHE_FLUSH_AT_ALLOC := y NVMAP_CONFIG_CACHE_FLUSH_AT_ALLOC := y
# Config for enabling the dma-buf deferred unmapping
NVMAP_CONFIG_DMABUF_DEFERRED_UNMAPPING := n
################################################################################ ################################################################################
# Section 3 # Section 3
# Enable/Disable configs based upon the kernel version # Enable/Disable configs based upon the kernel version
@@ -139,6 +142,10 @@ NVMAP_CONFIG_SCIIPC := y
NVMAP_CONFIG_UPSTREAM_KERNEL := y NVMAP_CONFIG_UPSTREAM_KERNEL := y
NVMAP_CONFIG_COLOR_PAGES := n NVMAP_CONFIG_COLOR_PAGES := n
endif endif
ifeq ($(CONFIG_DMABUF_DEFERRED_UNMAPPING),y)
NVMAP_CONFIG_DMABUF_DEFERRED_UNMAPPING := y
endif
################################################################################ ################################################################################
# Section 4 # Section 4
# This section creates ccflags based upon the values specified # This section creates ccflags based upon the values specified
@@ -198,6 +205,10 @@ ifeq ($(NVMAP_CONFIG_UPSTREAM_KERNEL),y)
ccflags-y += -DNVMAP_UPSTREAM_KERNEL ccflags-y += -DNVMAP_UPSTREAM_KERNEL
endif #NVMAP_CONFIG_UPSTREAM_KERNEL endif #NVMAP_CONFIG_UPSTREAM_KERNEL
ifeq ($(NVMAP_CONFIG_DMABUF_DEFERRED_UNMAPPING),y)
ccflags-y += -DNVMAP_DEFERRED_DMABUF_UNMAP
endif
ifeq ($(NVMAP_CONFIG_PROCRANK),y) ifeq ($(NVMAP_CONFIG_PROCRANK),y)
ccflags-y += -DNVMAP_CONFIG_PROCRANK ccflags-y += -DNVMAP_CONFIG_PROCRANK
endif #NVMAP_CONFIG_PROCRANK endif #NVMAP_CONFIG_PROCRANK

View File

@@ -488,7 +488,7 @@ static struct dma_buf *__dma_buf_export(struct nvmap_handle_info *info,
exp_info.flags = O_RDWR; exp_info.flags = O_RDWR;
} }
#if KERNEL_VERSION(6, 0, 0) > LINUX_VERSION_CODE #ifdef NVMAP_DEFERRED_DMABUF_UNMAP
/* Disable defer unmap feature only for kstable */ /* Disable defer unmap feature only for kstable */
exp_info.exp_flags = DMABUF_CAN_DEFER_UNMAP | exp_info.exp_flags = DMABUF_CAN_DEFER_UNMAP |
DMABUF_SKIP_CACHE_SYNC; DMABUF_SKIP_CACHE_SYNC;