xref: /openbmc/linux/drivers/media/Kconfig (revision c39d5704)
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
28c39d5704SMauro Carvalho Chehabmenu "Types of devices to be supported"
29c39d5704SMauro Carvalho Chehab	depends on MEDIA_SUPPORT
307c91f062SMauro Carvalho Chehab
317c91f062SMauro Carvalho Chehab#
32b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core
33b4c184e5SMauro Carvalho Chehab#
34b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT
35c39d5704SMauro Carvalho Chehab	bool "Cameras and video grabbers"
36b60a5b8dSMauro Carvalho Chehab	help
37b4c184e5SMauro Carvalho Chehab	  Enable support for webcams and video grabbers.
38b4c184e5SMauro Carvalho Chehab
39b4c184e5SMauro Carvalho Chehab	  Say Y when you have a webcam or a video capture grabber board.
40b4c184e5SMauro Carvalho Chehab
41b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT
42c39d5704SMauro Carvalho Chehab	bool "Analog TV"
43b60a5b8dSMauro Carvalho Chehab	help
44b4c184e5SMauro Carvalho Chehab	  Enable analog TV support.
45b4c184e5SMauro Carvalho Chehab
46a3b91d8bSMauro Carvalho Chehab	  Say Y when you have a board with analog TV support.
47b4c184e5SMauro Carvalho Chehab
48b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT
49c39d5704SMauro Carvalho Chehab	bool "Digital TV"
50b60a5b8dSMauro Carvalho Chehab	help
51b4c184e5SMauro Carvalho Chehab	  Enable digital TV support.
52b4c184e5SMauro Carvalho Chehab
53a3b91d8bSMauro Carvalho Chehab	  Say Y when you have a board with digital TV support.
54b4c184e5SMauro Carvalho Chehab
55b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT
56c39d5704SMauro Carvalho Chehab	bool "AM/FM radio receivers/transmitters"
57b60a5b8dSMauro Carvalho Chehab	help
58b4c184e5SMauro Carvalho Chehab	  Enable AM/FM radio support.
59b4c184e5SMauro Carvalho Chehab
60b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
61991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
62b4c184e5SMauro Carvalho Chehab
63b4c184e5SMauro Carvalho Chehab	  Say Y when you have a board with radio support.
64b4c184e5SMauro Carvalho Chehab
65435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT
66c39d5704SMauro Carvalho Chehab	bool "Software defined radio"
67b60a5b8dSMauro Carvalho Chehab	help
68435ef148SAntti Palosaari	  Enable software defined radio support.
69435ef148SAntti Palosaari
70435ef148SAntti Palosaari	  Say Y when you have a software defined radio device.
71435ef148SAntti Palosaari
720dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT
73c39d5704SMauro Carvalho Chehab	bool "HDMI CEC"
74b60a5b8dSMauro Carvalho Chehab	help
750dbacebeSHans Verkuil	  Enable support for HDMI CEC (Consumer Electronics Control),
760dbacebeSHans Verkuil	  which is an optional HDMI feature.
770dbacebeSHans Verkuil
780dbacebeSHans Verkuil	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
790dbacebeSHans Verkuil	  adapter that supports HDMI CEC.
800dbacebeSHans Verkuil
8106b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT
82c39d5704SMauro Carvalho Chehab	bool "Platform-specific devices"
8306b93644SMauro Carvalho Chehab	help
8406b93644SMauro Carvalho Chehab	  Enable support for complex cameras, codecs, and other hardware
8506b93644SMauro Carvalho Chehab	  that are integrated at the CPU, GPU or on Image Signalling Processor
8606b93644SMauro Carvalho Chehab	  and don't use PCI, USB or Firewire buses.
8706b93644SMauro Carvalho Chehab
8806b93644SMauro Carvalho Chehab	  This is found on Embedded hardware (SoC), on V4L2 codecs and
8906b93644SMauro Carvalho Chehab	  on some GPU and newer CPU chipsets.
9006b93644SMauro Carvalho Chehab
9106b93644SMauro Carvalho Chehab	  Say Y when you want to be able so see such devices.
9206b93644SMauro Carvalho Chehab
934b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT
94c39d5704SMauro Carvalho Chehab	bool "Test drivers"
954b32216aSMauro Carvalho Chehab	help
964b32216aSMauro Carvalho Chehab	  Those drivers should not be used on production Kernels, but
974b32216aSMauro Carvalho Chehab	  can be useful on debug ones. It enables several dummy drivers
984b32216aSMauro Carvalho Chehab	  that simulate a real hardware. Very useful to test userspace
994b32216aSMauro Carvalho Chehab	  applications and to validate if the subsystem core is doesn't
1004b32216aSMauro Carvalho Chehab	  have regressions.
1014b32216aSMauro Carvalho Chehab
1024b32216aSMauro Carvalho Chehab	  Say Y if you want to use some virtual test driver.
1034b32216aSMauro Carvalho Chehab
1044b32216aSMauro Carvalho Chehab	  In case of doubts, say N.
105c39d5704SMauro Carvalho Chehab	  Say Y when you have a software defined radio device.
106c39d5704SMauro Carvalho Chehabendmenu # Types of devices to be supported
107c39d5704SMauro Carvalho Chehab
108c39d5704SMauro Carvalho Chehabif MEDIA_SUPPORT
1094b32216aSMauro Carvalho Chehab
1107d5bc693SMauro Carvalho Chehabcomment "Multimedia core features"
111078ab3eaSSakari Ailus
112cf4b9211SLaurent Pinchart#
113b4c184e5SMauro Carvalho Chehab# Video4Linux support
114b4c184e5SMauro Carvalho Chehab#	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
1157c91f062SMauro Carvalho Chehab#
1167c91f062SMauro Carvalho Chehab
117a3b91d8bSMauro Carvalho Chehabcomment "Video4Linux core enabled to support hybrid TV devices"
118a3b91d8bSMauro Carvalho Chehab	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
119a3b91d8bSMauro Carvalho Chehab
1201da177e4SLinus Torvaldsconfig VIDEO_DEV
121b4c184e5SMauro Carvalho Chehab	tristate
122a3b91d8bSMauro Carvalho Chehab	prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
1236268b351SMauro 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
1241da177e4SLinus Torvalds
1257cd5a16bSStanimir Varbanovconfig VIDEO_V4L2_SUBDEV_API
12651e8cb74SKees Cook	bool "V4L2 sub-device userspace API"
12751e8cb74SKees Cook	depends on VIDEO_DEV && MEDIA_CONTROLLER
128b60a5b8dSMauro Carvalho Chehab	help
1297cd5a16bSStanimir Varbanov	  Enables the V4L2 sub-device pad-level userspace API used to configure
1307cd5a16bSStanimir Varbanov	  video format, size and frame rate between hardware blocks.
1317cd5a16bSStanimir Varbanov
1327cd5a16bSStanimir Varbanov	  This API is mostly used by camera interfaces in embedded platforms.
1337cd5a16bSStanimir Varbanov
1347c91f062SMauro Carvalho Chehab#
1357c91f062SMauro Carvalho Chehab# DVB Core
136b4c184e5SMauro Carvalho Chehab#	Only enables if one of DTV is selected
1377c91f062SMauro Carvalho Chehab#
138cd41e28eSMauro Carvalho Chehab
139a3b91d8bSMauro Carvalho Chehabcomment "Digital TV core enabled to support hybrid TV devices"
140a3b91d8bSMauro Carvalho Chehab	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
141a3b91d8bSMauro Carvalho Chehab
1427c91f062SMauro Carvalho Chehabconfig DVB_CORE
143b4c184e5SMauro Carvalho Chehab	tristate
144a3b91d8bSMauro Carvalho Chehab	prompt "Digital TV core"  if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
145b4c184e5SMauro Carvalho Chehab	depends on MEDIA_DIGITAL_TV_SUPPORT
14688327305SMauro Carvalho Chehab	depends on (I2C || I2C=n)
147b4c184e5SMauro Carvalho Chehab	default y
1487c91f062SMauro Carvalho Chehab	select CRC32
1497c91f062SMauro Carvalho Chehab
1504021053eSMauro Carvalho Chehabconfig DVB_MMAP
1514021053eSMauro Carvalho Chehab	bool "Enable DVB memory-mapped API (EXPERIMENTAL)"
1524021053eSMauro Carvalho Chehab	depends on DVB_CORE
15385e60bd7SArnd Bergmann	depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE
15485e60bd7SArnd Bergmann	select VIDEOBUF2_VMALLOC
1554021053eSMauro Carvalho Chehab	help
1562c27476eSMichael Ira Krufky	  This option enables DVB experimental memory-mapped API, which
1574021053eSMauro Carvalho Chehab	  reduces the number of context switches to read DVB buffers, as
1584021053eSMauro Carvalho Chehab	  the buffers can use mmap() syscalls.
1594021053eSMauro Carvalho Chehab
1604021053eSMauro Carvalho Chehab	  Support for it is experimental. Use with care. If unsure,
1614021053eSMauro Carvalho Chehab	  say N.
1624021053eSMauro Carvalho Chehab
163a34ff6cdSHans Petter Selaskyconfig DVB_NET
164a34ff6cdSHans Petter Selasky	bool "DVB Network Support"
165a34ff6cdSHans Petter Selasky	default (NET && INET)
1668c528d5eSGuennadi Liakhovetski	depends on NET && INET && DVB_CORE
167a34ff6cdSHans Petter Selasky	help
1689a78efc8SJiri Slaby	  This option enables DVB Network Support which is a part of the DVB
1699a78efc8SJiri Slaby	  standard. It is used, for example, by automatic firmware updates used
1709a78efc8SJiri Slaby	  on Set-Top-Boxes. It can also be used to access the Internet via the
1719a78efc8SJiri Slaby	  DVB card, if the network provider supports it.
172a34ff6cdSHans Petter Selasky
1739a78efc8SJiri Slaby	  You may want to disable the network support on embedded devices. If
1749a78efc8SJiri Slaby	  unsure say Y.
175a34ff6cdSHans Petter Selasky
1767d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig"
1777d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig"
178f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig"
1797d5bc693SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig"
180f0af8fa4SMauro Carvalho Chehab
181c455f5c8SMauro Carvalho Chehabcomment "Media drivers"
1827c91f062SMauro Carvalho Chehab
183786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig"
1843c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig"
18506b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig"
18606b93644SMauro Carvalho Chehab
1877d5bc693SMauro Carvalho Chehab# Common driver options
1887d5bc693SMauro Carvalho Chehabsource "drivers/media/common/Kconfig"
1897d5bc693SMauro Carvalho Chehab
19006b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT
1913c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig"
1924b32216aSMauro Carvalho Chehabsource "drivers/media/test_drivers/Kconfig"
1930013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig"
19406b93644SMauro Carvalho Chehabendif
1951da177e4SLinus Torvalds
196616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig"
197616300bdSMauro Carvalho Chehab
1988283a092SHans Verkuilcomment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"
1995344fe6eSHans Verkuil
2003c8c09b5SMauro Carvalho Chehab#
2018283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends)
2023c8c09b5SMauro Carvalho Chehab#
2033c8c09b5SMauro Carvalho Chehab
204fccea74fSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT
2058283a092SHans Verkuil	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
206435ef148SAntti Palosaari	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT
207347f7a37SMauro Carvalho Chehab	depends on HAS_IOMEM
208347f7a37SMauro Carvalho Chehab	select I2C
209347f7a37SMauro Carvalho Chehab	select I2C_MUX
21024f6f93aSEzequiel Garcia	default y if !EMBEDDED
211fccea74fSMauro Carvalho Chehab	help
2125344fe6eSHans Verkuil	  By default, a media driver auto-selects all possible ancillary
2135344fe6eSHans Verkuil	  devices such as tuners, sensors, video encoders/decoders and
2145344fe6eSHans Verkuil	  frontends, that are used by any of the supported devices.
215fccea74fSMauro Carvalho Chehab
216fccea74fSMauro Carvalho Chehab	  This is generally the right thing to do, except when there
2172c76a12aSMauro Carvalho Chehab	  are strict constraints with regards to the kernel size,
2182c76a12aSMauro Carvalho Chehab	  like on embedded systems.
219fccea74fSMauro Carvalho Chehab
2202c76a12aSMauro Carvalho Chehab	  Use this option with care, as deselecting ancillary drivers which
2212c76a12aSMauro Carvalho Chehab	  are, in fact, necessary will result in the lack of the needed
2222c76a12aSMauro Carvalho Chehab	  functionality for your device (it may not tune or may not have
2235344fe6eSHans Verkuil	  the needed demodulators).
224fccea74fSMauro Carvalho Chehab
225fccea74fSMauro Carvalho Chehab	  If unsure say Y.
226bb69ee27SMauro Carvalho Chehab
2274fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV
2284fa4ef39SEzequiel Garcia	bool
2294fa4ef39SEzequiel Garcia	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
2304fa4ef39SEzequiel Garcia	default y
2314fa4ef39SEzequiel Garcia
232bb69ee27SMauro Carvalho Chehabconfig MEDIA_ATTACH
233bb69ee27SMauro Carvalho Chehab	bool
234bb69ee27SMauro Carvalho Chehab	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
235bb69ee27SMauro Carvalho Chehab	depends on MODULES
236bb69ee27SMauro Carvalho Chehab	default MODULES
237fccea74fSMauro Carvalho Chehab
2383c8c09b5SMauro Carvalho Chehabsource "drivers/media/i2c/Kconfig"
2398283a092SHans Verkuilsource "drivers/media/spi/Kconfig"
240fccea74fSMauro Carvalho Chehabsource "drivers/media/tuners/Kconfig"
2413c8c09b5SMauro Carvalho Chehabsource "drivers/media/dvb-frontends/Kconfig"
2423c8c09b5SMauro Carvalho Chehab
243ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT
244