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