# SPDX-License-Identifier: GPL-2.0-only menu "DMABUF options" config DMABUF_CACHE bool "DMABUF cache attachment" default ARCH_ROCKCHIP depends on NO_GKI help This option support to store attachments in a list and destroy them by set to a callback list in the dtor of dma-buf. config RK_DMABUF_DEBUG bool "Rockchip DMABUF debug option" depends on NO_GKI select RK_DMABUF_PROCFS help This option support to debug all the dmabuf on db_list, allows to set a name for dmabuf. If not sure, say N config RK_DMABUF_DEBUG_ADVANCED bool "Rockchip DMABUF debug advanced option" depends on RK_DMABUF_DEBUG help This option support to debug all the dmabuf on db_list, allows to attach and map a dmabuf who has no attachment. If not sure, say N config DMABUF_PARTIAL bool "Support for partial cache maintenance" default y help In order to improve performance, allow dma-buf clients to apply cache maintenance to only a subset of a dma-buf. Kernel clients will be able to use the dma_buf_begin_cpu_access_partial and dma_buf_end_cpu_access_partial functions to only apply cache maintenance to a range within the dma-buf. config SYNC_FILE bool "Explicit Synchronization Framework" default n select DMA_SHARED_BUFFER help The Sync File Framework adds explicit synchronization via userspace. It enables send/receive 'struct dma_fence' objects to/from userspace via Sync File fds for synchronization between drivers via userspace components. It has been ported from Android. The first and main user for this is graphics in which a fence is associated with a buffer. When a job is submitted to the GPU a fence is attached to the buffer and is transferred via userspace, using Sync Files fds, to the DRM driver for example. More details at Documentation/driver-api/sync_file.rst. config SW_SYNC tristate "Sync File Validation Framework" default n depends on SYNC_FILE help A sync object driver that uses a 32bit counter to coordinate synchronization. Useful when there is no hardware primitive backing the synchronization. WARNING: improper use of this can result in deadlocking kernel drivers from userspace. Intended for test and debug only. config SW_SYNC_DEBUG bool "SW Sync Debug" depends on DEBUG_FS && SW_SYNC && NO_GKI default SW_SYNC help To get current fence point and timeline status. config UDMABUF bool "userspace dmabuf misc driver" default n depends on DMA_SHARED_BUFFER depends on MEMFD_CREATE || COMPILE_TEST help A driver to let userspace turn memfd regions into dma-bufs. Qemu can use this to create host dmabufs for guest framebuffers. config DMABUF_MOVE_NOTIFY bool "Move notify between drivers (EXPERIMENTAL)" default n depends on DMA_SHARED_BUFFER help Don't pin buffers if the dynamic DMA-buf interface is available on both the exporter as well as the importer. This fixes a security problem where userspace is able to pin unrestricted amounts of memory through DMA-buf. This is marked experimental because we don't yet have a consistent execution context and memory management between drivers. config DMABUF_SELFTESTS tristate "Selftests for the dma-buf interfaces" default n depends on DMA_SHARED_BUFFER menuconfig DMABUF_HEAPS bool "DMA-BUF Userland Memory Heaps" select DMA_SHARED_BUFFER help Choose this option to enable the DMA-BUF userland memory heaps. This options creates per heap chardevs in /dev/dma_heap/ which allows userspace to allocate dma-bufs that can be shared between drivers. menuconfig DMABUF_SYSFS_STATS bool "DMA-BUF sysfs statistics" depends on DMA_SHARED_BUFFER help Choose this option to enable DMA-BUF sysfs statistics in location /sys/kernel/dmabuf/buffers. /sys/kernel/dmabuf/buffers/ will contain statistics for the DMA-BUF with the unique inode number . source "drivers/dma-buf/heaps/Kconfig" source "drivers/dma-buf/rk_heaps/Kconfig" endmenu