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 !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 "Cameras and video grabbers" 69 default y if !MEDIA_SUPPORT_FILTER 70 help 71 Enable support for webcams and video grabbers. 72 73 Say Y when you have a webcam or a video capture grabber board. 74 75config MEDIA_ANALOG_TV_SUPPORT 76 bool "Analog TV" 77 default y if !MEDIA_SUPPORT_FILTER 78 help 79 Enable analog TV support. 80 81 Say Y when you have a TV board with analog support or with a 82 hybrid analog/digital TV chipset. 83 84 Note: There are several DVB cards that are based on chips that 85 support both analog and digital TV. Disabling this option 86 will disable support for them. 87 88config MEDIA_DIGITAL_TV_SUPPORT 89 bool "Digital TV" 90 default y if !MEDIA_SUPPORT_FILTER 91 help 92 Enable digital TV support. 93 94 Say Y when you have a board with digital support or a board with 95 hybrid digital TV and analog TV. 96 97config MEDIA_RADIO_SUPPORT 98 bool "AM/FM radio receivers/transmitters" 99 default y if !MEDIA_SUPPORT_FILTER 100 help 101 Enable AM/FM radio support. 102 103 Additional info and docs are available on the web at 104 <https://linuxtv.org> 105 106 Say Y when you have a board with radio support. 107 108 Note: There are several TV cards that are based on chips that 109 support radio reception. Disabling this option will 110 disable support for them. 111 112config MEDIA_SDR_SUPPORT 113 bool "Software defined radio" 114 default y if !MEDIA_SUPPORT_FILTER 115 help 116 Enable software defined radio support. 117 118 Say Y when you have a software defined radio device. 119 120config MEDIA_PLATFORM_SUPPORT 121 bool "Platform-specific devices" 122 default y if !MEDIA_SUPPORT_FILTER 123 help 124 Enable support for complex cameras, codecs, and other hardware 125 that are integrated at the CPU, GPU or on Image Signalling Processor 126 and don't use PCI, USB or Firewire buses. 127 128 This is found on Embedded hardware (SoC), on V4L2 codecs and 129 on some GPU and newer CPU chipsets. 130 131 Say Y when you want to be able to see such devices. 132 133config MEDIA_TEST_SUPPORT 134 bool "Test drivers" 135 default y if !MEDIA_SUPPORT_FILTER 136 help 137 These drivers should not be used on production kernels, but 138 can be useful on debug ones. This option enables several dummy drivers 139 that simulate real hardware. Very useful to test userspace 140 applications and to validate if the subsystem core doesn't 141 have regressions. 142 143 Say Y if you want to use some virtual test driver. 144 145 In case of doubts, say N. 146 Say Y when you have a software defined radio device. 147endmenu # media device types 148 149 150menu "Media core support" 151 visible if !MEDIA_SUPPORT_FILTER 152 153config VIDEO_DEV 154 tristate "Video4Linux core" 155 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT 156 depends on (I2C || I2C=n) 157 select RATIONAL 158 select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE 159 help 160 Enables the V4L2 API, used by cameras, analog TV, video grabbers, 161 radio devices and by some input devices. 162 163config MEDIA_CONTROLLER 164 bool "Media Controller API" 165 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT 166 help 167 Enable the media controller API used to query media devices internal 168 topology and configure it dynamically. 169 170 This API is mostly used by camera interfaces in embedded platforms. 171 172# 173# DVB Core 174# Only enables if one of DTV is selected 175# 176 177config DVB_CORE 178 tristate "DVB Core" 179 depends on MEDIA_DIGITAL_TV_SUPPORT 180 depends on (I2C || I2C=n) 181 default MEDIA_DIGITAL_TV_SUPPORT 182 select CRC32 183 help 184 Enables the DVB API, used by Digital TV devices. Supports several 185 standards, including DVB, ATSC, ISDB and CMDB. 186 187endmenu # Media core support 188 189# 190# Extra per-media API core functionality 191 192menu "Video4Linux options" 193 visible if VIDEO_DEV 194 195source "drivers/media/v4l2-core/Kconfig" 196endmenu 197 198menu "Media controller options" 199 visible if MEDIA_CONTROLLER 200 201source "drivers/media/mc/Kconfig" 202endmenu 203 204menu "Digital TV options" 205 visible if DVB_CORE 206 207source "drivers/media/dvb-core/Kconfig" 208endmenu 209 210menu "Media drivers" 211 212comment "Drivers filtered as selected at 'Filter media drivers'" 213 depends on MEDIA_SUPPORT_FILTER 214 215comment "Media drivers" 216 217source "drivers/media/usb/Kconfig" 218source "drivers/media/pci/Kconfig" 219source "drivers/media/radio/Kconfig" 220 221if MEDIA_PLATFORM_SUPPORT 222source "drivers/media/platform/Kconfig" 223source "drivers/media/mmc/Kconfig" 224endif 225 226if MEDIA_TEST_SUPPORT 227source "drivers/media/test-drivers/Kconfig" 228endif 229 230source "drivers/media/firewire/Kconfig" 231 232# Common driver options 233source "drivers/media/common/Kconfig" 234 235endmenu 236 237# 238# Ancillary drivers (tuners, i2c, spi, frontends) 239# 240 241config MEDIA_HIDE_ANCILLARY_SUBDRV 242 bool 243 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT 244 default y 245 246menu "Media ancillary drivers" 247 248config MEDIA_ATTACH 249 bool 250 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 251 depends on MODULES 252 default MODULES 253 254source "drivers/media/i2c/Kconfig" 255source "drivers/media/spi/Kconfig" 256source "drivers/media/tuners/Kconfig" 257source "drivers/media/dvb-frontends/Kconfig" 258 259endmenu 260 261endif # MEDIA_SUPPORT 262