xref: /openbmc/linux/drivers/media/Kconfig (revision c6774ee0)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# Multimedia device configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
69177e51dSHans Verkuilconfig CEC_CORE
79177e51dSHans Verkuil	tristate
89177e51dSHans Verkuil
9e94c3281SHans Verkuilconfig CEC_NOTIFIER
109177e51dSHans Verkuil	bool
119177e51dSHans Verkuil
12ea5c8ef2SHans Verkuilconfig CEC_PIN
13ea5c8ef2SHans Verkuil	bool
14ea5c8ef2SHans Verkuil
15b9e1486eSSean Youngsource "drivers/media/rc/Kconfig"
16b9e1486eSSean Young
17ab482a6cSRandy Dunlapmenuconfig MEDIA_SUPPORT
18ab482a6cSRandy Dunlap	tristate "Multimedia support"
19e25df120SMartin Schwidefsky	depends on HAS_IOMEM
20ab482a6cSRandy Dunlap	help
21dee1877dSMauro Carvalho Chehab	  If you want to use media devices, including Webcams, Video grabber
22dee1877dSMauro Carvalho Chehab	  devices and/or TV devices, V4L2 codecs, etc, enable this option
23dee1877dSMauro Carvalho Chehab	  and other options below.
24dee1877dSMauro Carvalho Chehab
25b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
26991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
27ab482a6cSRandy Dunlap
28c6774ee0SMauro Carvalho Chehabif MEDIA_SUPPORT
29c6774ee0SMauro Carvalho Chehab
30c6774ee0SMauro Carvalho Chehabconfig MEDIA_SUPPORT_FILTER
31c6774ee0SMauro Carvalho Chehab	bool "Filter devices by their types"
32c39d5704SMauro Carvalho Chehab	depends on MEDIA_SUPPORT
33c6774ee0SMauro Carvalho Chehab	help
34c6774ee0SMauro Carvalho Chehab	   Configuring the media subsystem can be complex, as there are
35c6774ee0SMauro Carvalho Chehab	   hundreds of drivers and other config options.
36c6774ee0SMauro Carvalho Chehab
37c6774ee0SMauro Carvalho Chehab	   This menu offers option that will help the Kernel's config
38c6774ee0SMauro Carvalho Chehab	   system to hide drivers that are out of the scope of the
39c6774ee0SMauro Carvalho Chehab	   user needs, and disabling core support for unused APIs.
40c6774ee0SMauro Carvalho Chehab
41c6774ee0SMauro Carvalho Chehab	   If not selected, all non-optional media core functionality
42c6774ee0SMauro Carvalho Chehab	   needed to support media drivers will be enabled. Also, all
43c6774ee0SMauro Carvalho Chehab	   media device drivers should be shown.
44c6774ee0SMauro Carvalho Chehab
45c6774ee0SMauro Carvalho Chehabmenu "Media device types"
46c6774ee0SMauro Carvalho Chehab	visible if MEDIA_SUPPORT_FILTER
477c91f062SMauro Carvalho Chehab
487c91f062SMauro Carvalho Chehab#
49b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core
50b4c184e5SMauro Carvalho Chehab#
51b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT
52c39d5704SMauro Carvalho Chehab	bool "Cameras and video grabbers"
53c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
54b60a5b8dSMauro Carvalho Chehab	help
55b4c184e5SMauro Carvalho Chehab	  Enable support for webcams and video grabbers.
56b4c184e5SMauro Carvalho Chehab
57b4c184e5SMauro Carvalho Chehab	  Say Y when you have a webcam or a video capture grabber board.
58b4c184e5SMauro Carvalho Chehab
59b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT
60c39d5704SMauro Carvalho Chehab	bool "Analog TV"
61c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
62b60a5b8dSMauro Carvalho Chehab	help
63b4c184e5SMauro Carvalho Chehab	  Enable analog TV support.
64b4c184e5SMauro Carvalho Chehab
65a3b91d8bSMauro Carvalho Chehab	  Say Y when you have a board with analog TV support.
66b4c184e5SMauro Carvalho Chehab
67b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT
68c39d5704SMauro Carvalho Chehab	bool "Digital TV"
69c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
70b60a5b8dSMauro Carvalho Chehab	help
71b4c184e5SMauro Carvalho Chehab	  Enable digital TV support.
72b4c184e5SMauro Carvalho Chehab
73a3b91d8bSMauro Carvalho Chehab	  Say Y when you have a board with digital TV support.
74b4c184e5SMauro Carvalho Chehab
75b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT
76c39d5704SMauro Carvalho Chehab	bool "AM/FM radio receivers/transmitters"
77c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
78b60a5b8dSMauro Carvalho Chehab	help
79b4c184e5SMauro Carvalho Chehab	  Enable AM/FM radio support.
80b4c184e5SMauro Carvalho Chehab
81b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
82991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
83b4c184e5SMauro Carvalho Chehab
84b4c184e5SMauro Carvalho Chehab	  Say Y when you have a board with radio support.
85b4c184e5SMauro Carvalho Chehab
86435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT
87c39d5704SMauro Carvalho Chehab	bool "Software defined radio"
88c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
89b60a5b8dSMauro Carvalho Chehab	help
90435ef148SAntti Palosaari	  Enable software defined radio support.
91435ef148SAntti Palosaari
92435ef148SAntti Palosaari	  Say Y when you have a software defined radio device.
93435ef148SAntti Palosaari
940dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT
95c39d5704SMauro Carvalho Chehab	bool "HDMI CEC"
96c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
97b60a5b8dSMauro Carvalho Chehab	help
980dbacebeSHans Verkuil	  Enable support for HDMI CEC (Consumer Electronics Control),
990dbacebeSHans Verkuil	  which is an optional HDMI feature.
1000dbacebeSHans Verkuil
1010dbacebeSHans Verkuil	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
1020dbacebeSHans Verkuil	  adapter that supports HDMI CEC.
1030dbacebeSHans Verkuil
10406b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT
105c39d5704SMauro Carvalho Chehab	bool "Platform-specific devices"
106c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
10706b93644SMauro Carvalho Chehab	help
10806b93644SMauro Carvalho Chehab	  Enable support for complex cameras, codecs, and other hardware
10906b93644SMauro Carvalho Chehab	  that are integrated at the CPU, GPU or on Image Signalling Processor
11006b93644SMauro Carvalho Chehab	  and don't use PCI, USB or Firewire buses.
11106b93644SMauro Carvalho Chehab
11206b93644SMauro Carvalho Chehab	  This is found on Embedded hardware (SoC), on V4L2 codecs and
11306b93644SMauro Carvalho Chehab	  on some GPU and newer CPU chipsets.
11406b93644SMauro Carvalho Chehab
11506b93644SMauro Carvalho Chehab	  Say Y when you want to be able so see such devices.
11606b93644SMauro Carvalho Chehab
1174b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT
118c39d5704SMauro Carvalho Chehab	bool "Test drivers"
119c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
1204b32216aSMauro Carvalho Chehab	help
1214b32216aSMauro Carvalho Chehab	  Those drivers should not be used on production Kernels, but
1224b32216aSMauro Carvalho Chehab	  can be useful on debug ones. It enables several dummy drivers
1234b32216aSMauro Carvalho Chehab	  that simulate a real hardware. Very useful to test userspace
1244b32216aSMauro Carvalho Chehab	  applications and to validate if the subsystem core is doesn't
1254b32216aSMauro Carvalho Chehab	  have regressions.
1264b32216aSMauro Carvalho Chehab
1274b32216aSMauro Carvalho Chehab	  Say Y if you want to use some virtual test driver.
1284b32216aSMauro Carvalho Chehab
1294b32216aSMauro Carvalho Chehab	  In case of doubts, say N.
130c39d5704SMauro Carvalho Chehab	  Say Y when you have a software defined radio device.
131c6774ee0SMauro Carvalho Chehabendmenu # media device types
1324b32216aSMauro Carvalho Chehab
1337d5bc693SMauro Carvalho Chehabcomment "Multimedia core features"
134078ab3eaSSakari Ailus
135cf4b9211SLaurent Pinchart#
136b4c184e5SMauro Carvalho Chehab# Video4Linux support
137b4c184e5SMauro Carvalho Chehab#	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
1387c91f062SMauro Carvalho Chehab#
1397c91f062SMauro Carvalho Chehab
140a3b91d8bSMauro Carvalho Chehabcomment "Video4Linux core enabled to support hybrid TV devices"
141a3b91d8bSMauro Carvalho Chehab	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
142a3b91d8bSMauro Carvalho Chehab
1431da177e4SLinus Torvaldsconfig VIDEO_DEV
144b4c184e5SMauro Carvalho Chehab	tristate
145a3b91d8bSMauro Carvalho Chehab	prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
1466268b351SMauro Carvalho Chehab	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
1471da177e4SLinus Torvalds
1487cd5a16bSStanimir Varbanovconfig VIDEO_V4L2_SUBDEV_API
14951e8cb74SKees Cook	bool "V4L2 sub-device userspace API"
15051e8cb74SKees Cook	depends on VIDEO_DEV && MEDIA_CONTROLLER
151b60a5b8dSMauro Carvalho Chehab	help
1527cd5a16bSStanimir Varbanov	  Enables the V4L2 sub-device pad-level userspace API used to configure
1537cd5a16bSStanimir Varbanov	  video format, size and frame rate between hardware blocks.
1547cd5a16bSStanimir Varbanov
1557cd5a16bSStanimir Varbanov	  This API is mostly used by camera interfaces in embedded platforms.
1567cd5a16bSStanimir Varbanov
1577c91f062SMauro Carvalho Chehab#
1587c91f062SMauro Carvalho Chehab# DVB Core
159b4c184e5SMauro Carvalho Chehab#	Only enables if one of DTV is selected
1607c91f062SMauro Carvalho Chehab#
161cd41e28eSMauro Carvalho Chehab
162a3b91d8bSMauro Carvalho Chehabcomment "Digital TV core enabled to support hybrid TV devices"
163a3b91d8bSMauro Carvalho Chehab	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
164a3b91d8bSMauro Carvalho Chehab
1657c91f062SMauro Carvalho Chehabconfig DVB_CORE
166b4c184e5SMauro Carvalho Chehab	tristate
167a3b91d8bSMauro Carvalho Chehab	prompt "Digital TV core"  if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
168b4c184e5SMauro Carvalho Chehab	depends on MEDIA_DIGITAL_TV_SUPPORT
16988327305SMauro Carvalho Chehab	depends on (I2C || I2C=n)
170b4c184e5SMauro Carvalho Chehab	default y
1717c91f062SMauro Carvalho Chehab	select CRC32
1727c91f062SMauro Carvalho Chehab
1734021053eSMauro Carvalho Chehabconfig DVB_MMAP
1744021053eSMauro Carvalho Chehab	bool "Enable DVB memory-mapped API (EXPERIMENTAL)"
1754021053eSMauro Carvalho Chehab	depends on DVB_CORE
17685e60bd7SArnd Bergmann	depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE
17785e60bd7SArnd Bergmann	select VIDEOBUF2_VMALLOC
1784021053eSMauro Carvalho Chehab	help
1792c27476eSMichael Ira Krufky	  This option enables DVB experimental memory-mapped API, which
1804021053eSMauro Carvalho Chehab	  reduces the number of context switches to read DVB buffers, as
1814021053eSMauro Carvalho Chehab	  the buffers can use mmap() syscalls.
1824021053eSMauro Carvalho Chehab
1834021053eSMauro Carvalho Chehab	  Support for it is experimental. Use with care. If unsure,
1844021053eSMauro Carvalho Chehab	  say N.
1854021053eSMauro Carvalho Chehab
186a34ff6cdSHans Petter Selaskyconfig DVB_NET
187a34ff6cdSHans Petter Selasky	bool "DVB Network Support"
188a34ff6cdSHans Petter Selasky	default (NET && INET)
1898c528d5eSGuennadi Liakhovetski	depends on NET && INET && DVB_CORE
190a34ff6cdSHans Petter Selasky	help
1919a78efc8SJiri Slaby	  This option enables DVB Network Support which is a part of the DVB
1929a78efc8SJiri Slaby	  standard. It is used, for example, by automatic firmware updates used
1939a78efc8SJiri Slaby	  on Set-Top-Boxes. It can also be used to access the Internet via the
1949a78efc8SJiri Slaby	  DVB card, if the network provider supports it.
195a34ff6cdSHans Petter Selasky
1969a78efc8SJiri Slaby	  You may want to disable the network support on embedded devices. If
1979a78efc8SJiri Slaby	  unsure say Y.
198a34ff6cdSHans Petter Selasky
1997d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig"
2007d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig"
201f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig"
2027d5bc693SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig"
203f0af8fa4SMauro Carvalho Chehab
204c455f5c8SMauro Carvalho Chehabcomment "Media drivers"
2057c91f062SMauro Carvalho Chehab
206786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig"
2073c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig"
20806b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig"
20906b93644SMauro Carvalho Chehab
2107d5bc693SMauro Carvalho Chehab# Common driver options
2117d5bc693SMauro Carvalho Chehabsource "drivers/media/common/Kconfig"
2127d5bc693SMauro Carvalho Chehab
21306b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT
2143c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig"
2154b32216aSMauro Carvalho Chehabsource "drivers/media/test_drivers/Kconfig"
2160013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig"
21706b93644SMauro Carvalho Chehabendif
2181da177e4SLinus Torvalds
219616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig"
220616300bdSMauro Carvalho Chehab
2218283a092SHans Verkuilcomment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"
2225344fe6eSHans Verkuil
2233c8c09b5SMauro Carvalho Chehab#
2248283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends)
2253c8c09b5SMauro Carvalho Chehab#
2263c8c09b5SMauro Carvalho Chehab
227fccea74fSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT
2288283a092SHans Verkuil	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
229435ef148SAntti Palosaari	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT
230347f7a37SMauro Carvalho Chehab	depends on HAS_IOMEM
231347f7a37SMauro Carvalho Chehab	select I2C
232347f7a37SMauro Carvalho Chehab	select I2C_MUX
23324f6f93aSEzequiel Garcia	default y if !EMBEDDED
234fccea74fSMauro Carvalho Chehab	help
2355344fe6eSHans Verkuil	  By default, a media driver auto-selects all possible ancillary
2365344fe6eSHans Verkuil	  devices such as tuners, sensors, video encoders/decoders and
2375344fe6eSHans Verkuil	  frontends, that are used by any of the supported devices.
238fccea74fSMauro Carvalho Chehab
239fccea74fSMauro Carvalho Chehab	  This is generally the right thing to do, except when there
2402c76a12aSMauro Carvalho Chehab	  are strict constraints with regards to the kernel size,
2412c76a12aSMauro Carvalho Chehab	  like on embedded systems.
242fccea74fSMauro Carvalho Chehab
2432c76a12aSMauro Carvalho Chehab	  Use this option with care, as deselecting ancillary drivers which
2442c76a12aSMauro Carvalho Chehab	  are, in fact, necessary will result in the lack of the needed
2452c76a12aSMauro Carvalho Chehab	  functionality for your device (it may not tune or may not have
2465344fe6eSHans Verkuil	  the needed demodulators).
247fccea74fSMauro Carvalho Chehab
248fccea74fSMauro Carvalho Chehab	  If unsure say Y.
249bb69ee27SMauro Carvalho Chehab
2504fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV
2514fa4ef39SEzequiel Garcia	bool
2524fa4ef39SEzequiel Garcia	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
2534fa4ef39SEzequiel Garcia	default y
2544fa4ef39SEzequiel Garcia
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
266ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT
267