xref: /openbmc/linux/drivers/media/Kconfig (revision 8fc42fff)
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
139config MEDIA_CONTROLLER
140	bool "Media Controller API"
141	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
142	help
143	  Enable the media controller API used to query media devices internal
144	  topology and configure it dynamically.
145
146	  This API is mostly used by camera interfaces in embedded platforms.
147
148#
149# DVB Core
150#	Only enables if one of DTV is selected
151#
152
153comment "Digital TV core enabled to support hybrid TV devices"
154	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
155
156config DVB_CORE
157	tristate
158	prompt "Digital TV core"  if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
159	depends on MEDIA_DIGITAL_TV_SUPPORT
160	depends on (I2C || I2C=n)
161	default y
162	select CRC32
163
164	help
165
166
167
168
169source "drivers/media/v4l2-core/Kconfig"
170source "drivers/media/mc/Kconfig"
171source "drivers/media/dvb-core/Kconfig"
172source "drivers/media/cec/Kconfig"
173
174comment "Media drivers"
175
176comment "Drivers filtered as selected at 'Filter media drivers'"
177	depends on MEDIA_SUPPORT_FILTER
178
179source "drivers/media/usb/Kconfig"
180source "drivers/media/pci/Kconfig"
181source "drivers/media/radio/Kconfig"
182
183# Common driver options
184source "drivers/media/common/Kconfig"
185
186if MEDIA_PLATFORM_SUPPORT
187source "drivers/media/platform/Kconfig"
188source "drivers/media/test_drivers/Kconfig"
189source "drivers/media/mmc/Kconfig"
190endif
191
192source "drivers/media/firewire/Kconfig"
193
194comment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"
195
196#
197# Ancillary drivers (tuners, i2c, spi, frontends)
198#
199
200config MEDIA_SUBDRV_AUTOSELECT
201	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
202	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT
203	depends on HAS_IOMEM
204	select I2C
205	select I2C_MUX
206	default y if !EMBEDDED
207	help
208	  By default, a media driver auto-selects all possible ancillary
209	  devices such as tuners, sensors, video encoders/decoders and
210	  frontends, that are used by any of the supported devices.
211
212	  This is generally the right thing to do, except when there
213	  are strict constraints with regards to the kernel size,
214	  like on embedded systems.
215
216	  Use this option with care, as deselecting ancillary drivers which
217	  are, in fact, necessary will result in the lack of the needed
218	  functionality for your device (it may not tune or may not have
219	  the needed demodulators).
220
221	  If unsure say Y.
222
223config MEDIA_HIDE_ANCILLARY_SUBDRV
224	bool
225	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
226	default y
227
228config MEDIA_ATTACH
229	bool
230	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
231	depends on MODULES
232	default MODULES
233
234source "drivers/media/i2c/Kconfig"
235source "drivers/media/spi/Kconfig"
236source "drivers/media/tuners/Kconfig"
237source "drivers/media/dvb-frontends/Kconfig"
238
239endif # MEDIA_SUPPORT
240