# SPDX-License-Identifier: GPL-2.0-only menu "DMABUF options" config SYNC_FILE bool "Explicit Synchronization Framework" default n select DMA_SHARED_BUFFER ---help--- The Sync File Framework adds explicit syncronization 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 bool "Sync File Validation Framework" default n depends on SYNC_FILE depends on DEBUG_FS ---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 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_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. endmenu