| # SPDX-License-Identifier: GPL-2.0-only | 
 | # | 
 | # Multimedia device configuration | 
 | # | 
 |  | 
 | # | 
 | # NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT | 
 | # | 
 | source "drivers/media/rc/Kconfig" | 
 | source "drivers/media/cec/Kconfig" | 
 |  | 
 | menuconfig MEDIA_SUPPORT | 
 | 	tristate "Multimedia support" | 
 | 	depends on HAS_IOMEM | 
 | 	help | 
 | 	  If you want to use media devices, including Webcams, Video grabber | 
 | 	  devices and/or TV devices, V4L2 codecs, etc, enable this option | 
 | 	  and other options below. | 
 |  | 
 | 	  Additional info and docs are available on the web at | 
 | 	  <https://linuxtv.org> | 
 |  | 
 | if MEDIA_SUPPORT | 
 |  | 
 | config MEDIA_SUPPORT_FILTER | 
 | 	bool "Filter media drivers" | 
 | 	default y if !EXPERT | 
 | 	help | 
 | 	   Configuring the media subsystem can be complex, as there are | 
 | 	   hundreds of drivers and other config options. | 
 |  | 
 | 	   This menu offers option that will help the Kernel's config | 
 | 	   system to hide drivers that are out of the scope of the | 
 | 	   user needs, and disabling core support for unused APIs. | 
 |  | 
 | 	   If not selected, all non-optional media core functionality | 
 | 	   needed to support media drivers will be enabled. Also, all | 
 | 	   media device drivers should be shown. | 
 |  | 
 | config MEDIA_SUBDRV_AUTOSELECT | 
 | 	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" | 
 | 	depends on HAS_IOMEM | 
 | 	select I2C | 
 | 	select I2C_MUX | 
 | 	default y if MEDIA_SUPPORT_FILTER | 
 | 	help | 
 | 	  By default, a media driver auto-selects all possible ancillary | 
 | 	  devices such as tuners, sensors, video encoders/decoders and | 
 | 	  frontends, that are used by any of the supported devices. | 
 |  | 
 | 	  This is generally the right thing to do, except when there | 
 | 	  are strict constraints with regards to the kernel size, | 
 | 	  like on embedded systems. | 
 |  | 
 | 	  Use this option with care, as deselecting ancillary drivers which | 
 | 	  are, in fact, necessary will result in the lack of the needed | 
 | 	  functionality for your device (it may not tune or may not have | 
 | 	  the needed demodulators). | 
 |  | 
 | 	  If unsure say Y. | 
 |  | 
 | menu "Media device types" | 
 |  | 
 | # | 
 | # Multimedia support - automatically enable V4L2 and DVB core | 
 | # | 
 | config MEDIA_CAMERA_SUPPORT | 
 | 	bool | 
 | 	prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER | 
 | 	default y if !MEDIA_SUPPORT_FILTER | 
 | 	help | 
 | 	  Enable support for webcams and video grabbers. | 
 |  | 
 | 	  Say Y when you have a webcam or a video capture grabber board. | 
 |  | 
 | config MEDIA_ANALOG_TV_SUPPORT | 
 | 	bool | 
 | 	prompt "Analog TV" if MEDIA_SUPPORT_FILTER | 
 | 	default y if !MEDIA_SUPPORT_FILTER | 
 | 	help | 
 | 	  Enable analog TV support. | 
 |  | 
 | 	  Say Y when you have a TV board with analog support or with a | 
 | 	  hybrid analog/digital TV chipset. | 
 |  | 
 | 	  Note: There are several DVB cards that are based on chips that | 
 | 		support both analog and digital TV. Disabling this option | 
 | 		will disable support for them. | 
 |  | 
 | config MEDIA_DIGITAL_TV_SUPPORT | 
 | 	bool | 
 | 	prompt "Digital TV" if MEDIA_SUPPORT_FILTER | 
 | 	default y if !MEDIA_SUPPORT_FILTER | 
 | 	help | 
 | 	  Enable digital TV support. | 
 |  | 
 | 	  Say Y when you have a board with digital support or a board with | 
 | 	  hybrid digital TV and analog TV. | 
 |  | 
 | config MEDIA_RADIO_SUPPORT | 
 | 	bool | 
 | 	prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER | 
 | 	default y if !MEDIA_SUPPORT_FILTER | 
 | 	help | 
 | 	  Enable AM/FM radio support. | 
 |  | 
 | 	  Additional info and docs are available on the web at | 
 | 	  <https://linuxtv.org> | 
 |  | 
 | 	  Say Y when you have a board with radio support. | 
 |  | 
 | 	  Note: There are several TV cards that are based on chips that | 
 | 		support radio reception. Disabling this option will | 
 | 		disable support for them. | 
 |  | 
 | config MEDIA_SDR_SUPPORT | 
 | 	bool | 
 | 	prompt "Software defined radio" if MEDIA_SUPPORT_FILTER | 
 | 	default y if !MEDIA_SUPPORT_FILTER | 
 | 	help | 
 | 	  Enable software defined radio support. | 
 |  | 
 | 	  Say Y when you have a software defined radio device. | 
 |  | 
 | config MEDIA_PLATFORM_SUPPORT | 
 | 	bool | 
 | 	prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER | 
 | 	default y if !MEDIA_SUPPORT_FILTER | 
 | 	help | 
 | 	  Enable support for complex cameras, codecs, and other hardware | 
 | 	  that are integrated at the CPU, GPU or on Image Signalling Processor | 
 | 	  and don't use PCI, USB or Firewire buses. | 
 |  | 
 | 	  This is found on Embedded hardware (SoC), on V4L2 codecs and | 
 | 	  on some GPU and newer CPU chipsets. | 
 |  | 
 | 	  Say Y when you want to be able to see such devices. | 
 |  | 
 | config MEDIA_TEST_SUPPORT | 
 | 	bool | 
 | 	prompt "Test drivers" if MEDIA_SUPPORT_FILTER | 
 | 	default y if !MEDIA_SUPPORT_FILTER | 
 | 	help | 
 | 	  These drivers should not be used on production kernels, but | 
 | 	  can be useful on debug ones. This option enables several dummy drivers | 
 | 	  that simulate real hardware. Very useful to test userspace | 
 | 	  applications and to validate if the subsystem core doesn't | 
 | 	  have regressions. | 
 |  | 
 | 	  Say Y if you want to use some virtual test driver. | 
 |  | 
 | 	  In case of doubts, say N. | 
 | 	  Say Y when you have a software defined radio device. | 
 | endmenu # media device types | 
 |  | 
 |  | 
 | menu "Media core support" | 
 | 	visible if !MEDIA_SUPPORT_FILTER | 
 |  | 
 | config VIDEO_DEV | 
 | 	tristate "Video4Linux core" | 
 | 	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT | 
 | 	depends on (I2C || I2C=n) | 
 | 	select RATIONAL | 
 | 	select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE | 
 | 	help | 
 | 	  Enables the V4L2 API, used by cameras, analog TV, video grabbers, | 
 | 	  radio devices and by some input devices. | 
 |  | 
 | config MEDIA_CONTROLLER | 
 | 	bool "Media Controller API" | 
 | 	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT | 
 | 	help | 
 | 	  Enable the media controller API used to query media devices internal | 
 | 	  topology and configure it dynamically. | 
 |  | 
 | 	  This API is mostly used by camera interfaces in embedded platforms. | 
 |  | 
 | # | 
 | # DVB Core | 
 | #	Only enables if one of DTV is selected | 
 | # | 
 |  | 
 | config DVB_CORE | 
 | 	tristate "DVB Core" | 
 | 	depends on MEDIA_DIGITAL_TV_SUPPORT | 
 | 	depends on (I2C || I2C=n) | 
 | 	default MEDIA_DIGITAL_TV_SUPPORT | 
 | 	select CRC32 | 
 | 	help | 
 | 	  Enables the DVB API, used by Digital TV devices. Supports several | 
 | 	  standards, including DVB, ATSC, ISDB and CMDB. | 
 |  | 
 | endmenu # Media core support | 
 |  | 
 | # | 
 | # Extra per-media API core functionality | 
 |  | 
 | menu "Video4Linux options" | 
 | 	visible if VIDEO_DEV | 
 |  | 
 | source "drivers/media/v4l2-core/Kconfig" | 
 | endmenu | 
 |  | 
 | menu "Media controller options" | 
 | 	visible if MEDIA_CONTROLLER | 
 |  | 
 | source "drivers/media/mc/Kconfig" | 
 | endmenu | 
 |  | 
 | menu "Digital TV options" | 
 | 	visible if DVB_CORE | 
 |  | 
 | source "drivers/media/dvb-core/Kconfig" | 
 | endmenu | 
 |  | 
 | menu "Media drivers" | 
 |  | 
 | comment "Drivers filtered as selected at 'Filter media drivers'" | 
 | 	depends on MEDIA_SUPPORT_FILTER | 
 |  | 
 | comment "Media drivers" | 
 |  | 
 | source "drivers/media/usb/Kconfig" | 
 | source "drivers/media/pci/Kconfig" | 
 | source "drivers/media/radio/Kconfig" | 
 |  | 
 | if MEDIA_PLATFORM_SUPPORT | 
 | source "drivers/media/platform/Kconfig" | 
 | source "drivers/media/mmc/Kconfig" | 
 | endif | 
 |  | 
 | if MEDIA_TEST_SUPPORT | 
 | source "drivers/media/test-drivers/Kconfig" | 
 | endif | 
 |  | 
 | source "drivers/media/firewire/Kconfig" | 
 |  | 
 | # Common driver options | 
 | source "drivers/media/common/Kconfig" | 
 |  | 
 | endmenu | 
 |  | 
 | # | 
 | # Ancillary drivers (tuners, i2c, spi, frontends) | 
 | # | 
 |  | 
 | config MEDIA_HIDE_ANCILLARY_SUBDRV | 
 | 	bool | 
 | 	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT | 
 | 	default y | 
 |  | 
 | menu "Media ancillary drivers" | 
 |  | 
 | config MEDIA_ATTACH | 
 | 	bool | 
 | 	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT | 
 | 	depends on MODULES | 
 | 	default MODULES | 
 |  | 
 | source "drivers/media/i2c/Kconfig" | 
 | source "drivers/media/spi/Kconfig" | 
 | source "drivers/media/tuners/Kconfig" | 
 | source "drivers/media/dvb-frontends/Kconfig" | 
 |  | 
 | endmenu | 
 |  | 
 | endif # MEDIA_SUPPORT |