|  | # 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 !EMBEDDED && !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 | 
|  | 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 |