Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 depends on MEDIA_SUPPORT
28 default y if !EMBEDDED && !EXPERT
29 help
30 Configuring the media subsystem can be complex, as there are
31 hundreds of drivers and other config options.
32
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.
36
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.
40
41config MEDIA_SUBDRV_AUTOSELECT
42 bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
43 depends on HAS_IOMEM
44 select I2C
45 select I2C_MUX
46 default y if MEDIA_SUPPORT_FILTER
47 help
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.
51
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.
55
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).
60
61 If unsure say Y.
62
63menu "Media device types"
64
65#
66# Multimedia support - automatically enable V4L2 and DVB core
67#
68config MEDIA_CAMERA_SUPPORT
69 bool
70 prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
71 default y if !MEDIA_SUPPORT_FILTER
72 help
73 Enable support for webcams and video grabbers.
74
75 Say Y when you have a webcam or a video capture grabber board.
76
77config MEDIA_ANALOG_TV_SUPPORT
78 bool
79 prompt "Analog TV" if MEDIA_SUPPORT_FILTER
80 default y if !MEDIA_SUPPORT_FILTER
81 help
82 Enable analog TV support.
83
84 Say Y when you have a TV board with analog support or with a
85 hybrid analog/digital TV chipset.
86
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.
90
91config MEDIA_DIGITAL_TV_SUPPORT
92 bool
93 prompt "Digital TV" if MEDIA_SUPPORT_FILTER
94 default y if !MEDIA_SUPPORT_FILTER
95 help
96 Enable digital TV support.
97
98 Say Y when you have a board with digital support or a board with
99 hybrid digital TV and analog TV.
100
101config MEDIA_RADIO_SUPPORT
102 bool
103 prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
104 default y if !MEDIA_SUPPORT_FILTER
105 help
106 Enable AM/FM radio support.
107
108 Additional info and docs are available on the web at
109 <https://linuxtv.org>
110
111 Say Y when you have a board with radio support.
112
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.
116
117config MEDIA_SDR_SUPPORT
118 bool
119 prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
120 default y if !MEDIA_SUPPORT_FILTER
121 help
122 Enable software defined radio support.
123
124 Say Y when you have a software defined radio device.
125
126config MEDIA_PLATFORM_SUPPORT
127 bool
128 prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
129 default y if !MEDIA_SUPPORT_FILTER
130 help
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.
134
135 This is found on Embedded hardware (SoC), on V4L2 codecs and
136 on some GPU and newer CPU chipsets.
137
138 Say Y when you want to be able so see such devices.
139
140config MEDIA_TEST_SUPPORT
141 bool
142 prompt "Test drivers" if MEDIA_SUPPORT_FILTER
143 default y if !MEDIA_SUPPORT_FILTER
144 help
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
149 have regressions.
150
151 Say Y if you want to use some virtual test driver.
152
153 In case of doubts, say N.
154 Say Y when you have a software defined radio device.
155endmenu # media device types
156
157
158menu "Media core support"
159 visible if !MEDIA_SUPPORT_FILTER
160
161config VIDEO_DEV
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
164 help
165 Enables the V4L2 API, used by cameras, analog TV, video grabbers,
166 radio devices and by some input devices.
167
168config MEDIA_CONTROLLER
169 bool "Media Controller API"
170 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
171 help
172 Enable the media controller API used to query media devices internal
173 topology and configure it dynamically.
174
175 This API is mostly used by camera interfaces in embedded platforms.
176
177#
178# DVB Core
179# Only enables if one of DTV is selected
180#
181
182config DVB_CORE
183 tristate
184 depends on MEDIA_DIGITAL_TV_SUPPORT
185 depends on (I2C || I2C=n)
186 default MEDIA_DIGITAL_TV_SUPPORT
187 select CRC32
188 help
189 Enables the DVB API, used by Digital TV devices. Supports several
190 standards, including DVB, ATSC, ISDB and CMDB.
191
192endmenu # Media core support
193
194#
195# Extra per-media API core functionality
196
197menu "Video4Linux options"
198 visible if VIDEO_DEV
199
200source "drivers/media/v4l2-core/Kconfig"
201endmenu
202
203menu "Media controller options"
204 visible if MEDIA_CONTROLLER
205
206source "drivers/media/mc/Kconfig"
207endmenu
208
209menu "Digital TV options"
210 visible if DVB_CORE
211
212source "drivers/media/dvb-core/Kconfig"
213endmenu
214
215menu "Media drivers"
216
217comment "Drivers filtered as selected at 'Filter media drivers'"
218 depends on MEDIA_SUPPORT_FILTER
219
220source "drivers/media/usb/Kconfig"
221source "drivers/media/pci/Kconfig"
222source "drivers/media/radio/Kconfig"
223
224# Common driver options
225source "drivers/media/common/Kconfig"
226
227if MEDIA_PLATFORM_SUPPORT
228source "drivers/media/platform/Kconfig"
229source "drivers/media/mmc/Kconfig"
230endif
231
232if MEDIA_TEST_SUPPORT
233source "drivers/media/test-drivers/Kconfig"
234endif
235
236source "drivers/media/firewire/Kconfig"
237
238endmenu
239
240#
241# Ancillary drivers (tuners, i2c, spi, frontends)
242#
243
244config MEDIA_HIDE_ANCILLARY_SUBDRV
245 bool
246 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
247 default y
248
249menu "Media ancillary drivers"
250
251config MEDIA_ATTACH
252 bool
253 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
254 depends on MODULES
255 default MODULES
256
257source "drivers/media/i2c/Kconfig"
258source "drivers/media/spi/Kconfig"
259source "drivers/media/tuners/Kconfig"
260source "drivers/media/dvb-frontends/Kconfig"
261
262endmenu
263
264endif # MEDIA_SUPPORT