2019-05-19 15:07:45 +03:00
# SPDX-License-Identifier: GPL-2.0-only
2016-04-28 16:46:58 +03:00
menu "DMABUF options"
config SYNC_FILE
2016-05-31 17:33:16 +03:00
bool "Explicit Synchronization Framework"
2016-04-28 16:46:58 +03:00
default n
select DMA_SHARED_BUFFER
2020-06-13 19:50:22 +03:00
help
2020-02-16 14:47:08 +03:00
The Sync File Framework adds explicit synchronization via
2016-10-25 15:00:45 +03:00
userspace. It enables send/receive 'struct dma_fence' objects to/from
2016-05-31 17:33:16 +03:00
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
2019-06-27 21:39:22 +03:00
Documentation/driver-api/sync_file.rst.
2016-05-31 17:33:16 +03:00
2016-08-11 18:26:44 +03:00
config SW_SYNC
bool "Sync File Validation Framework"
default n
depends on SYNC_FILE
depends on DEBUG_FS
2020-06-13 19:50:22 +03:00
help
2016-08-11 18:26:44 +03:00
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.
2018-08-27 12:34:44 +03:00
config UDMABUF
bool "userspace dmabuf misc driver"
default n
depends on DMA_SHARED_BUFFER
2018-09-11 16:42:09 +03:00
depends on MEMFD_CREATE || COMPILE_TEST
2018-08-27 12:34:44 +03:00
help
A driver to let userspace turn memfd regions into dma-bufs.
Qemu can use this to create host dmabufs for guest framebuffers.
2018-07-03 17:42:26 +03:00
config DMABUF_MOVE_NOTIFY
bool "Move notify between drivers (EXPERIMENTAL)"
default n
help
2020-03-24 15:54:42 +03:00
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.
2018-07-03 17:42:26 +03:00
2021-01-15 19:47:39 +03:00
config DMABUF_DEBUG
bool "DMA-BUF debug checks"
default y if DMA_API_DEBUG
help
This option enables additional checks for DMA-BUF importers and
exporters. Specifically it validates that importers do not peek at the
underlying struct page when they import a buffer.
2019-08-19 12:59:26 +03:00
config DMABUF_SELFTESTS
tristate "Selftests for the dma-buf interfaces"
default n
depends on DMA_SHARED_BUFFER
2019-12-03 20:26:37 +03:00
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.
2019-12-03 20:26:39 +03:00
source "drivers/dma-buf/heaps/Kconfig"
2016-04-28 16:46:58 +03:00
endmenu