xref: /linux/drivers/media/Kconfig (revision 85f7cd3a2aadd3be9652ce105370f561ff755a26)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# Multimedia device configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
6b9e1486eSSean Youngsource "drivers/media/rc/Kconfig"
7b9e1486eSSean Young
8ab482a6cSRandy Dunlapmenuconfig MEDIA_SUPPORT
9ab482a6cSRandy Dunlap	tristate "Multimedia support"
10e25df120SMartin Schwidefsky	depends on HAS_IOMEM
11ab482a6cSRandy Dunlap	help
12dee1877dSMauro Carvalho Chehab	  If you want to use media devices, including Webcams, Video grabber
13dee1877dSMauro Carvalho Chehab	  devices and/or TV devices, V4L2 codecs, etc, enable this option
14dee1877dSMauro Carvalho Chehab	  and other options below.
15dee1877dSMauro Carvalho Chehab
16b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
17991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
18ab482a6cSRandy Dunlap
19c6774ee0SMauro Carvalho Chehabif MEDIA_SUPPORT
20c6774ee0SMauro Carvalho Chehab
21c6774ee0SMauro Carvalho Chehabconfig MEDIA_SUPPORT_FILTER
22ce971d95SMauro Carvalho Chehab	bool "Filter media drivers"
23c39d5704SMauro Carvalho Chehab	depends on MEDIA_SUPPORT
24b0cd4fb2SMauro Carvalho Chehab	default y if !EMBEDDED && !EXPERT
25c6774ee0SMauro Carvalho Chehab	help
26c6774ee0SMauro Carvalho Chehab	   Configuring the media subsystem can be complex, as there are
27c6774ee0SMauro Carvalho Chehab	   hundreds of drivers and other config options.
28c6774ee0SMauro Carvalho Chehab
29c6774ee0SMauro Carvalho Chehab	   This menu offers option that will help the Kernel's config
30c6774ee0SMauro Carvalho Chehab	   system to hide drivers that are out of the scope of the
31c6774ee0SMauro Carvalho Chehab	   user needs, and disabling core support for unused APIs.
32c6774ee0SMauro Carvalho Chehab
33c6774ee0SMauro Carvalho Chehab	   If not selected, all non-optional media core functionality
34c6774ee0SMauro Carvalho Chehab	   needed to support media drivers will be enabled. Also, all
35c6774ee0SMauro Carvalho Chehab	   media device drivers should be shown.
36c6774ee0SMauro Carvalho Chehab
371b80d36aSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT
381b80d36aSMauro Carvalho Chehab	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
391b80d36aSMauro Carvalho Chehab	depends on HAS_IOMEM
401b80d36aSMauro Carvalho Chehab	select I2C
411b80d36aSMauro Carvalho Chehab	select I2C_MUX
421b80d36aSMauro Carvalho Chehab	default y if MEDIA_SUPPORT_FILTER
431b80d36aSMauro Carvalho Chehab	help
441b80d36aSMauro Carvalho Chehab	  By default, a media driver auto-selects all possible ancillary
451b80d36aSMauro Carvalho Chehab	  devices such as tuners, sensors, video encoders/decoders and
461b80d36aSMauro Carvalho Chehab	  frontends, that are used by any of the supported devices.
471b80d36aSMauro Carvalho Chehab
481b80d36aSMauro Carvalho Chehab	  This is generally the right thing to do, except when there
491b80d36aSMauro Carvalho Chehab	  are strict constraints with regards to the kernel size,
501b80d36aSMauro Carvalho Chehab	  like on embedded systems.
511b80d36aSMauro Carvalho Chehab
521b80d36aSMauro Carvalho Chehab	  Use this option with care, as deselecting ancillary drivers which
531b80d36aSMauro Carvalho Chehab	  are, in fact, necessary will result in the lack of the needed
541b80d36aSMauro Carvalho Chehab	  functionality for your device (it may not tune or may not have
551b80d36aSMauro Carvalho Chehab	  the needed demodulators).
561b80d36aSMauro Carvalho Chehab
571b80d36aSMauro Carvalho Chehab	  If unsure say Y.
581b80d36aSMauro Carvalho Chehab
59c6774ee0SMauro Carvalho Chehabmenu "Media device types"
607c91f062SMauro Carvalho Chehab
617c91f062SMauro Carvalho Chehab#
62b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core
63b4c184e5SMauro Carvalho Chehab#
64b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT
65b6a7d1bcSMauro Carvalho Chehab	bool
66b6a7d1bcSMauro Carvalho Chehab	prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
67c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
68b60a5b8dSMauro Carvalho Chehab	help
69b4c184e5SMauro Carvalho Chehab	  Enable support for webcams and video grabbers.
70b4c184e5SMauro Carvalho Chehab
71b4c184e5SMauro Carvalho Chehab	  Say Y when you have a webcam or a video capture grabber board.
72b4c184e5SMauro Carvalho Chehab
73b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT
74b6a7d1bcSMauro Carvalho Chehab	bool
75b6a7d1bcSMauro Carvalho Chehab	prompt "Analog TV" if MEDIA_SUPPORT_FILTER
76c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
77b60a5b8dSMauro Carvalho Chehab	help
78b4c184e5SMauro Carvalho Chehab	  Enable analog TV support.
79b4c184e5SMauro Carvalho Chehab
80*85f7cd3aSMauro Carvalho Chehab	  Say Y when you have a TV board with analog support or with a
81*85f7cd3aSMauro Carvalho Chehab	  hybrid analog/digital TV chipset.
82*85f7cd3aSMauro Carvalho Chehab
83*85f7cd3aSMauro Carvalho Chehab	  Note: There are several DVB cards that are based on chips that
84*85f7cd3aSMauro Carvalho Chehab		support both analog and digital TV. Disabling this option
85*85f7cd3aSMauro Carvalho Chehab		will disable support for them.
86b4c184e5SMauro Carvalho Chehab
87b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT
88b6a7d1bcSMauro Carvalho Chehab	bool
89b6a7d1bcSMauro Carvalho Chehab	prompt "Digital TV" if MEDIA_SUPPORT_FILTER
90c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
91b60a5b8dSMauro Carvalho Chehab	help
92b4c184e5SMauro Carvalho Chehab	  Enable digital TV support.
93b4c184e5SMauro Carvalho Chehab
94*85f7cd3aSMauro Carvalho Chehab	  Say Y when you have a board with digital support or a board with
95*85f7cd3aSMauro Carvalho Chehab	  hybrid digital TV and analog TV.
96b4c184e5SMauro Carvalho Chehab
97b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT
98b6a7d1bcSMauro Carvalho Chehab	bool
99b6a7d1bcSMauro Carvalho Chehab	prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
100c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
101b60a5b8dSMauro Carvalho Chehab	help
102b4c184e5SMauro Carvalho Chehab	  Enable AM/FM radio support.
103b4c184e5SMauro Carvalho Chehab
104b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
105991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
106b4c184e5SMauro Carvalho Chehab
107b4c184e5SMauro Carvalho Chehab	  Say Y when you have a board with radio support.
108b4c184e5SMauro Carvalho Chehab
109*85f7cd3aSMauro Carvalho Chehab	  Note: There are several TV cards that are based on chips that
110*85f7cd3aSMauro Carvalho Chehab		support radio reception. Disabling this option will
111*85f7cd3aSMauro Carvalho Chehab		disable support for them.
112*85f7cd3aSMauro Carvalho Chehab
113435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT
114b6a7d1bcSMauro Carvalho Chehab	bool
115b6a7d1bcSMauro Carvalho Chehab	prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
116c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
117b60a5b8dSMauro Carvalho Chehab	help
118435ef148SAntti Palosaari	  Enable software defined radio support.
119435ef148SAntti Palosaari
120435ef148SAntti Palosaari	  Say Y when you have a software defined radio device.
121435ef148SAntti Palosaari
1220dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT
123b6a7d1bcSMauro Carvalho Chehab	bool
124b6a7d1bcSMauro Carvalho Chehab	prompt "HDMI CEC support" if MEDIA_SUPPORT_FILTER
125c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
126b60a5b8dSMauro Carvalho Chehab	help
1270dbacebeSHans Verkuil	  Enable support for HDMI CEC (Consumer Electronics Control),
1280dbacebeSHans Verkuil	  which is an optional HDMI feature.
1290dbacebeSHans Verkuil
1300dbacebeSHans Verkuil	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
1310dbacebeSHans Verkuil	  adapter that supports HDMI CEC.
1320dbacebeSHans Verkuil
13306b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT
134b6a7d1bcSMauro Carvalho Chehab	bool
135b6a7d1bcSMauro Carvalho Chehab	prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
136c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
13706b93644SMauro Carvalho Chehab	help
13806b93644SMauro Carvalho Chehab	  Enable support for complex cameras, codecs, and other hardware
13906b93644SMauro Carvalho Chehab	  that are integrated at the CPU, GPU or on Image Signalling Processor
14006b93644SMauro Carvalho Chehab	  and don't use PCI, USB or Firewire buses.
14106b93644SMauro Carvalho Chehab
14206b93644SMauro Carvalho Chehab	  This is found on Embedded hardware (SoC), on V4L2 codecs and
14306b93644SMauro Carvalho Chehab	  on some GPU and newer CPU chipsets.
14406b93644SMauro Carvalho Chehab
14506b93644SMauro Carvalho Chehab	  Say Y when you want to be able so see such devices.
14606b93644SMauro Carvalho Chehab
1474b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT
148b6a7d1bcSMauro Carvalho Chehab	bool
149b6a7d1bcSMauro Carvalho Chehab	prompt "Test drivers" if MEDIA_SUPPORT_FILTER
150c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
1514b32216aSMauro Carvalho Chehab	help
1524b32216aSMauro Carvalho Chehab	  Those drivers should not be used on production Kernels, but
1534b32216aSMauro Carvalho Chehab	  can be useful on debug ones. It enables several dummy drivers
1544b32216aSMauro Carvalho Chehab	  that simulate a real hardware. Very useful to test userspace
1554b32216aSMauro Carvalho Chehab	  applications and to validate if the subsystem core is doesn't
1564b32216aSMauro Carvalho Chehab	  have regressions.
1574b32216aSMauro Carvalho Chehab
1584b32216aSMauro Carvalho Chehab	  Say Y if you want to use some virtual test driver.
1594b32216aSMauro Carvalho Chehab
1604b32216aSMauro Carvalho Chehab	  In case of doubts, say N.
161c39d5704SMauro Carvalho Chehab	  Say Y when you have a software defined radio device.
162c6774ee0SMauro Carvalho Chehabendmenu # media device types
1634b32216aSMauro Carvalho Chehab
164078ab3eaSSakari Ailus
1655e9e60f4SMauro Carvalho Chehabmenu "Media core support"
1665e9e60f4SMauro Carvalho Chehab	visible if !MEDIA_SUPPORT_FILTER
1677c91f062SMauro Carvalho Chehab
1681da177e4SLinus Torvaldsconfig VIDEO_DEV
169*85f7cd3aSMauro Carvalho Chehab	tristate "Video4Linux core"
170*85f7cd3aSMauro Carvalho Chehab	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
1715e9e60f4SMauro Carvalho Chehab	help
1725e9e60f4SMauro Carvalho Chehab	  Enables the V4L2 API, used by cameras, analog TV, video grabbers,
1735e9e60f4SMauro Carvalho Chehab	  radio devices and by some input devices.
1741da177e4SLinus Torvalds
1758fc42fffSMauro Carvalho Chehabconfig MEDIA_CONTROLLER
1768fc42fffSMauro Carvalho Chehab	bool "Media Controller API"
1778fc42fffSMauro Carvalho Chehab	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
1788fc42fffSMauro Carvalho Chehab	help
1798fc42fffSMauro Carvalho Chehab	  Enable the media controller API used to query media devices internal
1808fc42fffSMauro Carvalho Chehab	  topology and configure it dynamically.
1818fc42fffSMauro Carvalho Chehab
1828fc42fffSMauro Carvalho Chehab	  This API is mostly used by camera interfaces in embedded platforms.
1838fc42fffSMauro Carvalho Chehab
1847c91f062SMauro Carvalho Chehab#
1857c91f062SMauro Carvalho Chehab# DVB Core
186b4c184e5SMauro Carvalho Chehab#	Only enables if one of DTV is selected
1877c91f062SMauro Carvalho Chehab#
188cd41e28eSMauro Carvalho Chehab
1897c91f062SMauro Carvalho Chehabconfig DVB_CORE
190b4c184e5SMauro Carvalho Chehab	tristate
191b4c184e5SMauro Carvalho Chehab	depends on MEDIA_DIGITAL_TV_SUPPORT
19288327305SMauro Carvalho Chehab	depends on (I2C || I2C=n)
1937c91f062SMauro Carvalho Chehab	select CRC32
1944021053eSMauro Carvalho Chehab	help
1955e9e60f4SMauro Carvalho Chehab	  Enables the DVB API, used by Digital TV devices. Supports several
1965e9e60f4SMauro Carvalho Chehab	  standards, including DVB, ATSC, ISDB and CMDB.
1974021053eSMauro Carvalho Chehab
1985e9e60f4SMauro Carvalho Chehabendmenu # Media core support
1994021053eSMauro Carvalho Chehab
2005e9e60f4SMauro Carvalho Chehab#
2015e9e60f4SMauro Carvalho Chehab# Extra per-media API core functionality
202a34ff6cdSHans Petter Selasky
2030c822d97SMauro Carvalho Chehabmenu "Video4Linux options"
2040c822d97SMauro Carvalho Chehab	visible if VIDEO_DEV
2050c822d97SMauro Carvalho Chehab
2067d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig"
2070c822d97SMauro Carvalho Chehabendmenu
2080c822d97SMauro Carvalho Chehab
2090c822d97SMauro Carvalho Chehabmenu "Media controller options"
2100c822d97SMauro Carvalho Chehab	visible if MEDIA_CONTROLLER
2110c822d97SMauro Carvalho Chehab
2127d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig"
2130c822d97SMauro Carvalho Chehabendmenu
2140c822d97SMauro Carvalho Chehab
2150c822d97SMauro Carvalho Chehabmenu "Digital TV options"
2160c822d97SMauro Carvalho Chehab	visible if DVB_CORE
2170c822d97SMauro Carvalho Chehab
218f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig"
2190c822d97SMauro Carvalho Chehabendmenu
2200c822d97SMauro Carvalho Chehab
2210c822d97SMauro Carvalho Chehabmenu "HDMI CEC options"
2220c822d97SMauro Carvalho Chehab	visible if CEC_CORE
2230c822d97SMauro Carvalho Chehab
2247d5bc693SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig"
2255e9e60f4SMauro Carvalho Chehabendmenu
226f0af8fa4SMauro Carvalho Chehab
2275e9e60f4SMauro Carvalho Chehabmenu "Media drivers"
2287c91f062SMauro Carvalho Chehab
229ce971d95SMauro Carvalho Chehabcomment "Drivers filtered as selected at 'Filter media drivers'"
230ce971d95SMauro Carvalho Chehab	depends on MEDIA_SUPPORT_FILTER
231ce971d95SMauro Carvalho Chehab
232786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig"
2333c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig"
23406b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig"
23506b93644SMauro Carvalho Chehab
2367d5bc693SMauro Carvalho Chehab# Common driver options
2377d5bc693SMauro Carvalho Chehabsource "drivers/media/common/Kconfig"
2387d5bc693SMauro Carvalho Chehab
23906b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT
2403c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig"
2414b32216aSMauro Carvalho Chehabsource "drivers/media/test_drivers/Kconfig"
2420013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig"
24306b93644SMauro Carvalho Chehabendif
2441da177e4SLinus Torvalds
245616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig"
246616300bdSMauro Carvalho Chehab
2475e9e60f4SMauro Carvalho Chehabendmenu
2485e9e60f4SMauro Carvalho Chehab
2493c8c09b5SMauro Carvalho Chehab#
2508283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends)
2513c8c09b5SMauro Carvalho Chehab#
2523c8c09b5SMauro Carvalho Chehab
2534fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV
2544fa4ef39SEzequiel Garcia	bool
2554fa4ef39SEzequiel Garcia	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
2564fa4ef39SEzequiel Garcia	default y
2574fa4ef39SEzequiel Garcia
2581b80d36aSMauro Carvalho Chehabmenu "Media ancillary drivers"
2591b80d36aSMauro Carvalho Chehab	visible if !MEDIA_HIDE_ANCILLARY_SUBDRV
2601b80d36aSMauro Carvalho Chehab
261bb69ee27SMauro Carvalho Chehabconfig MEDIA_ATTACH
262bb69ee27SMauro Carvalho Chehab	bool
263bb69ee27SMauro Carvalho Chehab	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
264bb69ee27SMauro Carvalho Chehab	depends on MODULES
265bb69ee27SMauro Carvalho Chehab	default MODULES
266fccea74fSMauro Carvalho Chehab
2673c8c09b5SMauro Carvalho Chehabsource "drivers/media/i2c/Kconfig"
2688283a092SHans Verkuilsource "drivers/media/spi/Kconfig"
269fccea74fSMauro Carvalho Chehabsource "drivers/media/tuners/Kconfig"
2703c8c09b5SMauro Carvalho Chehabsource "drivers/media/dvb-frontends/Kconfig"
2713c8c09b5SMauro Carvalho Chehab
2725e9e60f4SMauro Carvalho Chehabendmenu
2735e9e60f4SMauro Carvalho Chehab
274ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT
275