xref: /linux/drivers/media/Kconfig (revision f7ec3f62d7736ed14050716943a9562879155fcc)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# Multimedia device configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
69393d050SMauro Carvalho Chehab#
746d2a3b9SMauro Carvalho Chehab# NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT
89393d050SMauro Carvalho Chehab#
9b9e1486eSSean Youngsource "drivers/media/rc/Kconfig"
1046d2a3b9SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig"
11b9e1486eSSean Young
12ab482a6cSRandy Dunlapmenuconfig MEDIA_SUPPORT
13ab482a6cSRandy Dunlap	tristate "Multimedia support"
14e25df120SMartin Schwidefsky	depends on HAS_IOMEM
15ab482a6cSRandy Dunlap	help
16dee1877dSMauro Carvalho Chehab	  If you want to use media devices, including Webcams, Video grabber
17dee1877dSMauro Carvalho Chehab	  devices and/or TV devices, V4L2 codecs, etc, enable this option
18dee1877dSMauro Carvalho Chehab	  and other options below.
19dee1877dSMauro Carvalho Chehab
20b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
21991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
22ab482a6cSRandy Dunlap
23c6774ee0SMauro Carvalho Chehabif MEDIA_SUPPORT
24c6774ee0SMauro Carvalho Chehab
25c6774ee0SMauro Carvalho Chehabconfig MEDIA_SUPPORT_FILTER
26ce971d95SMauro Carvalho Chehab	bool "Filter media drivers"
27*f7ec3f62SLukas Bulwahn	default y if !EXPERT
28c6774ee0SMauro Carvalho Chehab	help
29c6774ee0SMauro Carvalho Chehab	   Configuring the media subsystem can be complex, as there are
30c6774ee0SMauro Carvalho Chehab	   hundreds of drivers and other config options.
31c6774ee0SMauro Carvalho Chehab
32c6774ee0SMauro Carvalho Chehab	   This menu offers option that will help the Kernel's config
33c6774ee0SMauro Carvalho Chehab	   system to hide drivers that are out of the scope of the
34c6774ee0SMauro Carvalho Chehab	   user needs, and disabling core support for unused APIs.
35c6774ee0SMauro Carvalho Chehab
36c6774ee0SMauro Carvalho Chehab	   If not selected, all non-optional media core functionality
37c6774ee0SMauro Carvalho Chehab	   needed to support media drivers will be enabled. Also, all
38c6774ee0SMauro Carvalho Chehab	   media device drivers should be shown.
39c6774ee0SMauro Carvalho Chehab
401b80d36aSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT
411b80d36aSMauro Carvalho Chehab	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
421b80d36aSMauro Carvalho Chehab	depends on HAS_IOMEM
431b80d36aSMauro Carvalho Chehab	select I2C
441b80d36aSMauro Carvalho Chehab	select I2C_MUX
451b80d36aSMauro Carvalho Chehab	default y if MEDIA_SUPPORT_FILTER
461b80d36aSMauro Carvalho Chehab	help
471b80d36aSMauro Carvalho Chehab	  By default, a media driver auto-selects all possible ancillary
481b80d36aSMauro Carvalho Chehab	  devices such as tuners, sensors, video encoders/decoders and
491b80d36aSMauro Carvalho Chehab	  frontends, that are used by any of the supported devices.
501b80d36aSMauro Carvalho Chehab
511b80d36aSMauro Carvalho Chehab	  This is generally the right thing to do, except when there
521b80d36aSMauro Carvalho Chehab	  are strict constraints with regards to the kernel size,
531b80d36aSMauro Carvalho Chehab	  like on embedded systems.
541b80d36aSMauro Carvalho Chehab
551b80d36aSMauro Carvalho Chehab	  Use this option with care, as deselecting ancillary drivers which
561b80d36aSMauro Carvalho Chehab	  are, in fact, necessary will result in the lack of the needed
571b80d36aSMauro Carvalho Chehab	  functionality for your device (it may not tune or may not have
581b80d36aSMauro Carvalho Chehab	  the needed demodulators).
591b80d36aSMauro Carvalho Chehab
601b80d36aSMauro Carvalho Chehab	  If unsure say Y.
611b80d36aSMauro Carvalho Chehab
62c6774ee0SMauro Carvalho Chehabmenu "Media device types"
637c91f062SMauro Carvalho Chehab
647c91f062SMauro Carvalho Chehab#
65b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core
66b4c184e5SMauro Carvalho Chehab#
67b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT
68b6a7d1bcSMauro Carvalho Chehab	bool
69b6a7d1bcSMauro Carvalho Chehab	prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
70c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
71b60a5b8dSMauro Carvalho Chehab	help
72b4c184e5SMauro Carvalho Chehab	  Enable support for webcams and video grabbers.
73b4c184e5SMauro Carvalho Chehab
74b4c184e5SMauro Carvalho Chehab	  Say Y when you have a webcam or a video capture grabber board.
75b4c184e5SMauro Carvalho Chehab
76b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT
77b6a7d1bcSMauro Carvalho Chehab	bool
78b6a7d1bcSMauro Carvalho Chehab	prompt "Analog TV" if MEDIA_SUPPORT_FILTER
79c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
80b60a5b8dSMauro Carvalho Chehab	help
81b4c184e5SMauro Carvalho Chehab	  Enable analog TV support.
82b4c184e5SMauro Carvalho Chehab
8385f7cd3aSMauro Carvalho Chehab	  Say Y when you have a TV board with analog support or with a
8485f7cd3aSMauro Carvalho Chehab	  hybrid analog/digital TV chipset.
8585f7cd3aSMauro Carvalho Chehab
8685f7cd3aSMauro Carvalho Chehab	  Note: There are several DVB cards that are based on chips that
8785f7cd3aSMauro Carvalho Chehab		support both analog and digital TV. Disabling this option
8885f7cd3aSMauro Carvalho Chehab		will disable support for them.
89b4c184e5SMauro Carvalho Chehab
90b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT
91b6a7d1bcSMauro Carvalho Chehab	bool
92b6a7d1bcSMauro Carvalho Chehab	prompt "Digital TV" if MEDIA_SUPPORT_FILTER
93c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
94b60a5b8dSMauro Carvalho Chehab	help
95b4c184e5SMauro Carvalho Chehab	  Enable digital TV support.
96b4c184e5SMauro Carvalho Chehab
9785f7cd3aSMauro Carvalho Chehab	  Say Y when you have a board with digital support or a board with
9885f7cd3aSMauro Carvalho Chehab	  hybrid digital TV and analog TV.
99b4c184e5SMauro Carvalho Chehab
100b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT
101b6a7d1bcSMauro Carvalho Chehab	bool
102b6a7d1bcSMauro Carvalho Chehab	prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
103c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
104b60a5b8dSMauro Carvalho Chehab	help
105b4c184e5SMauro Carvalho Chehab	  Enable AM/FM radio support.
106b4c184e5SMauro Carvalho Chehab
107b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
108991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
109b4c184e5SMauro Carvalho Chehab
110b4c184e5SMauro Carvalho Chehab	  Say Y when you have a board with radio support.
111b4c184e5SMauro Carvalho Chehab
11285f7cd3aSMauro Carvalho Chehab	  Note: There are several TV cards that are based on chips that
11385f7cd3aSMauro Carvalho Chehab		support radio reception. Disabling this option will
11485f7cd3aSMauro Carvalho Chehab		disable support for them.
11585f7cd3aSMauro Carvalho Chehab
116435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT
117b6a7d1bcSMauro Carvalho Chehab	bool
118b6a7d1bcSMauro Carvalho Chehab	prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
119c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
120b60a5b8dSMauro Carvalho Chehab	help
121435ef148SAntti Palosaari	  Enable software defined radio support.
122435ef148SAntti Palosaari
123435ef148SAntti Palosaari	  Say Y when you have a software defined radio device.
124435ef148SAntti Palosaari
12506b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT
126b6a7d1bcSMauro Carvalho Chehab	bool
127b6a7d1bcSMauro Carvalho Chehab	prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
128c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
12906b93644SMauro Carvalho Chehab	help
13006b93644SMauro Carvalho Chehab	  Enable support for complex cameras, codecs, and other hardware
13106b93644SMauro Carvalho Chehab	  that are integrated at the CPU, GPU or on Image Signalling Processor
13206b93644SMauro Carvalho Chehab	  and don't use PCI, USB or Firewire buses.
13306b93644SMauro Carvalho Chehab
13406b93644SMauro Carvalho Chehab	  This is found on Embedded hardware (SoC), on V4L2 codecs and
13506b93644SMauro Carvalho Chehab	  on some GPU and newer CPU chipsets.
13606b93644SMauro Carvalho Chehab
137aa966274SXiaofeng Cao	  Say Y when you want to be able to see such devices.
13806b93644SMauro Carvalho Chehab
1394b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT
140b6a7d1bcSMauro Carvalho Chehab	bool
141b6a7d1bcSMauro Carvalho Chehab	prompt "Test drivers" if MEDIA_SUPPORT_FILTER
142c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
1434b32216aSMauro Carvalho Chehab	help
14409f4d151SRandy Dunlap	  These drivers should not be used on production kernels, but
14509f4d151SRandy Dunlap	  can be useful on debug ones. This option enables several dummy drivers
14609f4d151SRandy Dunlap	  that simulate real hardware. Very useful to test userspace
14709f4d151SRandy Dunlap	  applications and to validate if the subsystem core doesn't
1484b32216aSMauro Carvalho Chehab	  have regressions.
1494b32216aSMauro Carvalho Chehab
1504b32216aSMauro Carvalho Chehab	  Say Y if you want to use some virtual test driver.
1514b32216aSMauro Carvalho Chehab
1524b32216aSMauro Carvalho Chehab	  In case of doubts, say N.
153c39d5704SMauro Carvalho Chehab	  Say Y when you have a software defined radio device.
154c6774ee0SMauro Carvalho Chehabendmenu # media device types
1554b32216aSMauro Carvalho Chehab
156078ab3eaSSakari Ailus
1575e9e60f4SMauro Carvalho Chehabmenu "Media core support"
1585e9e60f4SMauro Carvalho Chehab	visible if !MEDIA_SUPPORT_FILTER
1597c91f062SMauro Carvalho Chehab
1601da177e4SLinus Torvaldsconfig VIDEO_DEV
16185f7cd3aSMauro Carvalho Chehab	tristate "Video4Linux core"
16285f7cd3aSMauro Carvalho Chehab	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
1639958d30fSMauro Carvalho Chehab	depends on (I2C || I2C=n)
1649958d30fSMauro Carvalho Chehab	select RATIONAL
1659958d30fSMauro Carvalho Chehab	select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE
1665e9e60f4SMauro Carvalho Chehab	help
1675e9e60f4SMauro Carvalho Chehab	  Enables the V4L2 API, used by cameras, analog TV, video grabbers,
1685e9e60f4SMauro Carvalho Chehab	  radio devices and by some input devices.
1691da177e4SLinus Torvalds
1708fc42fffSMauro Carvalho Chehabconfig MEDIA_CONTROLLER
1718fc42fffSMauro Carvalho Chehab	bool "Media Controller API"
1728fc42fffSMauro Carvalho Chehab	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
1738fc42fffSMauro Carvalho Chehab	help
1748fc42fffSMauro Carvalho Chehab	  Enable the media controller API used to query media devices internal
1758fc42fffSMauro Carvalho Chehab	  topology and configure it dynamically.
1768fc42fffSMauro Carvalho Chehab
1778fc42fffSMauro Carvalho Chehab	  This API is mostly used by camera interfaces in embedded platforms.
1788fc42fffSMauro Carvalho Chehab
1797c91f062SMauro Carvalho Chehab#
1807c91f062SMauro Carvalho Chehab# DVB Core
181b4c184e5SMauro Carvalho Chehab#	Only enables if one of DTV is selected
1827c91f062SMauro Carvalho Chehab#
183cd41e28eSMauro Carvalho Chehab
1847c91f062SMauro Carvalho Chehabconfig DVB_CORE
185b4c184e5SMauro Carvalho Chehab	tristate
186b4c184e5SMauro Carvalho Chehab	depends on MEDIA_DIGITAL_TV_SUPPORT
18788327305SMauro Carvalho Chehab	depends on (I2C || I2C=n)
1888e5b5d75SMauro Carvalho Chehab	default MEDIA_DIGITAL_TV_SUPPORT
1897c91f062SMauro Carvalho Chehab	select CRC32
1904021053eSMauro Carvalho Chehab	help
1915e9e60f4SMauro Carvalho Chehab	  Enables the DVB API, used by Digital TV devices. Supports several
1925e9e60f4SMauro Carvalho Chehab	  standards, including DVB, ATSC, ISDB and CMDB.
1934021053eSMauro Carvalho Chehab
1945e9e60f4SMauro Carvalho Chehabendmenu # Media core support
1954021053eSMauro Carvalho Chehab
1965e9e60f4SMauro Carvalho Chehab#
1975e9e60f4SMauro Carvalho Chehab# Extra per-media API core functionality
198a34ff6cdSHans Petter Selasky
1990c822d97SMauro Carvalho Chehabmenu "Video4Linux options"
2000c822d97SMauro Carvalho Chehab	visible if VIDEO_DEV
2010c822d97SMauro Carvalho Chehab
2027d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig"
2030c822d97SMauro Carvalho Chehabendmenu
2040c822d97SMauro Carvalho Chehab
2050c822d97SMauro Carvalho Chehabmenu "Media controller options"
2060c822d97SMauro Carvalho Chehab	visible if MEDIA_CONTROLLER
2070c822d97SMauro Carvalho Chehab
2087d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig"
2090c822d97SMauro Carvalho Chehabendmenu
2100c822d97SMauro Carvalho Chehab
2110c822d97SMauro Carvalho Chehabmenu "Digital TV options"
2120c822d97SMauro Carvalho Chehab	visible if DVB_CORE
2130c822d97SMauro Carvalho Chehab
214f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig"
2150c822d97SMauro Carvalho Chehabendmenu
2160c822d97SMauro Carvalho Chehab
2175e9e60f4SMauro Carvalho Chehabmenu "Media drivers"
2187c91f062SMauro Carvalho Chehab
219ce971d95SMauro Carvalho Chehabcomment "Drivers filtered as selected at 'Filter media drivers'"
220ce971d95SMauro Carvalho Chehab	depends on MEDIA_SUPPORT_FILTER
221ce971d95SMauro Carvalho Chehab
222d7700ca9SMauro Carvalho Chehabcomment "Media drivers"
223d7700ca9SMauro Carvalho Chehab
224786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig"
2253c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig"
22606b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig"
22706b93644SMauro Carvalho Chehab
22806b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT
2293c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig"
2300013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig"
23106b93644SMauro Carvalho Chehabendif
2321da177e4SLinus Torvalds
233ffb2e008SGuillaume Tuckerif MEDIA_TEST_SUPPORT
234dacca5f0SHans Verkuilsource "drivers/media/test-drivers/Kconfig"
235ffb2e008SGuillaume Tuckerendif
236ffb2e008SGuillaume Tucker
237616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig"
238616300bdSMauro Carvalho Chehab
239d7700ca9SMauro Carvalho Chehab# Common driver options
240d7700ca9SMauro Carvalho Chehabsource "drivers/media/common/Kconfig"
241d7700ca9SMauro Carvalho Chehab
2425e9e60f4SMauro Carvalho Chehabendmenu
2435e9e60f4SMauro Carvalho Chehab
2443c8c09b5SMauro Carvalho Chehab#
2458283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends)
2463c8c09b5SMauro Carvalho Chehab#
2473c8c09b5SMauro Carvalho Chehab
2484fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV
2494fa4ef39SEzequiel Garcia	bool
2504fa4ef39SEzequiel Garcia	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
2514fa4ef39SEzequiel Garcia	default y
2524fa4ef39SEzequiel Garcia
2531b80d36aSMauro Carvalho Chehabmenu "Media ancillary drivers"
2541b80d36aSMauro Carvalho Chehab
255bb69ee27SMauro Carvalho Chehabconfig MEDIA_ATTACH
256bb69ee27SMauro Carvalho Chehab	bool
257bb69ee27SMauro Carvalho Chehab	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
258bb69ee27SMauro Carvalho Chehab	depends on MODULES
259bb69ee27SMauro Carvalho Chehab	default MODULES
260fccea74fSMauro Carvalho Chehab
2613c8c09b5SMauro Carvalho Chehabsource "drivers/media/i2c/Kconfig"
2628283a092SHans Verkuilsource "drivers/media/spi/Kconfig"
263fccea74fSMauro Carvalho Chehabsource "drivers/media/tuners/Kconfig"
2643c8c09b5SMauro Carvalho Chehabsource "drivers/media/dvb-frontends/Kconfig"
2653c8c09b5SMauro Carvalho Chehab
2665e9e60f4SMauro Carvalho Chehabendmenu
2675e9e60f4SMauro Carvalho Chehab
268ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT
269