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