1# SPDX-License-Identifier: GPL-2.0-only 2# 3# Multimedia device configuration 4# 5 6config CEC_CORE 7 tristate 8 9config CEC_NOTIFIER 10 bool 11 12config CEC_PIN 13 bool 14 15source "drivers/media/rc/Kconfig" 16 17menuconfig MEDIA_SUPPORT 18 tristate "Multimedia support" 19 depends on HAS_IOMEM 20 help 21 If you want to use Webcams, Video grabber devices and/or TV devices 22 enable this option and other options below. 23 Additional info and docs are available on the web at 24 <https://linuxtv.org> 25 26if MEDIA_SUPPORT 27 28comment "Multimedia core support" 29 30# 31# Multimedia support - automatically enable V4L2 and DVB core 32# 33config MEDIA_CAMERA_SUPPORT 34 bool "Cameras/video grabbers support" 35 help 36 Enable support for webcams and video grabbers. 37 38 Say Y when you have a webcam or a video capture grabber board. 39 40config MEDIA_ANALOG_TV_SUPPORT 41 bool "Analog TV support" 42 help 43 Enable analog TV support. 44 45 Say Y when you have a TV board with analog support or with a 46 hybrid analog/digital TV chipset. 47 48 Note: There are several DVB cards that are based on chips that 49 support both analog and digital TV. Disabling this option 50 will disable support for them. 51 52config MEDIA_DIGITAL_TV_SUPPORT 53 bool "Digital TV support" 54 help 55 Enable digital TV support. 56 57 Say Y when you have a board with digital support or a board with 58 hybrid digital TV and analog TV. 59 60config MEDIA_RADIO_SUPPORT 61 bool "AM/FM radio receivers/transmitters support" 62 help 63 Enable AM/FM radio support. 64 65 Additional info and docs are available on the web at 66 <https://linuxtv.org> 67 68 Say Y when you have a board with radio support. 69 70 Note: There are several TV cards that are based on chips that 71 support radio reception. Disabling this option will 72 disable support for them. 73 74config MEDIA_SDR_SUPPORT 75 bool "Software defined radio support" 76 help 77 Enable software defined radio support. 78 79 Say Y when you have a software defined radio device. 80 81config MEDIA_CEC_SUPPORT 82 bool "HDMI CEC support" 83 help 84 Enable support for HDMI CEC (Consumer Electronics Control), 85 which is an optional HDMI feature. 86 87 Say Y when you have an HDMI receiver, transmitter or a USB CEC 88 adapter that supports HDMI CEC. 89 90source "drivers/media/cec/Kconfig" 91 92# 93# Media controller 94# Selectable only for webcam/grabbers, as other drivers don't use it 95# 96 97config MEDIA_CONTROLLER 98 bool "Media Controller API" 99 depends on MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT 100 help 101 Enable the media controller API used to query media devices internal 102 topology and configure it dynamically. 103 104 This API is mostly used by camera interfaces in embedded platforms. 105 106config MEDIA_CONTROLLER_DVB 107 bool "Enable Media controller for DVB (EXPERIMENTAL)" 108 depends on MEDIA_CONTROLLER && DVB_CORE 109 help 110 Enable the media controller API support for DVB. 111 112 This is currently experimental. 113 114config MEDIA_CONTROLLER_REQUEST_API 115 bool "Enable Media controller Request API (EXPERIMENTAL)" 116 depends on MEDIA_CONTROLLER && STAGING_MEDIA 117 default n 118 help 119 DO NOT ENABLE THIS OPTION UNLESS YOU KNOW WHAT YOU'RE DOING. 120 121 This option enables the Request API for the Media controller and V4L2 122 interfaces. It is currently needed by a few stateless codec drivers. 123 124 There is currently no intention to provide API or ABI stability for 125 this new API as of yet. 126 127# 128# Video4Linux support 129# Only enables if one of the V4L2 types (ATV, webcam, radio) is selected 130# 131 132config VIDEO_DEV 133 tristate 134 depends on MEDIA_SUPPORT 135 depends on MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT 136 default y 137 138config VIDEO_V4L2_SUBDEV_API 139 bool "V4L2 sub-device userspace API" 140 depends on VIDEO_DEV && MEDIA_CONTROLLER 141 help 142 Enables the V4L2 sub-device pad-level userspace API used to configure 143 video format, size and frame rate between hardware blocks. 144 145 This API is mostly used by camera interfaces in embedded platforms. 146 147source "drivers/media/v4l2-core/Kconfig" 148 149# 150# DVB Core 151# Only enables if one of DTV is selected 152# 153 154config DVB_CORE 155 tristate 156 depends on MEDIA_SUPPORT 157 depends on MEDIA_DIGITAL_TV_SUPPORT 158 depends on (I2C || I2C=n) 159 default y 160 select CRC32 161 162config DVB_MMAP 163 bool "Enable DVB memory-mapped API (EXPERIMENTAL)" 164 depends on DVB_CORE 165 depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE 166 select VIDEOBUF2_VMALLOC 167 default n 168 help 169 This option enables DVB experimental memory-mapped API, which 170 reduces the number of context switches to read DVB buffers, as 171 the buffers can use mmap() syscalls. 172 173 Support for it is experimental. Use with care. If unsure, 174 say N. 175 176config DVB_NET 177 bool "DVB Network Support" 178 default (NET && INET) 179 depends on NET && INET && DVB_CORE 180 help 181 This option enables DVB Network Support which is a part of the DVB 182 standard. It is used, for example, by automatic firmware updates used 183 on Set-Top-Boxes. It can also be used to access the Internet via the 184 DVB card, if the network provider supports it. 185 186 You may want to disable the network support on embedded devices. If 187 unsure say Y. 188 189# This Kconfig option is used by both PCI and USB drivers 190config TTPCI_EEPROM 191 tristate 192 depends on I2C 193 default n 194 195source "drivers/media/dvb-core/Kconfig" 196 197comment "Media drivers" 198 199# 200# V4L platform/mem2mem drivers 201# 202 203source "drivers/media/usb/Kconfig" 204source "drivers/media/pci/Kconfig" 205source "drivers/media/platform/Kconfig" 206source "drivers/media/mmc/Kconfig" 207source "drivers/media/radio/Kconfig" 208 209comment "Supported FireWire (IEEE 1394) Adapters" 210 depends on DVB_CORE && FIREWIRE 211source "drivers/media/firewire/Kconfig" 212 213# Common driver options 214source "drivers/media/common/Kconfig" 215 216comment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)" 217 218# 219# Ancillary drivers (tuners, i2c, spi, frontends) 220# 221 222config MEDIA_SUBDRV_AUTOSELECT 223 bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" 224 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT 225 depends on HAS_IOMEM 226 select I2C 227 select I2C_MUX 228 default y 229 help 230 By default, a media driver auto-selects all possible ancillary 231 devices such as tuners, sensors, video encoders/decoders and 232 frontends, that are used by any of the supported devices. 233 234 This is generally the right thing to do, except when there 235 are strict constraints with regards to the kernel size, 236 like on embedded systems. 237 238 Use this option with care, as deselecting ancillary drivers which 239 are, in fact, necessary will result in the lack of the needed 240 functionality for your device (it may not tune or may not have 241 the needed demodulators). 242 243 If unsure say Y. 244 245config MEDIA_ATTACH 246 bool 247 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 248 depends on MODULES 249 default MODULES 250 251source "drivers/media/i2c/Kconfig" 252source "drivers/media/spi/Kconfig" 253source "drivers/media/tuners/Kconfig" 254source "drivers/media/dvb-frontends/Kconfig" 255 256endif # MEDIA_SUPPORT 257