From db78501061a7584b2120a1b2c62c713d9fa109e2 Mon Sep 17 00:00:00 2001 From: Ashish Mhetre Date: Thu, 18 May 2023 19:11:17 +0000 Subject: [PATCH] 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 Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2905251 Reviewed-by: svc-mobile-coverity Reviewed-by: svc-mobile-cert Reviewed-by: Sachin Nikam Reviewed-by: Jonathan Hunter GVS: Gerrit_Virtual_Submit --- drivers/video/tegra/nvmap/Makefile.memory.configs | 11 +++++++++++ drivers/video/tegra/nvmap/nvmap_dmabuf.c | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/video/tegra/nvmap/Makefile.memory.configs b/drivers/video/tegra/nvmap/Makefile.memory.configs index f62b323b..6ba23a8b 100644 --- a/drivers/video/tegra/nvmap/Makefile.memory.configs +++ b/drivers/video/tegra/nvmap/Makefile.memory.configs @@ -118,6 +118,9 @@ NVMAP_CONFIG_UPSTREAM_KERNEL := n # Config for enabling the cache flush at buffer allocation time from carveout NVMAP_CONFIG_CACHE_FLUSH_AT_ALLOC := y + +# Config for enabling the dma-buf deferred unmapping +NVMAP_CONFIG_DMABUF_DEFERRED_UNMAPPING := n ################################################################################ # Section 3 # Enable/Disable configs based upon the kernel version @@ -139,6 +142,10 @@ NVMAP_CONFIG_SCIIPC := y NVMAP_CONFIG_UPSTREAM_KERNEL := y NVMAP_CONFIG_COLOR_PAGES := n endif +ifeq ($(CONFIG_DMABUF_DEFERRED_UNMAPPING),y) +NVMAP_CONFIG_DMABUF_DEFERRED_UNMAPPING := y +endif + ################################################################################ # Section 4 # This section creates ccflags based upon the values specified @@ -198,6 +205,10 @@ ifeq ($(NVMAP_CONFIG_UPSTREAM_KERNEL),y) ccflags-y += -DNVMAP_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) ccflags-y += -DNVMAP_CONFIG_PROCRANK endif #NVMAP_CONFIG_PROCRANK diff --git a/drivers/video/tegra/nvmap/nvmap_dmabuf.c b/drivers/video/tegra/nvmap/nvmap_dmabuf.c index 23541797..a12b5c61 100644 --- a/drivers/video/tegra/nvmap/nvmap_dmabuf.c +++ b/drivers/video/tegra/nvmap/nvmap_dmabuf.c @@ -488,7 +488,7 @@ static struct dma_buf *__dma_buf_export(struct nvmap_handle_info *info, 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 */ exp_info.exp_flags = DMABUF_CAN_DEFER_UNMAP | DMABUF_SKIP_CACHE_SYNC;