blob: b07812657cee61979d80afe3a7198f66e973259d [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#
3# Multimedia device configuration
4#
5
Mauro Carvalho Chehab9393d052020-04-15 09:46:06 +02006#
Mauro Carvalho Chehab46d2a3b2020-04-15 09:55:10 +02007# NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT
Mauro Carvalho Chehab9393d052020-04-15 09:46:06 +02008#
Sean Youngb9e14862017-07-02 15:37:58 -04009source "drivers/media/rc/Kconfig"
Mauro Carvalho Chehab46d2a3b2020-04-15 09:55:10 +020010source "drivers/media/cec/Kconfig"
Sean Youngb9e14862017-07-02 15:37:58 -040011
Randy Dunlapab482a62009-05-18 22:00:34 -030012menuconfig MEDIA_SUPPORT
13 tristate "Multimedia support"
Martin Schwidefskye25df122007-05-10 15:45:57 +020014 depends on HAS_IOMEM
Randy Dunlapab482a62009-05-18 22:00:34 -030015 help
Mauro Carvalho Chehabdee18772020-03-24 10:15:43 +010016 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
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -030020 Additional info and docs are available on the web at
Mauro Carvalho Chehab991ce922015-12-04 10:38:59 -020021 <https://linuxtv.org>
Randy Dunlapab482a62009-05-18 22:00:34 -030022
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +010023if MEDIA_SUPPORT
24
25config MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabce971d92020-03-26 09:44:13 +010026 bool "Filter media drivers"
Mauro Carvalho Chehabb0cd4fb2020-03-24 14:29:57 +010027 default y if !EMBEDDED && !EXPERT
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +010028 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
Mauro Carvalho Chehab1b80d362020-03-24 14:24:41 +010040config 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
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +010062menu "Media device types"
Mauro Carvalho Chehab7c91f062008-04-29 21:38:44 -030063
64#
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -030065# Multimedia support - automatically enable V4L2 and DVB core
66#
67config MEDIA_CAMERA_SUPPORT
Mauro Carvalho Chehabb6a7d1b2020-03-25 16:33:35 +010068 bool
69 prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +010070 default y if !MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabb60a5b82019-03-20 06:39:44 -040071 help
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -030072 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
Mauro Carvalho Chehabb6a7d1b2020-03-25 16:33:35 +010077 bool
78 prompt "Analog TV" if MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +010079 default y if !MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabb60a5b82019-03-20 06:39:44 -040080 help
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -030081 Enable analog TV support.
82
Mauro Carvalho Chehab85f7cd32020-04-14 11:00:30 +020083 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.
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -030089
90config MEDIA_DIGITAL_TV_SUPPORT
Mauro Carvalho Chehabb6a7d1b2020-03-25 16:33:35 +010091 bool
92 prompt "Digital TV" if MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +010093 default y if !MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabb60a5b82019-03-20 06:39:44 -040094 help
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -030095 Enable digital TV support.
96
Mauro Carvalho Chehab85f7cd32020-04-14 11:00:30 +020097 Say Y when you have a board with digital support or a board with
98 hybrid digital TV and analog TV.
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -030099
100config MEDIA_RADIO_SUPPORT
Mauro Carvalho Chehabb6a7d1b2020-03-25 16:33:35 +0100101 bool
102 prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +0100103 default y if !MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabb60a5b82019-03-20 06:39:44 -0400104 help
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -0300105 Enable AM/FM radio support.
106
107 Additional info and docs are available on the web at
Mauro Carvalho Chehab991ce922015-12-04 10:38:59 -0200108 <https://linuxtv.org>
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -0300109
110 Say Y when you have a board with radio support.
111
Mauro Carvalho Chehab85f7cd32020-04-14 11:00:30 +0200112 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
Antti Palosaari435ef142014-07-12 21:43:12 -0300116config MEDIA_SDR_SUPPORT
Mauro Carvalho Chehabb6a7d1b2020-03-25 16:33:35 +0100117 bool
118 prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +0100119 default y if !MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabb60a5b82019-03-20 06:39:44 -0400120 help
Antti Palosaari435ef142014-07-12 21:43:12 -0300121 Enable software defined radio support.
122
123 Say Y when you have a software defined radio device.
124
Mauro Carvalho Chehab06b93642020-03-24 10:27:15 +0100125config MEDIA_PLATFORM_SUPPORT
Mauro Carvalho Chehabb6a7d1b2020-03-25 16:33:35 +0100126 bool
127 prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +0100128 default y if !MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehab06b93642020-03-24 10:27:15 +0100129 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
Xiaofeng Caoaa966272021-03-10 15:58:16 +0100137 Say Y when you want to be able to see such devices.
Mauro Carvalho Chehab06b93642020-03-24 10:27:15 +0100138
Mauro Carvalho Chehab4b322162020-03-24 10:39:43 +0100139config MEDIA_TEST_SUPPORT
Mauro Carvalho Chehabb6a7d1b2020-03-25 16:33:35 +0100140 bool
141 prompt "Test drivers" if MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +0100142 default y if !MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehab4b322162020-03-24 10:39:43 +0100143 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.
Mauro Carvalho Chehabc39d5702020-03-24 10:25:09 +0100153 Say Y when you have a software defined radio device.
Mauro Carvalho Chehabc6774ee2020-03-24 11:36:10 +0100154endmenu # media device types
Mauro Carvalho Chehab4b322162020-03-24 10:39:43 +0100155
Sakari Ailus078ab3e2018-12-05 12:23:54 -0500156
Mauro Carvalho Chehab5e9e60f2020-03-24 14:09:23 +0100157menu "Media core support"
158 visible if !MEDIA_SUPPORT_FILTER
Mauro Carvalho Chehab7c91f062008-04-29 21:38:44 -0300159
Linus Torvalds1da177e2005-04-16 15:20:36 -0700160config VIDEO_DEV
Mauro Carvalho Chehab85f7cd32020-04-14 11:00:30 +0200161 tristate "Video4Linux core"
162 default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
Mauro Carvalho Chehab5e9e60f2020-03-24 14:09:23 +0100163 help
164 Enables the V4L2 API, used by cameras, analog TV, video grabbers,
165 radio devices and by some input devices.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700166
Mauro Carvalho Chehab8fc42ff2020-03-24 13:59:23 +0100167config 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
Mauro Carvalho Chehab7c91f062008-04-29 21:38:44 -0300176#
177# DVB Core
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -0300178# Only enables if one of DTV is selected
Mauro Carvalho Chehab7c91f062008-04-29 21:38:44 -0300179#
Mauro Carvalho Chehabcd41e282006-04-09 15:43:41 -0300180
Mauro Carvalho Chehab7c91f062008-04-29 21:38:44 -0300181config DVB_CORE
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -0300182 tristate
Mauro Carvalho Chehabb4c184e2012-05-28 08:17:47 -0300183 depends on MEDIA_DIGITAL_TV_SUPPORT
Mauro Carvalho Chehab88327302018-03-07 09:51:17 -0500184 depends on (I2C || I2C=n)
Mauro Carvalho Chehab8e5b5d752020-04-15 10:06:59 +0200185 default MEDIA_DIGITAL_TV_SUPPORT
Mauro Carvalho Chehab7c91f062008-04-29 21:38:44 -0300186 select CRC32
Mauro Carvalho Chehab40210532017-12-28 09:24:20 -0500187 help
Mauro Carvalho Chehab5e9e60f2020-03-24 14:09:23 +0100188 Enables the DVB API, used by Digital TV devices. Supports several
189 standards, including DVB, ATSC, ISDB and CMDB.
Mauro Carvalho Chehab40210532017-12-28 09:24:20 -0500190
Mauro Carvalho Chehab5e9e60f2020-03-24 14:09:23 +0100191endmenu # Media core support
Mauro Carvalho Chehab40210532017-12-28 09:24:20 -0500192
Mauro Carvalho Chehab5e9e60f2020-03-24 14:09:23 +0100193#
194# Extra per-media API core functionality
Hans Petter Selaskya34ff6c2011-05-23 09:43:35 -0300195
Mauro Carvalho Chehab0c822d92020-03-25 11:15:15 +0100196menu "Video4Linux options"
197 visible if VIDEO_DEV
198
Mauro Carvalho Chehab7d5bc692020-03-24 10:14:15 +0100199source "drivers/media/v4l2-core/Kconfig"
Mauro Carvalho Chehab0c822d92020-03-25 11:15:15 +0100200endmenu
201
202menu "Media controller options"
203 visible if MEDIA_CONTROLLER
204
Mauro Carvalho Chehab7d5bc692020-03-24 10:14:15 +0100205source "drivers/media/mc/Kconfig"
Mauro Carvalho Chehab0c822d92020-03-25 11:15:15 +0100206endmenu
207
208menu "Digital TV options"
209 visible if DVB_CORE
210
Mauro Carvalho Chehabf0af8fa2012-08-14 16:07:25 -0300211source "drivers/media/dvb-core/Kconfig"
Mauro Carvalho Chehab0c822d92020-03-25 11:15:15 +0100212endmenu
213
Mauro Carvalho Chehab5e9e60f2020-03-24 14:09:23 +0100214menu "Media drivers"
Mauro Carvalho Chehab7c91f062008-04-29 21:38:44 -0300215
Mauro Carvalho Chehabce971d92020-03-26 09:44:13 +0100216comment "Drivers filtered as selected at 'Filter media drivers'"
217 depends on MEDIA_SUPPORT_FILTER
218
Mauro Carvalho Chehab786baec2012-06-14 16:35:56 -0300219source "drivers/media/usb/Kconfig"
Mauro Carvalho Chehab3c8c09b2012-08-20 10:02:05 -0300220source "drivers/media/pci/Kconfig"
Mauro Carvalho Chehab06b93642020-03-24 10:27:15 +0100221source "drivers/media/radio/Kconfig"
222
Mauro Carvalho Chehab7d5bc692020-03-24 10:14:15 +0100223# Common driver options
224source "drivers/media/common/Kconfig"
225
Mauro Carvalho Chehab06b93642020-03-24 10:27:15 +0100226if MEDIA_PLATFORM_SUPPORT
Mauro Carvalho Chehab3c8c09b2012-08-20 10:02:05 -0300227source "drivers/media/platform/Kconfig"
Mauro Carvalho Chehab0013ca82012-06-14 16:36:01 -0300228source "drivers/media/mmc/Kconfig"
Mauro Carvalho Chehab06b93642020-03-24 10:27:15 +0100229endif
Linus Torvalds1da177e2005-04-16 15:20:36 -0700230
Guillaume Tuckerffb2e002020-04-15 14:35:52 +0100231if MEDIA_TEST_SUPPORT
Hans Verkuildacca5f2020-04-16 10:25:59 +0200232source "drivers/media/test-drivers/Kconfig"
Guillaume Tuckerffb2e002020-04-15 14:35:52 +0100233endif
234
Mauro Carvalho Chehab616300b2012-06-14 16:35:55 -0300235source "drivers/media/firewire/Kconfig"
236
Mauro Carvalho Chehab5e9e60f2020-03-24 14:09:23 +0100237endmenu
238
Mauro Carvalho Chehab3c8c09b2012-08-20 10:02:05 -0300239#
Hans Verkuil8283a092016-09-15 12:18:14 -0300240# Ancillary drivers (tuners, i2c, spi, frontends)
Mauro Carvalho Chehab3c8c09b2012-08-20 10:02:05 -0300241#
242
Ezequiel Garcia4fa4ef32019-07-27 10:31:29 -0300243config MEDIA_HIDE_ANCILLARY_SUBDRV
Krzysztof Kozlowski1498dfb2019-11-21 04:19:37 +0100244 bool
245 depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
246 default y
Ezequiel Garcia4fa4ef32019-07-27 10:31:29 -0300247
Mauro Carvalho Chehab1b80d362020-03-24 14:24:41 +0100248menu "Media ancillary drivers"
Mauro Carvalho Chehab1b80d362020-03-24 14:24:41 +0100249
Mauro Carvalho Chehabbb69ee22013-06-20 10:35:53 -0300250config 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
Mauro Carvalho Chehab3c8c09b2012-08-20 10:02:05 -0300256source "drivers/media/i2c/Kconfig"
Hans Verkuil8283a092016-09-15 12:18:14 -0300257source "drivers/media/spi/Kconfig"
Mauro Carvalho Chehabfccea742012-08-20 14:48:02 -0300258source "drivers/media/tuners/Kconfig"
Mauro Carvalho Chehab3c8c09b2012-08-20 10:02:05 -0300259source "drivers/media/dvb-frontends/Kconfig"
260
Mauro Carvalho Chehab5e9e60f2020-03-24 14:09:23 +0100261endmenu
262
Randy Dunlapab482a62009-05-18 22:00:34 -0300263endif # MEDIA_SUPPORT