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