Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
[linux-2.6-microblaze.git] / drivers / media / Kconfig
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 #
9 source "drivers/media/rc/Kconfig"
10 source "drivers/media/cec/Kconfig"
11
12 menuconfig 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
23 if MEDIA_SUPPORT
24
25 config 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
41 config 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
63 menu "Media device types"
64
65 #
66 # Multimedia support - automatically enable V4L2 and DVB core
67 #
68 config 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
77 config 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
91 config 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
101 config 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
117 config 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
126 config 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
140 config 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.
155 endmenu # media device types
156
157
158 menu "Media core support"
159         visible if !MEDIA_SUPPORT_FILTER
160
161 config 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
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
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
182 config 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
192 endmenu # Media core support
193
194 #
195 # Extra per-media API core functionality
196
197 menu "Video4Linux options"
198         visible if VIDEO_DEV
199
200 source "drivers/media/v4l2-core/Kconfig"
201 endmenu
202
203 menu "Media controller options"
204         visible if MEDIA_CONTROLLER
205
206 source "drivers/media/mc/Kconfig"
207 endmenu
208
209 menu "Digital TV options"
210         visible if DVB_CORE
211
212 source "drivers/media/dvb-core/Kconfig"
213 endmenu
214
215 menu "Media drivers"
216
217 comment "Drivers filtered as selected at 'Filter media drivers'"
218         depends on MEDIA_SUPPORT_FILTER
219
220 source "drivers/media/usb/Kconfig"
221 source "drivers/media/pci/Kconfig"
222 source "drivers/media/radio/Kconfig"
223
224 # Common driver options
225 source "drivers/media/common/Kconfig"
226
227 if MEDIA_PLATFORM_SUPPORT
228 source "drivers/media/platform/Kconfig"
229 source "drivers/media/mmc/Kconfig"
230 endif
231
232 if MEDIA_TEST_SUPPORT
233 source "drivers/media/test-drivers/Kconfig"
234 endif
235
236 source "drivers/media/firewire/Kconfig"
237
238 endmenu
239
240 #
241 # Ancillary drivers (tuners, i2c, spi, frontends)
242 #
243
244 config MEDIA_HIDE_ANCILLARY_SUBDRV
245         bool
246         depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
247         default y
248
249 menu "Media ancillary drivers"
250
251 config 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
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"
261
262 endmenu
263
264 endif # MEDIA_SUPPORT