Commit | Line | Data |
---|---|---|
ec8f24b7 | 1 | # SPDX-License-Identifier: GPL-2.0-only |
1da177e4 LT |
2 | # |
3 | # Multimedia device configuration | |
4 | # | |
5 | ||
b9e1486e SY |
6 | source "drivers/media/rc/Kconfig" |
7 | ||
ab482a6c RD |
8 | menuconfig MEDIA_SUPPORT |
9 | tristate "Multimedia support" | |
e25df120 | 10 | depends on HAS_IOMEM |
ab482a6c | 11 | help |
dee1877d MCC |
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 | ||
b4c184e5 | 16 | Additional info and docs are available on the web at |
991ce92f | 17 | <https://linuxtv.org> |
ab482a6c | 18 | |
c6774ee0 MCC |
19 | if MEDIA_SUPPORT |
20 | ||
21 | config MEDIA_SUPPORT_FILTER | |
ce971d95 | 22 | bool "Filter media drivers" |
c39d5704 | 23 | depends on MEDIA_SUPPORT |
c6774ee0 MCC |
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 | ||
36 | menu "Media device types" | |
37 | visible if MEDIA_SUPPORT_FILTER | |
7c91f062 | 38 | |
b4c184e5 MCC |
39 | # |
40 | # Multimedia support - automatically enable V4L2 and DVB core | |
41 | # | |
42 | config MEDIA_CAMERA_SUPPORT | |
c39d5704 | 43 | bool "Cameras and video grabbers" |
c6774ee0 | 44 | default y if !MEDIA_SUPPORT_FILTER |
b60a5b8d | 45 | help |
b4c184e5 MCC |
46 | Enable support for webcams and video grabbers. |
47 | ||
48 | Say Y when you have a webcam or a video capture grabber board. | |
49 | ||
50 | config MEDIA_ANALOG_TV_SUPPORT | |
c39d5704 | 51 | bool "Analog TV" |
c6774ee0 | 52 | default y if !MEDIA_SUPPORT_FILTER |
b60a5b8d | 53 | help |
b4c184e5 MCC |
54 | Enable analog TV support. |
55 | ||
a3b91d8b | 56 | Say Y when you have a board with analog TV support. |
b4c184e5 MCC |
57 | |
58 | config MEDIA_DIGITAL_TV_SUPPORT | |
c39d5704 | 59 | bool "Digital TV" |
c6774ee0 | 60 | default y if !MEDIA_SUPPORT_FILTER |
b60a5b8d | 61 | help |
b4c184e5 MCC |
62 | Enable digital TV support. |
63 | ||
a3b91d8b | 64 | Say Y when you have a board with digital TV support. |
b4c184e5 MCC |
65 | |
66 | config MEDIA_RADIO_SUPPORT | |
c39d5704 | 67 | bool "AM/FM radio receivers/transmitters" |
c6774ee0 | 68 | default y if !MEDIA_SUPPORT_FILTER |
b60a5b8d | 69 | help |
b4c184e5 MCC |
70 | Enable AM/FM radio support. |
71 | ||
72 | Additional info and docs are available on the web at | |
991ce92f | 73 | <https://linuxtv.org> |
b4c184e5 MCC |
74 | |
75 | Say Y when you have a board with radio support. | |
76 | ||
435ef148 | 77 | config MEDIA_SDR_SUPPORT |
c39d5704 | 78 | bool "Software defined radio" |
c6774ee0 | 79 | default y if !MEDIA_SUPPORT_FILTER |
b60a5b8d | 80 | help |
435ef148 AP |
81 | Enable software defined radio support. |
82 | ||
83 | Say Y when you have a software defined radio device. | |
84 | ||
0dbacebe | 85 | config MEDIA_CEC_SUPPORT |
c39d5704 | 86 | bool "HDMI CEC" |
c6774ee0 | 87 | default y if !MEDIA_SUPPORT_FILTER |
b60a5b8d | 88 | help |
349da8ce BL |
89 | Enable support for HDMI CEC (Consumer Electronics Control), |
90 | which is an optional HDMI feature. | |
0dbacebe | 91 | |
349da8ce BL |
92 | Say Y when you have an HDMI receiver, transmitter or a USB CEC |
93 | adapter that supports HDMI CEC. | |
29fb44a5 | 94 | |
06b93644 | 95 | config MEDIA_PLATFORM_SUPPORT |
c39d5704 | 96 | bool "Platform-specific devices" |
c6774ee0 | 97 | default y if !MEDIA_SUPPORT_FILTER |
06b93644 MCC |
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 | ||
4b32216a | 108 | config MEDIA_TEST_SUPPORT |
c39d5704 | 109 | bool "Test drivers" |
c6774ee0 | 110 | default y if !MEDIA_SUPPORT_FILTER |
4b32216a MCC |
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. | |
c39d5704 | 121 | Say Y when you have a software defined radio device. |
c6774ee0 | 122 | endmenu # media device types |
4b32216a | 123 | |
7d5bc693 | 124 | comment "Multimedia core features" |
078ab3ea | 125 | |
7c91f062 | 126 | # |
b4c184e5 MCC |
127 | # Video4Linux support |
128 | # Only enables if one of the V4L2 types (ATV, webcam, radio) is selected | |
7c91f062 MCC |
129 | # |
130 | ||
a3b91d8b MCC |
131 | comment "Video4Linux core enabled to support hybrid TV devices" |
132 | depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI | |
133 | ||
1da177e4 | 134 | config VIDEO_DEV |
b4c184e5 | 135 | tristate |
a3b91d8b | 136 | prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI) |
6268b351 | 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 |
1da177e4 | 138 | |
8fc42fff MCC |
139 | config 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 | ||
7c91f062 MCC |
148 | # |
149 | # DVB Core | |
b4c184e5 | 150 | # Only enables if one of DTV is selected |
7c91f062 | 151 | # |
1da177e4 | 152 | |
a3b91d8b MCC |
153 | comment "Digital TV core enabled to support hybrid TV devices" |
154 | depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI | |
155 | ||
7c91f062 | 156 | config DVB_CORE |
b4c184e5 | 157 | tristate |
a3b91d8b | 158 | prompt "Digital TV core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI) |
b4c184e5 | 159 | depends on MEDIA_DIGITAL_TV_SUPPORT |
88327305 | 160 | depends on (I2C || I2C=n) |
b4c184e5 | 161 | default y |
7c91f062 | 162 | select CRC32 |
ca805d57 | 163 | |
4021053e | 164 | help |
4021053e | 165 | |
4021053e | 166 | |
a34ff6cd | 167 | |
a34ff6cd | 168 | |
7d5bc693 MCC |
169 | source "drivers/media/v4l2-core/Kconfig" |
170 | source "drivers/media/mc/Kconfig" | |
f0af8fa4 | 171 | source "drivers/media/dvb-core/Kconfig" |
7d5bc693 | 172 | source "drivers/media/cec/Kconfig" |
f0af8fa4 | 173 | |
c455f5c8 | 174 | comment "Media drivers" |
c1accaa2 | 175 | |
ce971d95 MCC |
176 | comment "Drivers filtered as selected at 'Filter media drivers'" |
177 | depends on MEDIA_SUPPORT_FILTER | |
178 | ||
786baecf | 179 | source "drivers/media/usb/Kconfig" |
3c8c09b5 | 180 | source "drivers/media/pci/Kconfig" |
06b93644 MCC |
181 | source "drivers/media/radio/Kconfig" |
182 | ||
7d5bc693 MCC |
183 | # Common driver options |
184 | source "drivers/media/common/Kconfig" | |
185 | ||
06b93644 | 186 | if MEDIA_PLATFORM_SUPPORT |
3c8c09b5 | 187 | source "drivers/media/platform/Kconfig" |
4b32216a | 188 | source "drivers/media/test_drivers/Kconfig" |
0013ca8c | 189 | source "drivers/media/mmc/Kconfig" |
06b93644 | 190 | endif |
1da177e4 | 191 | |
616300bd MCC |
192 | source "drivers/media/firewire/Kconfig" |
193 | ||
8283a092 | 194 | comment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)" |
5344fe6e | 195 | |
3c8c09b5 | 196 | # |
8283a092 | 197 | # Ancillary drivers (tuners, i2c, spi, frontends) |
3c8c09b5 MCC |
198 | # |
199 | ||
fccea74f | 200 | config MEDIA_SUBDRV_AUTOSELECT |
8283a092 | 201 | bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" |
435ef148 | 202 | depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT |
347f7a37 MCC |
203 | depends on HAS_IOMEM |
204 | select I2C | |
205 | select I2C_MUX | |
24f6f93a | 206 | default y if !EMBEDDED |
fccea74f | 207 | help |
5344fe6e HV |
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. | |
fccea74f MCC |
211 | |
212 | This is generally the right thing to do, except when there | |
2c76a12a MCC |
213 | are strict constraints with regards to the kernel size, |
214 | like on embedded systems. | |
fccea74f | 215 | |
2c76a12a MCC |
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 | |
5344fe6e | 219 | the needed demodulators). |
fccea74f MCC |
220 | |
221 | If unsure say Y. | |
222 | ||
4fa4ef39 | 223 | config MEDIA_HIDE_ANCILLARY_SUBDRV |
1498dfba KK |
224 | bool |
225 | depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT | |
226 | default y | |
4fa4ef39 | 227 | |
bb69ee27 MCC |
228 | config 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 | ||
3c8c09b5 | 234 | source "drivers/media/i2c/Kconfig" |
8283a092 | 235 | source "drivers/media/spi/Kconfig" |
fccea74f | 236 | source "drivers/media/tuners/Kconfig" |
3c8c09b5 MCC |
237 | source "drivers/media/dvb-frontends/Kconfig" |
238 | ||
ab482a6c | 239 | endif # MEDIA_SUPPORT |