• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "Cameras and video grabbers"
70	default y if !MEDIA_SUPPORT_FILTER
71	help
72	  Enable support for webcams and video grabbers.
73
74	  Say Y when you have a webcam or a video capture grabber board.
75
76config MEDIA_ANALOG_TV_SUPPORT
77	bool "Analog TV"
78	default y if !MEDIA_SUPPORT_FILTER
79	help
80	  Enable analog TV support.
81
82	  Say Y when you have a TV board with analog support or with a
83	  hybrid analog/digital TV chipset.
84
85	  Note: There are several DVB cards that are based on chips that
86		support both analog and digital TV. Disabling this option
87		will disable support for them.
88
89config MEDIA_DIGITAL_TV_SUPPORT
90	tristate "Digital TV"
91	default y if !MEDIA_SUPPORT_FILTER
92	help
93	  Enable digital TV support.
94
95	  Say Y when you have a board with digital support or a board with
96	  hybrid digital TV and analog TV.
97
98config MEDIA_RADIO_SUPPORT
99	bool "AM/FM radio receivers/transmitters"
100	default y if !MEDIA_SUPPORT_FILTER
101	help
102	  Enable AM/FM radio support.
103
104	  Additional info and docs are available on the web at
105	  <https://linuxtv.org>
106
107	  Say Y when you have a board with radio support.
108
109	  Note: There are several TV cards that are based on chips that
110		support radio reception. Disabling this option will
111		disable support for them.
112
113config MEDIA_SDR_SUPPORT
114	bool "Software defined radio"
115	default y if !MEDIA_SUPPORT_FILTER
116	help
117	  Enable software defined radio support.
118
119	  Say Y when you have a software defined radio device.
120
121config MEDIA_PLATFORM_SUPPORT
122	bool "Platform-specific devices"
123	default y if !MEDIA_SUPPORT_FILTER
124	help
125	  Enable support for complex cameras, codecs, and other hardware
126	  that are integrated at the CPU, GPU or on Image Signalling Processor
127	  and don't use PCI, USB or Firewire buses.
128
129	  This is found on Embedded hardware (SoC), on V4L2 codecs and
130	  on some GPU and newer CPU chipsets.
131
132	  Say Y when you want to be able so see such devices.
133
134config MEDIA_TEST_SUPPORT
135	bool "Test drivers"
136	default y if !MEDIA_SUPPORT_FILTER
137	help
138	  These drivers should not be used on production kernels, but
139	  can be useful on debug ones. This option enables several dummy drivers
140	  that simulate real hardware. Very useful to test userspace
141	  applications and to validate if the subsystem core doesn't
142	  have regressions.
143
144	  Say Y if you want to use some virtual test driver.
145
146	  In case of doubts, say N.
147	  Say Y when you have a software defined radio device.
148endmenu # media device types
149
150
151menu "Media core support"
152	visible if !MEDIA_SUPPORT_FILTER
153
154config VIDEO_DEV
155	tristate "Video4Linux core"
156	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
157	help
158	  Enables the V4L2 API, used by cameras, analog TV, video grabbers,
159	  radio devices and by some input devices.
160
161config MEDIA_CONTROLLER
162	bool "Media Controller API"
163	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
164	help
165	  Enable the media controller API used to query media devices internal
166	  topology and configure it dynamically.
167
168	  This API is mostly used by camera interfaces in embedded platforms.
169
170#
171# DVB Core
172#	Only enables if one of DTV is selected
173#
174
175config DVB_CORE
176	tristate
177	depends on MEDIA_DIGITAL_TV_SUPPORT
178	depends on (I2C || I2C=n)
179	default MEDIA_DIGITAL_TV_SUPPORT
180	select CRC32
181	help
182	  Enables the DVB API, used by Digital TV devices. Supports several
183	  standards, including DVB, ATSC, ISDB and CMDB.
184
185endmenu # Media core support
186
187#
188# Extra per-media API core functionality
189
190menu "Video4Linux options"
191	visible if VIDEO_DEV
192
193source "drivers/media/v4l2-core/Kconfig"
194endmenu
195
196menu "Media controller options"
197	visible if MEDIA_CONTROLLER
198
199source "drivers/media/mc/Kconfig"
200endmenu
201
202menu "Digital TV options"
203	visible if DVB_CORE
204
205source "drivers/media/dvb-core/Kconfig"
206endmenu
207
208menu "Media drivers"
209
210comment "Drivers filtered as selected at 'Filter media drivers'"
211	depends on MEDIA_SUPPORT_FILTER
212
213source "drivers/media/usb/Kconfig"
214source "drivers/media/pci/Kconfig"
215source "drivers/media/radio/Kconfig"
216
217# Common driver options
218source "drivers/media/common/Kconfig"
219
220if MEDIA_PLATFORM_SUPPORT
221source "drivers/media/platform/Kconfig"
222source "drivers/media/mmc/Kconfig"
223endif
224
225if MEDIA_TEST_SUPPORT
226source "drivers/media/test-drivers/Kconfig"
227endif
228
229source "drivers/media/firewire/Kconfig"
230
231endmenu
232
233#
234# Ancillary drivers (tuners, i2c, spi, frontends)
235#
236
237config MEDIA_HIDE_ANCILLARY_SUBDRV
238	bool
239	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
240	default y
241
242menu "Media ancillary drivers"
243
244config MEDIA_ATTACH
245	bool
246	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
247	depends on MODULES
248	default MODULES
249
250source "drivers/media/i2c/Kconfig"
251source "drivers/media/spi/Kconfig"
252source "drivers/media/tuners/Kconfig"
253source "drivers/media/dvb-frontends/Kconfig"
254
255endmenu
256
257endif # MEDIA_SUPPORT
258