]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blame - drivers/media/Kconfig
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[mirror_ubuntu-jammy-kernel.git] / drivers / media / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
1da177e4
LT
2#
3# Multimedia device configuration
4#
5
9393d050 6#
46d2a3b9 7# NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT
9393d050 8#
b9e1486e 9source "drivers/media/rc/Kconfig"
46d2a3b9 10source "drivers/media/cec/Kconfig"
b9e1486e 11
ab482a6c
RD
12menuconfig MEDIA_SUPPORT
13 tristate "Multimedia support"
e25df120 14 depends on HAS_IOMEM
ab482a6c 15 help
dee1877d
MCC
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
b4c184e5 20 Additional info and docs are available on the web at
991ce92f 21 <https://linuxtv.org>
ab482a6c 22
c6774ee0
MCC
23if MEDIA_SUPPORT
24
25config MEDIA_SUPPORT_FILTER
ce971d95 26 bool "Filter media drivers"
b0cd4fb2 27 default y if !EMBEDDED && !EXPERT
c6774ee0
MCC
28 help
29 Configuring the media subsystem can be complex, as there are
30 hundreds of drivers and other config options.
31
32 This menu offers option that will help the Kernel's config
33 system to hide drivers that are out of the scope of the
34 user needs, and disabling core support for unused APIs.
35
36 If not selected, all non-optional media core functionality
37 needed to support media drivers will be enabled. Also, all
38 media device drivers should be shown.
39
1b80d36a
MCC
40config MEDIA_SUBDRV_AUTOSELECT
41 bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
42 depends on HAS_IOMEM
43 select I2C
44 select I2C_MUX
45 default y if MEDIA_SUPPORT_FILTER
46 help
47 By default, a media driver auto-selects all possible ancillary
48 devices such as tuners, sensors, video encoders/decoders and
49 frontends, that are used by any of the supported devices.
50
51 This is generally the right thing to do, except when there
52 are strict constraints with regards to the kernel size,
53 like on embedded systems.
54
55 Use this option with care, as deselecting ancillary drivers which
56 are, in fact, necessary will result in the lack of the needed
57 functionality for your device (it may not tune or may not have
58 the needed demodulators).
59
60 If unsure say Y.
61
c6774ee0 62menu "Media device types"
7c91f062 63
b4c184e5
MCC
64#
65# Multimedia support - automatically enable V4L2 and DVB core
66#
67config MEDIA_CAMERA_SUPPORT
b6a7d1bc
MCC
68 bool
69 prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
c6774ee0 70 default y if !MEDIA_SUPPORT_FILTER
b60a5b8d 71 help
b4c184e5
MCC
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
b6a7d1bc
MCC
77 bool
78 prompt "Analog TV" if MEDIA_SUPPORT_FILTER
c6774ee0 79 default y if !MEDIA_SUPPORT_FILTER
b60a5b8d 80 help
b4c184e5
MCC
81 Enable analog TV support.
82
85f7cd3a
MCC
83 Say Y when you have a TV board with analog support or with a
84 hybrid analog/digital TV chipset.
85
86 Note: There are several DVB cards that are based on chips that
87 support both analog and digital TV. Disabling this option
88 will disable support for them.
b4c184e5
MCC
89
90config MEDIA_DIGITAL_TV_SUPPORT
b6a7d1bc
MCC
91 bool
92 prompt "Digital TV" if MEDIA_SUPPORT_FILTER
c6774ee0 93 default y if !MEDIA_SUPPORT_FILTER
b60a5b8d 94 help
b4c184e5
MCC
95 Enable digital TV support.
96
85f7cd3a
MCC
97 Say Y when you have a board with digital support or a board with
98 hybrid digital TV and analog TV.
b4c184e5
MCC
99
100config MEDIA_RADIO_SUPPORT
b6a7d1bc
MCC
101 bool
102 prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
c6774ee0 103 default y if !MEDIA_SUPPORT_FILTER
b60a5b8d 104 help
b4c184e5
MCC
105 Enable AM/FM radio support.
106
107 Additional info and docs are available on the web at
991ce92f 108 <https://linuxtv.org>
b4c184e5
MCC
109
110 Say Y when you have a board with radio support.
111
85f7cd3a
MCC
112 Note: There are several TV cards that are based on chips that
113 support radio reception. Disabling this option will
114 disable support for them.
115
435ef148 116config MEDIA_SDR_SUPPORT
b6a7d1bc
MCC
117 bool
118 prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
c6774ee0 119 default y if !MEDIA_SUPPORT_FILTER
b60a5b8d 120 help
435ef148
AP
121 Enable software defined radio support.
122
123 Say Y when you have a software defined radio device.
124
06b93644 125config MEDIA_PLATFORM_SUPPORT
b6a7d1bc
MCC
126 bool
127 prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
c6774ee0 128 default y if !MEDIA_SUPPORT_FILTER
06b93644
MCC
129 help
130 Enable support for complex cameras, codecs, and other hardware
131 that are integrated at the CPU, GPU or on Image Signalling Processor
132 and don't use PCI, USB or Firewire buses.
133
134 This is found on Embedded hardware (SoC), on V4L2 codecs and
135 on some GPU and newer CPU chipsets.
136
aa966274 137 Say Y when you want to be able to see such devices.
06b93644 138
4b32216a 139config MEDIA_TEST_SUPPORT
b6a7d1bc
MCC
140 bool
141 prompt "Test drivers" if MEDIA_SUPPORT_FILTER
c6774ee0 142 default y if !MEDIA_SUPPORT_FILTER
4b32216a
MCC
143 help
144 Those drivers should not be used on production Kernels, but
145 can be useful on debug ones. It enables several dummy drivers
146 that simulate a real hardware. Very useful to test userspace
147 applications and to validate if the subsystem core is doesn't
148 have regressions.
149
150 Say Y if you want to use some virtual test driver.
151
152 In case of doubts, say N.
c39d5704 153 Say Y when you have a software defined radio device.
c6774ee0 154endmenu # media device types
4b32216a 155
078ab3ea 156
5e9e60f4
MCC
157menu "Media core support"
158 visible if !MEDIA_SUPPORT_FILTER
7c91f062 159
1da177e4 160config VIDEO_DEV
85f7cd3a
MCC
161 tristate "Video4Linux core"
162 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
5e9e60f4
MCC
163 help
164 Enables the V4L2 API, used by cameras, analog TV, video grabbers,
165 radio devices and by some input devices.
1da177e4 166
8fc42fff
MCC
167config MEDIA_CONTROLLER
168 bool "Media Controller API"
169 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
170 help
171 Enable the media controller API used to query media devices internal
172 topology and configure it dynamically.
173
174 This API is mostly used by camera interfaces in embedded platforms.
175
7c91f062
MCC
176#
177# DVB Core
b4c184e5 178# Only enables if one of DTV is selected
7c91f062 179#
1da177e4 180
7c91f062 181config DVB_CORE
b4c184e5 182 tristate
b4c184e5 183 depends on MEDIA_DIGITAL_TV_SUPPORT
88327305 184 depends on (I2C || I2C=n)
8e5b5d75 185 default MEDIA_DIGITAL_TV_SUPPORT
7c91f062 186 select CRC32
4021053e 187 help
5e9e60f4
MCC
188 Enables the DVB API, used by Digital TV devices. Supports several
189 standards, including DVB, ATSC, ISDB and CMDB.
4021053e 190
5e9e60f4 191endmenu # Media core support
4021053e 192
5e9e60f4
MCC
193#
194# Extra per-media API core functionality
a34ff6cd 195
0c822d97
MCC
196menu "Video4Linux options"
197 visible if VIDEO_DEV
198
7d5bc693 199source "drivers/media/v4l2-core/Kconfig"
0c822d97
MCC
200endmenu
201
202menu "Media controller options"
203 visible if MEDIA_CONTROLLER
204
7d5bc693 205source "drivers/media/mc/Kconfig"
0c822d97
MCC
206endmenu
207
208menu "Digital TV options"
209 visible if DVB_CORE
210
f0af8fa4 211source "drivers/media/dvb-core/Kconfig"
0c822d97
MCC
212endmenu
213
5e9e60f4 214menu "Media drivers"
c1accaa2 215
ce971d95
MCC
216comment "Drivers filtered as selected at 'Filter media drivers'"
217 depends on MEDIA_SUPPORT_FILTER
218
786baecf 219source "drivers/media/usb/Kconfig"
3c8c09b5 220source "drivers/media/pci/Kconfig"
06b93644
MCC
221source "drivers/media/radio/Kconfig"
222
7d5bc693
MCC
223# Common driver options
224source "drivers/media/common/Kconfig"
225
06b93644 226if MEDIA_PLATFORM_SUPPORT
3c8c09b5 227source "drivers/media/platform/Kconfig"
0013ca8c 228source "drivers/media/mmc/Kconfig"
06b93644 229endif
1da177e4 230
ffb2e008 231if MEDIA_TEST_SUPPORT
dacca5f0 232source "drivers/media/test-drivers/Kconfig"
ffb2e008
GT
233endif
234
616300bd
MCC
235source "drivers/media/firewire/Kconfig"
236
5e9e60f4
MCC
237endmenu
238
3c8c09b5 239#
8283a092 240# Ancillary drivers (tuners, i2c, spi, frontends)
3c8c09b5
MCC
241#
242
4fa4ef39 243config MEDIA_HIDE_ANCILLARY_SUBDRV
1498dfba
KK
244 bool
245 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
246 default y
4fa4ef39 247
1b80d36a 248menu "Media ancillary drivers"
1b80d36a 249
bb69ee27
MCC
250config MEDIA_ATTACH
251 bool
252 depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
253 depends on MODULES
254 default MODULES
255
3c8c09b5 256source "drivers/media/i2c/Kconfig"
8283a092 257source "drivers/media/spi/Kconfig"
fccea74f 258source "drivers/media/tuners/Kconfig"
3c8c09b5
MCC
259source "drivers/media/dvb-frontends/Kconfig"
260
5e9e60f4
MCC
261endmenu
262
ab482a6c 263endif # MEDIA_SUPPORT