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" 27f7ec3f62SLukas 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 185*7655c342SLecopzer Chen tristate "DVB Core" 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