1 # SPDX-License-Identifier: GPL-2.0-only
3 # Multimedia device configuration
7 # NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT
9 source "drivers/media/rc/Kconfig"
10 source "drivers/media/cec/Kconfig"
12 menuconfig MEDIA_SUPPORT
13 tristate "Multimedia support"
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.
20 Additional info and docs are available on the web at
25 config MEDIA_SUPPORT_FILTER
26 bool "Filter media drivers"
27 depends on MEDIA_SUPPORT
28 default y if !EMBEDDED && !EXPERT
30 Configuring the media subsystem can be complex, as there are
31 hundreds of drivers and other config options.
33 This menu offers option that will help the Kernel's config
34 system to hide drivers that are out of the scope of the
35 user needs, and disabling core support for unused APIs.
37 If not selected, all non-optional media core functionality
38 needed to support media drivers will be enabled. Also, all
39 media device drivers should be shown.
41 config MEDIA_SUBDRV_AUTOSELECT
42 bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
46 default y if MEDIA_SUPPORT_FILTER
48 By default, a media driver auto-selects all possible ancillary
49 devices such as tuners, sensors, video encoders/decoders and
50 frontends, that are used by any of the supported devices.
52 This is generally the right thing to do, except when there
53 are strict constraints with regards to the kernel size,
54 like on embedded systems.
56 Use this option with care, as deselecting ancillary drivers which
57 are, in fact, necessary will result in the lack of the needed
58 functionality for your device (it may not tune or may not have
59 the needed demodulators).
63 menu "Media device types"
66 # Multimedia support - automatically enable V4L2 and DVB core
68 config MEDIA_CAMERA_SUPPORT
70 prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
71 default y if !MEDIA_SUPPORT_FILTER
73 Enable support for webcams and video grabbers.
75 Say Y when you have a webcam or a video capture grabber board.
77 config MEDIA_ANALOG_TV_SUPPORT
79 prompt "Analog TV" if MEDIA_SUPPORT_FILTER
80 default y if !MEDIA_SUPPORT_FILTER
82 Enable analog TV support.
84 Say Y when you have a TV board with analog support or with a
85 hybrid analog/digital TV chipset.
87 Note: There are several DVB cards that are based on chips that
88 support both analog and digital TV. Disabling this option
89 will disable support for them.
91 config MEDIA_DIGITAL_TV_SUPPORT
93 prompt "Digital TV" if MEDIA_SUPPORT_FILTER
94 default y if !MEDIA_SUPPORT_FILTER
96 Enable digital TV support.
98 Say Y when you have a board with digital support or a board with
99 hybrid digital TV and analog TV.
101 config MEDIA_RADIO_SUPPORT
103 prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
104 default y if !MEDIA_SUPPORT_FILTER
106 Enable AM/FM radio support.
108 Additional info and docs are available on the web at
109 <https://linuxtv.org>
111 Say Y when you have a board with radio support.
113 Note: There are several TV cards that are based on chips that
114 support radio reception. Disabling this option will
115 disable support for them.
117 config MEDIA_SDR_SUPPORT
119 prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
120 default y if !MEDIA_SUPPORT_FILTER
122 Enable software defined radio support.
124 Say Y when you have a software defined radio device.
126 config MEDIA_PLATFORM_SUPPORT
128 prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
129 default y if !MEDIA_SUPPORT_FILTER
131 Enable support for complex cameras, codecs, and other hardware
132 that are integrated at the CPU, GPU or on Image Signalling Processor
133 and don't use PCI, USB or Firewire buses.
135 This is found on Embedded hardware (SoC), on V4L2 codecs and
136 on some GPU and newer CPU chipsets.
138 Say Y when you want to be able so see such devices.
140 config MEDIA_TEST_SUPPORT
142 prompt "Test drivers" if MEDIA_SUPPORT_FILTER
143 default y if !MEDIA_SUPPORT_FILTER
145 Those drivers should not be used on production Kernels, but
146 can be useful on debug ones. It enables several dummy drivers
147 that simulate a real hardware. Very useful to test userspace
148 applications and to validate if the subsystem core is doesn't
151 Say Y if you want to use some virtual test driver.
153 In case of doubts, say N.
154 Say Y when you have a software defined radio device.
155 endmenu # media device types
158 menu "Media core support"
159 visible if !MEDIA_SUPPORT_FILTER
162 tristate "Video4Linux core"
163 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
165 Enables the V4L2 API, used by cameras, analog TV, video grabbers,
166 radio devices and by some input devices.
168 config MEDIA_CONTROLLER
169 bool "Media Controller API"
170 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
172 Enable the media controller API used to query media devices internal
173 topology and configure it dynamically.
175 This API is mostly used by camera interfaces in embedded platforms.
179 # Only enables if one of DTV is selected
184 depends on MEDIA_DIGITAL_TV_SUPPORT
185 depends on (I2C || I2C=n)
186 default MEDIA_DIGITAL_TV_SUPPORT
189 Enables the DVB API, used by Digital TV devices. Supports several
190 standards, including DVB, ATSC, ISDB and CMDB.
192 endmenu # Media core support
195 # Extra per-media API core functionality
197 menu "Video4Linux options"
200 source "drivers/media/v4l2-core/Kconfig"
203 menu "Media controller options"
204 visible if MEDIA_CONTROLLER
206 source "drivers/media/mc/Kconfig"
209 menu "Digital TV options"
212 source "drivers/media/dvb-core/Kconfig"
217 comment "Drivers filtered as selected at 'Filter media drivers'"
218 depends on MEDIA_SUPPORT_FILTER
220 source "drivers/media/usb/Kconfig"
221 source "drivers/media/pci/Kconfig"
222 source "drivers/media/radio/Kconfig"
224 # Common driver options
225 source "drivers/media/common/Kconfig"
227 if MEDIA_PLATFORM_SUPPORT
228 source "drivers/media/platform/Kconfig"
229 source "drivers/media/mmc/Kconfig"
232 if MEDIA_TEST_SUPPORT
233 source "drivers/media/test-drivers/Kconfig"
236 source "drivers/media/firewire/Kconfig"
241 # Ancillary drivers (tuners, i2c, spi, frontends)
244 config MEDIA_HIDE_ANCILLARY_SUBDRV
246 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
249 menu "Media ancillary drivers"
253 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
257 source "drivers/media/i2c/Kconfig"
258 source "drivers/media/spi/Kconfig"
259 source "drivers/media/tuners/Kconfig"
260 source "drivers/media/dvb-frontends/Kconfig"
264 endif # MEDIA_SUPPORT