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"
29 Configuring the media subsystem can be complex, as there are
30 hundreds of drivers and other config options.
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.
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.
40 config MEDIA_SUBDRV_AUTOSELECT
41 bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
45 default y if MEDIA_SUPPORT_FILTER
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.
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.
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).
62 menu "Media device types"
65 # Multimedia support - automatically enable V4L2 and DVB core
67 config MEDIA_CAMERA_SUPPORT
69 prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
70 default y if !MEDIA_SUPPORT_FILTER
72 Enable support for webcams and video grabbers.
74 Say Y when you have a webcam or a video capture grabber board.
76 config MEDIA_ANALOG_TV_SUPPORT
78 prompt "Analog TV" if MEDIA_SUPPORT_FILTER
79 default y if !MEDIA_SUPPORT_FILTER
81 Enable analog TV support.
83 Say Y when you have a TV board with analog support or with a
84 hybrid analog/digital TV chipset.
86 Note: There are several DVB cards that are based on chips that
87 support both analog and digital TV. Disabling this option
88 will disable support for them.
90 config MEDIA_DIGITAL_TV_SUPPORT
92 prompt "Digital TV" if MEDIA_SUPPORT_FILTER
93 default y if !MEDIA_SUPPORT_FILTER
95 Enable digital TV support.
97 Say Y when you have a board with digital support or a board with
98 hybrid digital TV and analog TV.
100 config MEDIA_RADIO_SUPPORT
102 prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
103 default y if !MEDIA_SUPPORT_FILTER
105 Enable AM/FM radio support.
107 Additional info and docs are available on the web at
108 <https://linuxtv.org>
110 Say Y when you have a board with radio support.
112 Note: There are several TV cards that are based on chips that
113 support radio reception. Disabling this option will
114 disable support for them.
116 config MEDIA_SDR_SUPPORT
118 prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
119 default y if !MEDIA_SUPPORT_FILTER
121 Enable software defined radio support.
123 Say Y when you have a software defined radio device.
125 config MEDIA_PLATFORM_SUPPORT
127 prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
128 default y if !MEDIA_SUPPORT_FILTER
130 Enable support for complex cameras, codecs, and other hardware
131 that are integrated at the CPU, GPU or on Image Signalling Processor
132 and don't use PCI, USB or Firewire buses.
134 This is found on Embedded hardware (SoC), on V4L2 codecs and
135 on some GPU and newer CPU chipsets.
137 Say Y when you want to be able to see such devices.
139 config MEDIA_TEST_SUPPORT
141 prompt "Test drivers" if MEDIA_SUPPORT_FILTER
142 default y if !MEDIA_SUPPORT_FILTER
144 These drivers should not be used on production kernels, but
145 can be useful on debug ones. This option enables several dummy drivers
146 that simulate real hardware. Very useful to test userspace
147 applications and to validate if the subsystem core doesn't
150 Say Y if you want to use some virtual test driver.
152 In case of doubts, say N.
153 Say Y when you have a software defined radio device.
154 endmenu # media device types
157 menu "Media core support"
158 visible if !MEDIA_SUPPORT_FILTER
161 tristate "Video4Linux core"
162 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
163 depends on (I2C || I2C=n)
165 select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE
167 Enables the V4L2 API, used by cameras, analog TV, video grabbers,
168 radio devices and by some input devices.
170 config MEDIA_CONTROLLER
171 bool "Media Controller API"
172 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
174 Enable the media controller API used to query media devices internal
175 topology and configure it dynamically.
177 This API is mostly used by camera interfaces in embedded platforms.
181 # Only enables if one of DTV is selected
186 depends on MEDIA_DIGITAL_TV_SUPPORT
187 depends on (I2C || I2C=n)
188 default MEDIA_DIGITAL_TV_SUPPORT
191 Enables the DVB API, used by Digital TV devices. Supports several
192 standards, including DVB, ATSC, ISDB and CMDB.
194 endmenu # Media core support
197 # Extra per-media API core functionality
199 menu "Video4Linux options"
202 source "drivers/media/v4l2-core/Kconfig"
205 menu "Media controller options"
206 visible if MEDIA_CONTROLLER
208 source "drivers/media/mc/Kconfig"
211 menu "Digital TV options"
214 source "drivers/media/dvb-core/Kconfig"
219 comment "Drivers filtered as selected at 'Filter media drivers'"
220 depends on MEDIA_SUPPORT_FILTER
222 comment "Media drivers"
224 source "drivers/media/usb/Kconfig"
225 source "drivers/media/pci/Kconfig"
226 source "drivers/media/radio/Kconfig"
228 if MEDIA_PLATFORM_SUPPORT
229 source "drivers/media/platform/Kconfig"
230 source "drivers/media/mmc/Kconfig"
233 if MEDIA_TEST_SUPPORT
234 source "drivers/media/test-drivers/Kconfig"
237 source "drivers/media/firewire/Kconfig"
239 # Common driver options
240 source "drivers/media/common/Kconfig"
245 # Ancillary drivers (tuners, i2c, spi, frontends)
248 config MEDIA_HIDE_ANCILLARY_SUBDRV
250 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
253 menu "Media ancillary drivers"
257 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
261 source "drivers/media/i2c/Kconfig"
262 source "drivers/media/spi/Kconfig"
263 source "drivers/media/tuners/Kconfig"
264 source "drivers/media/dvb-frontends/Kconfig"
268 endif # MEDIA_SUPPORT