1# SPDX-License-Identifier: GPL-2.0-only 2# 3# Multimedia device configuration 4# 5 6# 7# NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT 8# 9source "drivers/media/rc/Kconfig" 10source "drivers/media/cec/Kconfig" 11 12menuconfig MEDIA_SUPPORT 13 tristate "Multimedia support" 14 depends on HAS_IOMEM 15 help 16 If you want to use media devices, including Webcams, Video grabber 17 devices and/or TV devices, V4L2 codecs, etc, enable this option 18 and other options below. 19 20 Additional info and docs are available on the web at 21 <https://linuxtv.org> 22 23if MEDIA_SUPPORT 24 25config MEDIA_SUPPORT_FILTER 26 bool "Filter media drivers" 27 default y if !EMBEDDED && !EXPERT 28 help 29 Configuring the media subsystem can be complex, as there are 30 hundreds of drivers and other config options. 31 32 This menu offers option that will help the Kernel's config 33 system to hide drivers that are out of the scope of the 34 user needs, and disabling core support for unused APIs. 35 36 If not selected, all non-optional media core functionality 37 needed to support media drivers will be enabled. Also, all 38 media device drivers should be shown. 39 40config MEDIA_SUBDRV_AUTOSELECT 41 bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" 42 depends on HAS_IOMEM 43 select I2C 44 select I2C_MUX 45 default y if MEDIA_SUPPORT_FILTER 46 help 47 By default, a media driver auto-selects all possible ancillary 48 devices such as tuners, sensors, video encoders/decoders and 49 frontends, that are used by any of the supported devices. 50 51 This is generally the right thing to do, except when there 52 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 which 56 are, in fact, necessary will result in the lack of the needed 57 functionality for your device (it may not tune or may not have 58 the needed demodulators). 59 60 If unsure say Y. 61 62menu "Media device types" 63 64# 65# Multimedia support - automatically enable V4L2 and DVB core 66# 67config MEDIA_CAMERA_SUPPORT 68 bool 69 prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER 70 default y if !MEDIA_SUPPORT_FILTER 71 help 72 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_SUPPORT 77 bool 78 prompt "Analog TV" if MEDIA_SUPPORT_FILTER 79 default y if !MEDIA_SUPPORT_FILTER 80 help 81 Enable analog TV support. 82 83 Say Y when you have a TV board with analog support or with a 84 hybrid analog/digital TV chipset. 85 86 Note: There are several DVB cards that are based on chips that 87 support both analog and digital TV. Disabling this option 88 will disable support for them. 89 90config MEDIA_DIGITAL_TV_SUPPORT 91 bool 92 prompt "Digital TV" if MEDIA_SUPPORT_FILTER 93 default y if !MEDIA_SUPPORT_FILTER 94 help 95 Enable digital TV support. 96 97 Say Y when you have a board with digital support or a board with 98 hybrid digital TV and analog TV. 99 100config MEDIA_RADIO_SUPPORT 101 bool 102 prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER 103 default y if !MEDIA_SUPPORT_FILTER 104 help 105 Enable AM/FM radio support. 106 107 Additional info and docs are available on the web at 108 <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 that 113 support radio reception. Disabling this option will 114 disable support for them. 115 116config MEDIA_SDR_SUPPORT 117 bool 118 prompt "Software defined radio" if MEDIA_SUPPORT_FILTER 119 default y if !MEDIA_SUPPORT_FILTER 120 help 121 Enable software defined radio support. 122 123 Say Y when you have a software defined radio device. 124 125config MEDIA_PLATFORM_SUPPORT 126 bool 127 prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER 128 default y if !MEDIA_SUPPORT_FILTER 129 help 130 Enable support for complex cameras, codecs, and other hardware 131 that are integrated at the CPU, GPU or on Image Signalling Processor 132 and don't use PCI, USB or Firewire buses. 133 134 This is found on Embedded hardware (SoC), on V4L2 codecs and 135 on some GPU and newer CPU chipsets. 136 137 Say Y when you want to be able so see such devices. 138 139config MEDIA_TEST_SUPPORT 140 bool 141 prompt "Test drivers" if MEDIA_SUPPORT_FILTER 142 default y if !MEDIA_SUPPORT_FILTER 143 help 144 Those drivers should not be used on production Kernels, but 145 can be useful on debug ones. It enables several dummy drivers 146 that simulate a real hardware. Very useful to test userspace 147 applications and to validate if the subsystem core is doesn't 148 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 types 155 156 157menu "Media core support" 158 visible if !MEDIA_SUPPORT_FILTER 159 160config VIDEO_DEV 161 tristate "Video4Linux core" 162 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT 163 help 164 Enables the V4L2 API, used by cameras, analog TV, video grabbers, 165 radio devices and by some input devices. 166 167config MEDIA_CONTROLLER 168 bool "Media Controller API" 169 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT 170 help 171 Enable the media controller API used to query media devices internal 172 topology and configure it dynamically. 173 174 This API is mostly used by camera interfaces in embedded platforms. 175 176# 177# DVB Core 178# Only enables if one of DTV is selected 179# 180 181config DVB_CORE 182 tristate 183 depends on MEDIA_DIGITAL_TV_SUPPORT 184 depends on (I2C || I2C=n) 185 default MEDIA_DIGITAL_TV_SUPPORT 186 select CRC32 187 help 188 Enables the DVB API, used by Digital TV devices. Supports several 189 standards, including DVB, ATSC, ISDB and CMDB. 190 191endmenu # Media core support 192 193# 194# Extra per-media API core functionality 195 196menu "Video4Linux options" 197 visible if VIDEO_DEV 198 199source "drivers/media/v4l2-core/Kconfig" 200endmenu 201 202menu "Media controller options" 203 visible if MEDIA_CONTROLLER 204 205source "drivers/media/mc/Kconfig" 206endmenu 207 208menu "Digital TV options" 209 visible if DVB_CORE 210 211source "drivers/media/dvb-core/Kconfig" 212endmenu 213 214menu "Media drivers" 215 216comment "Drivers filtered as selected at 'Filter media drivers'" 217 depends on MEDIA_SUPPORT_FILTER 218 219source "drivers/media/usb/Kconfig" 220source "drivers/media/pci/Kconfig" 221source "drivers/media/radio/Kconfig" 222 223# Common driver options 224source "drivers/media/common/Kconfig" 225 226if MEDIA_PLATFORM_SUPPORT 227source "drivers/media/platform/Kconfig" 228source "drivers/media/mmc/Kconfig" 229endif 230 231if MEDIA_TEST_SUPPORT 232source "drivers/media/test-drivers/Kconfig" 233endif 234 235source "drivers/media/firewire/Kconfig" 236 237endmenu 238 239# 240# Ancillary drivers (tuners, i2c, spi, frontends) 241# 242 243config MEDIA_HIDE_ANCILLARY_SUBDRV 244 bool 245 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT 246 default y 247 248menu "Media ancillary drivers" 249 250config MEDIA_ATTACH 251 bool 252 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 253 depends on MODULES 254 default MODULES 255 256source "drivers/media/i2c/Kconfig" 257source "drivers/media/spi/Kconfig" 258source "drivers/media/tuners/Kconfig" 259source "drivers/media/dvb-frontends/Kconfig" 260 261endmenu 262 263endif # MEDIA_SUPPORT 264