# SPDX-License-Identifier: GPL-2.0-only
# Used by drivers that need Videobuf2 modules
config VIDEOBUF2_CORE
	select DMA_SHARED_BUFFER
	tristate

config VIDEOBUF2_V4L2
	tristate

config VIDEOBUF2_MEMOPS
	tristate

config VIDEOBUF2_DMA_CONTIG
	tristate
	select VIDEOBUF2_CORE
	select VIDEOBUF2_MEMOPS
	select DMA_SHARED_BUFFER

config VIDEOBUF2_VMALLOC
	tristate
	select VIDEOBUF2_CORE
	select VIDEOBUF2_MEMOPS
	select DMA_SHARED_BUFFER

config VIDEOBUF2_DMA_SG
	tristate
	select VIDEOBUF2_CORE
	select VIDEOBUF2_MEMOPS

config VIDEOBUF2_DVB
	tristate
	select VIDEOBUF2_CORE

config VIDEOBUF2_RELEASE_FENCES
	bool "videobuf2: opt-in dma_resv producer fences for V4L2 dmabuf exports"
	depends on VIDEOBUF2_CORE
	depends on DMA_SHARED_BUFFER
	default n
	help
	  Enables an opt-in API that lets vb2 producers populate a dma_resv
	  exclusive write fence on the dmabufs they export to userspace.
	  The fence is signalled when the buffer transitions to
	  VB2_BUF_STATE_DONE.

	  This gives userspace consumers that import V4L2-produced dmabufs
	  and wait on the dmabuf's implicit-sync fence (poll(POLLIN),
	  DMA_BUF_IOCTL_EXPORT_SYNC_FILE, EGL_LINUX_DMA_BUF_EXT) a real
	  producer fence to wait on, instead of a stub fence from
	  dma_fence_get_stub() that the dma_buf core substitutes when
	  dma_resv is empty.

	  Drivers individually opt in by setting
	  vb2_queue::supports_release_fences = true and calling
	  vb2_buffer_attach_release_fence() at the right point in their
	  pipeline (typically m2m device_run, just before HW kick).

	  Distributors leave this off unless targeting Wayland/EGL
	  consumers of V4L2 stateless decoder output on
	  implicit-sync-only GPU stacks (e.g. mainline panfrost).

	  If unsure, say N.
