# SPDX-License-Identifier: GPL-2.0-only
#
# Generic video config states
#

# Enable the V4L2 core and API
config VIDEO_V4L2
	tristate
	depends on (I2C || I2C=n) && VIDEO_DEV
	select RATIONAL
	select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE
	default (I2C || I2C=n) && VIDEO_DEV

config VIDEO_V4L2_I2C
	bool
	depends on I2C && VIDEO_V4L2
	default y

config VIDEO_ADV_DEBUG
	bool "Enable advanced debug functionality on V4L2 drivers"
	help
	  Say Y here to enable advanced debugging functionality on some
	  V4L devices.
	  In doubt, say N.

config VIDEO_FIXED_MINOR_RANGES
	bool "Enable old-style fixed minor ranges on drivers/video devices"
	help
	  Say Y here to enable the old-style fixed-range minor assignments.
	  Only useful if you rely on the old behavior and use mknod instead of udev.

	  When in doubt, say N.

config VIDEO_PCI_SKELETON
	tristate "Skeleton PCI V4L2 driver"
	depends on PCI
	depends on SAMPLES
	depends on VIDEO_V4L2 && VIDEOBUF2_CORE
	depends on VIDEOBUF2_MEMOPS && VIDEOBUF2_DMA_CONTIG
	help
	  Enable build of the skeleton PCI driver, used as a reference
	  when developing new drivers.

# Used by drivers that need tuner.ko
config VIDEO_TUNER
	tristate

# Used by drivers that need v4l2-h264.ko
config V4L2_H264
	tristate

# Used by drivers that need v4l2-vp9.ko
config V4L2_VP9
	tristate

# Used by drivers that need v4l2-mem2mem.ko
config V4L2_MEM2MEM_DEV
	tristate
	depends on VIDEOBUF2_CORE

# Used by LED subsystem flash drivers
config V4L2_FLASH_LED_CLASS
	tristate "V4L2 flash API for LED flash class devices"
	depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	depends on LEDS_CLASS_FLASH
	help
	  Say Y here to enable V4L2 flash API support for LED flash
	  class drivers.

	  When in doubt, say N.

config V4L2_FWNODE
	tristate

# Used by drivers that need Videobuf modules
config VIDEOBUF_GEN
	tristate

config VIDEOBUF_DMA_SG
	tristate
	select VIDEOBUF_GEN

config VIDEOBUF_VMALLOC
	tristate
	select VIDEOBUF_GEN

config VIDEOBUF_DMA_CONTIG
	tristate
	select VIDEOBUF_GEN
