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 MEDIA_CONTROLLER 140 bool "Media Controller API" 141 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT 142 help 143 Enable the media controller API used to query media devices internal 144 topology and configure it dynamically. 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 164 help 165 166 167 168 169source "drivers/media/v4l2-core/Kconfig" 170source "drivers/media/mc/Kconfig" 171source "drivers/media/dvb-core/Kconfig" 172source "drivers/media/cec/Kconfig" 173 174comment "Media drivers" 175 176comment "Drivers filtered as selected at 'Filter media drivers'" 177 depends on MEDIA_SUPPORT_FILTER 178 179source "drivers/media/usb/Kconfig" 180source "drivers/media/pci/Kconfig" 181source "drivers/media/radio/Kconfig" 182 183# Common driver options 184source "drivers/media/common/Kconfig" 185 186if MEDIA_PLATFORM_SUPPORT 187source "drivers/media/platform/Kconfig" 188source "drivers/media/test_drivers/Kconfig" 189source "drivers/media/mmc/Kconfig" 190endif 191 192source "drivers/media/firewire/Kconfig" 193 194comment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)" 195 196# 197# Ancillary drivers (tuners, i2c, spi, frontends) 198# 199 200config MEDIA_SUBDRV_AUTOSELECT 201 bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" 202 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT 203 depends on HAS_IOMEM 204 select I2C 205 select I2C_MUX 206 default y if !EMBEDDED 207 help 208 By default, a media driver auto-selects all possible ancillary 209 devices such as tuners, sensors, video encoders/decoders and 210 frontends, that are used by any of the supported devices. 211 212 This is generally the right thing to do, except when there 213 are strict constraints with regards to the kernel size, 214 like on embedded systems. 215 216 Use this option with care, as deselecting ancillary drivers which 217 are, in fact, necessary will result in the lack of the needed 218 functionality for your device (it may not tune or may not have 219 the needed demodulators). 220 221 If unsure say Y. 222 223config MEDIA_HIDE_ANCILLARY_SUBDRV 224 bool 225 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT 226 default y 227 228config MEDIA_ATTACH 229 bool 230 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 231 depends on MODULES 232 default MODULES 233 234source "drivers/media/i2c/Kconfig" 235source "drivers/media/spi/Kconfig" 236source "drivers/media/tuners/Kconfig" 237source "drivers/media/dvb-frontends/Kconfig" 238 239endif # MEDIA_SUPPORT 240