269 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2#3# Multimedia device configuration4#5 6#7# NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT8#9source "drivers/media/rc/Kconfig"10source "drivers/media/cec/Kconfig"11 12menuconfig MEDIA_SUPPORT13 tristate "Multimedia support"14 depends on HAS_IOMEM15 help16 If you want to use media devices, including Webcams, Video grabber17 devices and/or TV devices, V4L2 codecs, etc, enable this option18 and other options below.19 20 Additional info and docs are available on the web at21 <https://linuxtv.org>22 23if MEDIA_SUPPORT24 25config MEDIA_SUPPORT_FILTER26 bool "Filter media drivers"27 default y if !EXPERT28 help29 Configuring the media subsystem can be complex, as there are30 hundreds of drivers and other config options.31 32 This menu offers option that will help the Kernel's config33 system to hide drivers that are out of the scope of the34 user needs, and disabling core support for unused APIs.35 36 If not selected, all non-optional media core functionality37 needed to support media drivers will be enabled. Also, all38 media device drivers should be shown.39 40config MEDIA_SUBDRV_AUTOSELECT41 bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"42 depends on HAS_IOMEM43 select I2C44 select I2C_MUX45 default y if MEDIA_SUPPORT_FILTER46 help47 By default, a media driver auto-selects all possible ancillary48 devices such as tuners, sensors, video encoders/decoders and49 frontends, that are used by any of the supported devices.50 51 This is generally the right thing to do, except when there52 are strict constraints with regards to the kernel size,53 like on embedded systems.54 55 Use this option with care, as deselecting ancillary drivers which56 are, in fact, necessary will result in the lack of the needed57 functionality for your device (it may not tune or may not have58 the needed demodulators).59 60 If unsure say Y.61 62menu "Media device types"63 64#65# Multimedia support - automatically enable V4L2 and DVB core66#67config MEDIA_CAMERA_SUPPORT68 bool69 prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER70 default y if !MEDIA_SUPPORT_FILTER71 help72 Enable support for webcams and video grabbers.73 74 Say Y when you have a webcam or a video capture grabber board.75 76config MEDIA_ANALOG_TV_SUPPORT77 bool78 prompt "Analog TV" if MEDIA_SUPPORT_FILTER79 default y if !MEDIA_SUPPORT_FILTER80 help81 Enable analog TV support.82 83 Say Y when you have a TV board with analog support or with a84 hybrid analog/digital TV chipset.85 86 Note: There are several DVB cards that are based on chips that87 support both analog and digital TV. Disabling this option88 will disable support for them.89 90config MEDIA_DIGITAL_TV_SUPPORT91 bool92 prompt "Digital TV" if MEDIA_SUPPORT_FILTER93 default y if !MEDIA_SUPPORT_FILTER94 help95 Enable digital TV support.96 97 Say Y when you have a board with digital support or a board with98 hybrid digital TV and analog TV.99 100config MEDIA_RADIO_SUPPORT101 bool102 prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER103 default y if !MEDIA_SUPPORT_FILTER104 help105 Enable AM/FM radio support.106 107 Additional info and docs are available on the web at108 <https://linuxtv.org>109 110 Say Y when you have a board with radio support.111 112 Note: There are several TV cards that are based on chips that113 support radio reception. Disabling this option will114 disable support for them.115 116config MEDIA_SDR_SUPPORT117 bool118 prompt "Software defined radio" if MEDIA_SUPPORT_FILTER119 default y if !MEDIA_SUPPORT_FILTER120 help121 Enable software defined radio support.122 123 Say Y when you have a software defined radio device.124 125config MEDIA_PLATFORM_SUPPORT126 bool127 prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER128 default y if !MEDIA_SUPPORT_FILTER129 help130 Enable support for complex cameras, codecs, and other hardware131 that are integrated at the CPU, GPU or on Image Signalling Processor132 and don't use PCI, USB or Firewire buses.133 134 This is found on Embedded hardware (SoC), on V4L2 codecs and135 on some GPU and newer CPU chipsets.136 137 Say Y when you want to be able to see such devices.138 139config MEDIA_TEST_SUPPORT140 bool141 prompt "Test drivers" if MEDIA_SUPPORT_FILTER142 default y if !MEDIA_SUPPORT_FILTER143 help144 These drivers should not be used on production kernels, but145 can be useful on debug ones. This option enables several dummy drivers146 that simulate real hardware. Very useful to test userspace147 applications and to validate if the subsystem core doesn't148 have regressions.149 150 Say Y if you want to use some virtual test driver.151 152 In case of doubts, say N.153 Say Y when you have a software defined radio device.154endmenu # media device types155 156 157menu "Media core support"158 visible if !MEDIA_SUPPORT_FILTER159 160config VIDEO_DEV161 tristate "Video4Linux core"162 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT163 depends on (I2C || I2C=n)164 select RATIONAL165 select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE166 help167 Enables the V4L2 API, used by cameras, analog TV, video grabbers,168 radio devices and by some input devices.169 170config MEDIA_CONTROLLER171 bool "Media Controller API"172 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT173 help174 Enable the media controller API used to query media devices internal175 topology and configure it dynamically.176 177 This API is mostly used by camera interfaces in embedded platforms.178 179#180# DVB Core181# Only enables if one of DTV is selected182#183 184config DVB_CORE185 tristate "DVB Core"186 depends on MEDIA_DIGITAL_TV_SUPPORT187 depends on (I2C || I2C=n)188 default MEDIA_DIGITAL_TV_SUPPORT189 select CRC32190 help191 Enables the DVB API, used by Digital TV devices. Supports several192 standards, including DVB, ATSC, ISDB and CMDB.193 194endmenu # Media core support195 196#197# Extra per-media API core functionality198 199menu "Video4Linux options"200 visible if VIDEO_DEV201 202source "drivers/media/v4l2-core/Kconfig"203endmenu204 205menu "Media controller options"206 visible if MEDIA_CONTROLLER207 208source "drivers/media/mc/Kconfig"209endmenu210 211menu "Digital TV options"212 visible if DVB_CORE213 214source "drivers/media/dvb-core/Kconfig"215endmenu216 217menu "Media drivers"218 219comment "Drivers filtered as selected at 'Filter media drivers'"220 depends on MEDIA_SUPPORT_FILTER221 222comment "Media drivers"223 224source "drivers/media/usb/Kconfig"225source "drivers/media/pci/Kconfig"226source "drivers/media/radio/Kconfig"227 228if MEDIA_PLATFORM_SUPPORT229source "drivers/media/platform/Kconfig"230source "drivers/media/mmc/Kconfig"231endif232 233if MEDIA_TEST_SUPPORT234source "drivers/media/test-drivers/Kconfig"235endif236 237source "drivers/media/firewire/Kconfig"238 239# Common driver options240source "drivers/media/common/Kconfig"241 242endmenu243 244#245# Ancillary drivers (tuners, i2c, spi, frontends)246#247 248config MEDIA_HIDE_ANCILLARY_SUBDRV249 bool250 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT251 default y252 253menu "Media ancillary drivers"254 255config MEDIA_ATTACH256 bool257 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT258 depends on MODULES259 default MODULES260 261source "drivers/media/i2c/Kconfig"262source "drivers/media/spi/Kconfig"263source "drivers/media/tuners/Kconfig"264source "drivers/media/dvb-frontends/Kconfig"265 266endmenu267 268endif # MEDIA_SUPPORT269