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