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 !EMBEDDED && !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 help 157 Enables the V4L2 API, used by cameras, analog TV, video grabbers, 158 radio devices and by some input devices. 159 160config MEDIA_CONTROLLER 161 bool "Media Controller API" 162 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT 163 help 164 Enable the media controller API used to query media devices internal 165 topology and configure it dynamically. 166 167 This API is mostly used by camera interfaces in embedded platforms. 168 169# 170# DVB Core 171# Only enables if one of DTV is selected 172# 173 174config DVB_CORE 175 tristate "DVB Core" 176 depends on MEDIA_DIGITAL_TV_SUPPORT 177 depends on (I2C || I2C=n) 178 default MEDIA_DIGITAL_TV_SUPPORT 179 select CRC32 180 help 181 Enables the DVB API, used by Digital TV devices. Supports several 182 standards, including DVB, ATSC, ISDB and CMDB. 183 184endmenu # Media core support 185 186# 187# Extra per-media API core functionality 188 189menu "Video4Linux options" 190 visible if VIDEO_DEV 191 192source "drivers/media/v4l2-core/Kconfig" 193endmenu 194 195menu "Media controller options" 196 visible if MEDIA_CONTROLLER 197 198source "drivers/media/mc/Kconfig" 199endmenu 200 201menu "Digital TV options" 202 visible if DVB_CORE 203 204source "drivers/media/dvb-core/Kconfig" 205endmenu 206 207menu "Media drivers" 208 209comment "Drivers filtered as selected at 'Filter media drivers'" 210 depends on MEDIA_SUPPORT_FILTER 211 212source "drivers/media/usb/Kconfig" 213source "drivers/media/pci/Kconfig" 214source "drivers/media/radio/Kconfig" 215 216# Common driver options 217source "drivers/media/common/Kconfig" 218 219if MEDIA_PLATFORM_SUPPORT 220source "drivers/media/platform/Kconfig" 221source "drivers/media/mmc/Kconfig" 222endif 223 224if MEDIA_TEST_SUPPORT 225source "drivers/media/test-drivers/Kconfig" 226endif 227 228source "drivers/media/firewire/Kconfig" 229 230endmenu 231 232# 233# Ancillary drivers (tuners, i2c, spi, frontends) 234# 235 236config MEDIA_HIDE_ANCILLARY_SUBDRV 237 bool 238 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT 239 default y 240 241menu "Media ancillary drivers" 242 243config MEDIA_ATTACH 244 bool 245 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 246 depends on MODULES 247 default MODULES 248 249source "drivers/media/i2c/Kconfig" 250source "drivers/media/spi/Kconfig" 251source "drivers/media/tuners/Kconfig" 252source "drivers/media/dvb-frontends/Kconfig" 253 254endmenu 255 256endif # MEDIA_SUPPORT 257