Kconfig 6.7 KB
Newer Older
1
# SPDX-License-Identifier: GPL-2.0-only
L
Linus Torvalds 已提交
2 3 4 5
#
# Multimedia device configuration
#

6 7 8
config CEC_CORE
	tristate

9
config CEC_NOTIFIER
10 11
	bool

12 13 14
config CEC_PIN
	bool

15 16
source "drivers/media/rc/Kconfig"

17 18
menuconfig MEDIA_SUPPORT
	tristate "Multimedia support"
19
	depends on HAS_IOMEM
20
	help
21 22 23 24
	  If you want to use media devices, including Webcams, Video grabber
	  devices and/or TV devices, V4L2 codecs, etc, enable this option
	  and other options below.

25
	  Additional info and docs are available on the web at
26
	  <https://linuxtv.org>
27

28 29
menu "Types of devices to be supported"
	depends on MEDIA_SUPPORT
30

31 32 33 34
#
# Multimedia support - automatically enable V4L2 and DVB core
#
config MEDIA_CAMERA_SUPPORT
35
	bool "Cameras and video grabbers"
36
	help
37 38 39 40 41
	  Enable support for webcams and video grabbers.

	  Say Y when you have a webcam or a video capture grabber board.

config MEDIA_ANALOG_TV_SUPPORT
42
	bool "Analog TV"
43
	help
44 45
	  Enable analog TV support.

46
	  Say Y when you have a board with analog TV support.
47 48

config MEDIA_DIGITAL_TV_SUPPORT
49
	bool "Digital TV"
50
	help
51 52
	  Enable digital TV support.

53
	  Say Y when you have a board with digital TV support.
54 55

config MEDIA_RADIO_SUPPORT
56
	bool "AM/FM radio receivers/transmitters"
57
	help
58 59 60
	  Enable AM/FM radio support.

	  Additional info and docs are available on the web at
61
	  <https://linuxtv.org>
62 63 64

	  Say Y when you have a board with radio support.

65
config MEDIA_SDR_SUPPORT
66
	bool "Software defined radio"
67
	help
68 69 70 71
	  Enable software defined radio support.

	  Say Y when you have a software defined radio device.

72
config MEDIA_CEC_SUPPORT
73
	bool "HDMI CEC"
74
	help
75 76
	  Enable support for HDMI CEC (Consumer Electronics Control),
	  which is an optional HDMI feature.
77

78 79
	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
	  adapter that supports HDMI CEC.
80

81
config MEDIA_PLATFORM_SUPPORT
82
	bool "Platform-specific devices"
83 84 85 86 87 88 89 90 91 92
	help
	  Enable support for complex cameras, codecs, and other hardware
	  that are integrated at the CPU, GPU or on Image Signalling Processor
	  and don't use PCI, USB or Firewire buses.

	  This is found on Embedded hardware (SoC), on V4L2 codecs and
	  on some GPU and newer CPU chipsets.

	  Say Y when you want to be able so see such devices.

93
config MEDIA_TEST_SUPPORT
94
	bool "Test drivers"
95 96 97 98 99 100 101 102 103 104
	help
	  Those drivers should not be used on production Kernels, but
	  can be useful on debug ones. It enables several dummy drivers
	  that simulate a real hardware. Very useful to test userspace
	  applications and to validate if the subsystem core is doesn't
	  have regressions.

	  Say Y if you want to use some virtual test driver.

	  In case of doubts, say N.
105 106 107 108
	  Say Y when you have a software defined radio device.
endmenu # Types of devices to be supported

if MEDIA_SUPPORT
109

110
comment "Multimedia core features"
111

112
#
113 114
# Video4Linux support
#	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
115 116
#

117 118 119
comment "Video4Linux core enabled to support hybrid TV devices"
	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI

L
Linus Torvalds 已提交
120
config VIDEO_DEV
121
	tristate
122
	prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
123
	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
L
Linus Torvalds 已提交
124

125
config VIDEO_V4L2_SUBDEV_API
126 127
	bool "V4L2 sub-device userspace API"
	depends on VIDEO_DEV && MEDIA_CONTROLLER
128
	help
129 130 131 132 133
	  Enables the V4L2 sub-device pad-level userspace API used to configure
	  video format, size and frame rate between hardware blocks.

	  This API is mostly used by camera interfaces in embedded platforms.

134 135
#
# DVB Core
136
#	Only enables if one of DTV is selected
137
#
L
Linus Torvalds 已提交
138

139 140 141
comment "Digital TV core enabled to support hybrid TV devices"
	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI

142
config DVB_CORE
143
	tristate
144
	prompt "Digital TV core"  if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
145
	depends on MEDIA_DIGITAL_TV_SUPPORT
146
	depends on (I2C || I2C=n)
147
	default y
148
	select CRC32
149

150 151 152
config DVB_MMAP
	bool "Enable DVB memory-mapped API (EXPERIMENTAL)"
	depends on DVB_CORE
153 154
	depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE
	select VIDEOBUF2_VMALLOC
155
	help
156
	  This option enables DVB experimental memory-mapped API, which
157 158 159 160 161 162
	  reduces the number of context switches to read DVB buffers, as
	  the buffers can use mmap() syscalls.

	  Support for it is experimental. Use with care. If unsure,
	  say N.

163 164 165
config DVB_NET
	bool "DVB Network Support"
	default (NET && INET)
166
	depends on NET && INET && DVB_CORE
167
	help
168 169 170 171
	  This option enables DVB Network Support which is a part of the DVB
	  standard. It is used, for example, by automatic firmware updates used
	  on Set-Top-Boxes. It can also be used to access the Internet via the
	  DVB card, if the network provider supports it.
172

173 174
	  You may want to disable the network support on embedded devices. If
	  unsure say Y.
175

176 177
source "drivers/media/v4l2-core/Kconfig"
source "drivers/media/mc/Kconfig"
178
source "drivers/media/dvb-core/Kconfig"
179
source "drivers/media/cec/Kconfig"
180

181
comment "Media drivers"
182

183
source "drivers/media/usb/Kconfig"
184
source "drivers/media/pci/Kconfig"
185 186
source "drivers/media/radio/Kconfig"

187 188 189
# Common driver options
source "drivers/media/common/Kconfig"

190
if MEDIA_PLATFORM_SUPPORT
191
source "drivers/media/platform/Kconfig"
192
source "drivers/media/test_drivers/Kconfig"
193
source "drivers/media/mmc/Kconfig"
194
endif
L
Linus Torvalds 已提交
195

196 197
source "drivers/media/firewire/Kconfig"

198
comment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"
H
Hans Verkuil 已提交
199

200
#
201
# Ancillary drivers (tuners, i2c, spi, frontends)
202 203
#

204
config MEDIA_SUBDRV_AUTOSELECT
205
	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
206
	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT
207 208 209
	depends on HAS_IOMEM
	select I2C
	select I2C_MUX
210
	default y if !EMBEDDED
211
	help
H
Hans Verkuil 已提交
212 213 214
	  By default, a media driver auto-selects all possible ancillary
	  devices such as tuners, sensors, video encoders/decoders and
	  frontends, that are used by any of the supported devices.
215 216

	  This is generally the right thing to do, except when there
217 218
	  are strict constraints with regards to the kernel size,
	  like on embedded systems.
219

220 221 222
	  Use this option with care, as deselecting ancillary drivers which
	  are, in fact, necessary will result in the lack of the needed
	  functionality for your device (it may not tune or may not have
H
Hans Verkuil 已提交
223
	  the needed demodulators).
224 225 226

	  If unsure say Y.

227
config MEDIA_HIDE_ANCILLARY_SUBDRV
228 229 230
	bool
	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
	default y
231

232 233 234 235 236 237
config MEDIA_ATTACH
	bool
	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
	depends on MODULES
	default MODULES

238
source "drivers/media/i2c/Kconfig"
239
source "drivers/media/spi/Kconfig"
240
source "drivers/media/tuners/Kconfig"
241 242
source "drivers/media/dvb-frontends/Kconfig"

243
endif # MEDIA_SUPPORT