2019-05-19 13:07:45 +01:00
# SPDX-License-Identifier: GPL-2.0-only
2016-04-28 10:46:58 -03:00
menu "DMABUF options"
config SYNC_FILE
2016-05-31 11:33:16 -03:00
bool "Explicit Synchronization Framework"
2016-04-28 10:46:58 -03:00
default n
select DMA_SHARED_BUFFER
2020-06-14 01:50:22 +09:00
help
2020-02-16 12:47:08 +01:00
The Sync File Framework adds explicit synchronization via
2016-10-25 13:00:45 +01:00
userspace. It enables send/receive 'struct dma_fence' objects to/from
2016-05-31 11: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 15:39:22 -03:00
Documentation/driver-api/sync_file.rst.
2016-05-31 11:33:16 -03:00
2016-08-11 12:26:44 -03:00
config SW_SYNC
bool "Sync File Validation Framework"
default n
depends on SYNC_FILE
depends on DEBUG_FS
2020-06-14 01:50:22 +09:00
help
2016-08-11 12: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 11:34:44 +02:00
config UDMABUF
bool "userspace dmabuf misc driver"
default n
depends on DMA_SHARED_BUFFER
2018-09-11 15:42:09 +02:00
depends on MEMFD_CREATE || COMPILE_TEST
2018-08-27 11:34:44 +02: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 16:42:26 +02:00
config DMABUF_MOVE_NOTIFY
bool "Move notify between drivers (EXPERIMENTAL)"
default n
help
2020-03-24 13:54:42 +01: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 16:42:26 +02:00
2019-08-19 10:59:26 +01:00
config DMABUF_SELFTESTS
tristate "Selftests for the dma-buf interfaces"
default n
depends on DMA_SHARED_BUFFER
2019-12-03 17:26:37 +00: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 17:26:39 +00:00
source "drivers/dma-buf/heaps/Kconfig"
2016-04-28 10:46:58 -03:00
endmenu