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