xref: /openbmc/linux/drivers/media/Kconfig (revision 8164ab87)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Multimedia device configuration
4#
5
6source "drivers/media/rc/Kconfig"
7
8menuconfig MEDIA_SUPPORT
9	tristate "Multimedia support"
10	depends on HAS_IOMEM
11	help
12	  If you want to use media devices, including Webcams, Video grabber
13	  devices and/or TV devices, V4L2 codecs, etc, enable this option
14	  and other options below.
15
16	  Additional info and docs are available on the web at
17	  <https://linuxtv.org>
18
19if MEDIA_SUPPORT
20
21config MEDIA_SUPPORT_FILTER
22	bool "Filter media drivers"
23	depends on MEDIA_SUPPORT
24	help
25	   Configuring the media subsystem can be complex, as there are
26	   hundreds of drivers and other config options.
27
28	   This menu offers option that will help the Kernel's config
29	   system to hide drivers that are out of the scope of the
30	   user needs, and disabling core support for unused APIs.
31
32	   If not selected, all non-optional media core functionality
33	   needed to support media drivers will be enabled. Also, all
34	   media device drivers should be shown.
35
36menu "Media device types"
37	visible if MEDIA_SUPPORT_FILTER
38
39#
40# Multimedia support - automatically enable V4L2 and DVB core
41#
42config MEDIA_CAMERA_SUPPORT
43	bool "Cameras and video grabbers"
44	default y if !MEDIA_SUPPORT_FILTER
45	help
46	  Enable support for webcams and video grabbers.
47
48	  Say Y when you have a webcam or a video capture grabber board.
49
50config MEDIA_ANALOG_TV_SUPPORT
51	bool "Analog TV"
52	default y if !MEDIA_SUPPORT_FILTER
53	help
54	  Enable analog TV support.
55
56	  Say Y when you have a board with analog TV support.
57
58config MEDIA_DIGITAL_TV_SUPPORT
59	bool "Digital TV"
60	default y if !MEDIA_SUPPORT_FILTER
61	help
62	  Enable digital TV support.
63
64	  Say Y when you have a board with digital TV support.
65
66config MEDIA_RADIO_SUPPORT
67	bool "AM/FM radio receivers/transmitters"
68	default y if !MEDIA_SUPPORT_FILTER
69	help
70	  Enable AM/FM radio support.
71
72	  Additional info and docs are available on the web at
73	  <https://linuxtv.org>
74
75	  Say Y when you have a board with radio support.
76
77config MEDIA_SDR_SUPPORT
78	bool "Software defined radio"
79	default y if !MEDIA_SUPPORT_FILTER
80	help
81	  Enable software defined radio support.
82
83	  Say Y when you have a software defined radio device.
84
85config MEDIA_CEC_SUPPORT
86	bool "HDMI CEC"
87	default y if !MEDIA_SUPPORT_FILTER
88	help
89	  Enable support for HDMI CEC (Consumer Electronics Control),
90	  which is an optional HDMI feature.
91
92	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
93	  adapter that supports HDMI CEC.
94
95config MEDIA_PLATFORM_SUPPORT
96	bool "Platform-specific devices"
97	default y if !MEDIA_SUPPORT_FILTER
98	help
99	  Enable support for complex cameras, codecs, and other hardware
100	  that are integrated at the CPU, GPU or on Image Signalling Processor
101	  and don't use PCI, USB or Firewire buses.
102
103	  This is found on Embedded hardware (SoC), on V4L2 codecs and
104	  on some GPU and newer CPU chipsets.
105
106	  Say Y when you want to be able so see such devices.
107
108config MEDIA_TEST_SUPPORT
109	bool "Test drivers"
110	default y if !MEDIA_SUPPORT_FILTER
111	help
112	  Those drivers should not be used on production Kernels, but
113	  can be useful on debug ones. It enables several dummy drivers
114	  that simulate a real hardware. Very useful to test userspace
115	  applications and to validate if the subsystem core is doesn't
116	  have regressions.
117
118	  Say Y if you want to use some virtual test driver.
119
120	  In case of doubts, say N.
121	  Say Y when you have a software defined radio device.
122endmenu # media device types
123
124comment "Multimedia core features"
125
126#
127# Video4Linux support
128#	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
129#
130
131comment "Video4Linux core enabled to support hybrid TV devices"
132	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
133
134config VIDEO_DEV
135	tristate
136	prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
137	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT || MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
138
139#
140# DVB Core
141#	Only enables if one of DTV is selected
142#
143
144comment "Digital TV core enabled to support hybrid TV devices"
145	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
146
147config DVB_CORE
148	tristate
149	prompt "Digital TV core"  if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
150	depends on MEDIA_DIGITAL_TV_SUPPORT
151	depends on (I2C || I2C=n)
152	default y
153	select CRC32
154
155	help
156
157
158
159
160source "drivers/media/v4l2-core/Kconfig"
161source "drivers/media/mc/Kconfig"
162source "drivers/media/dvb-core/Kconfig"
163source "drivers/media/cec/Kconfig"
164
165comment "Media drivers"
166
167comment "Drivers filtered as selected at 'Filter media drivers'"
168	depends on MEDIA_SUPPORT_FILTER
169
170source "drivers/media/usb/Kconfig"
171source "drivers/media/pci/Kconfig"
172source "drivers/media/radio/Kconfig"
173
174# Common driver options
175source "drivers/media/common/Kconfig"
176
177if MEDIA_PLATFORM_SUPPORT
178source "drivers/media/platform/Kconfig"
179source "drivers/media/test_drivers/Kconfig"
180source "drivers/media/mmc/Kconfig"
181endif
182
183source "drivers/media/firewire/Kconfig"
184
185comment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"
186
187#
188# Ancillary drivers (tuners, i2c, spi, frontends)
189#
190
191config MEDIA_SUBDRV_AUTOSELECT
192	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
193	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT
194	depends on HAS_IOMEM
195	select I2C
196	select I2C_MUX
197	default y if !EMBEDDED
198	help
199	  By default, a media driver auto-selects all possible ancillary
200	  devices such as tuners, sensors, video encoders/decoders and
201	  frontends, that are used by any of the supported devices.
202
203	  This is generally the right thing to do, except when there
204	  are strict constraints with regards to the kernel size,
205	  like on embedded systems.
206
207	  Use this option with care, as deselecting ancillary drivers which
208	  are, in fact, necessary will result in the lack of the needed
209	  functionality for your device (it may not tune or may not have
210	  the needed demodulators).
211
212	  If unsure say Y.
213
214config MEDIA_HIDE_ANCILLARY_SUBDRV
215	bool
216	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
217	default y
218
219config MEDIA_ATTACH
220	bool
221	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
222	depends on MODULES
223	default MODULES
224
225source "drivers/media/i2c/Kconfig"
226source "drivers/media/spi/Kconfig"
227source "drivers/media/tuners/Kconfig"
228source "drivers/media/dvb-frontends/Kconfig"
229
230endif # MEDIA_SUPPORT
231