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 8085f7cd3aSMauro Carvalho Chehab Say Y when you have a TV board with analog support or with a 8185f7cd3aSMauro Carvalho Chehab hybrid analog/digital TV chipset. 8285f7cd3aSMauro Carvalho Chehab 8385f7cd3aSMauro Carvalho Chehab Note: There are several DVB cards that are based on chips that 8485f7cd3aSMauro Carvalho Chehab support both analog and digital TV. Disabling this option 8585f7cd3aSMauro 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 9485f7cd3aSMauro Carvalho Chehab Say Y when you have a board with digital support or a board with 9585f7cd3aSMauro 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 10985f7cd3aSMauro Carvalho Chehab Note: There are several TV cards that are based on chips that 11085f7cd3aSMauro Carvalho Chehab support radio reception. Disabling this option will 11185f7cd3aSMauro Carvalho Chehab disable support for them. 11285f7cd3aSMauro 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 16985f7cd3aSMauro Carvalho Chehab tristate "Video4Linux core" 17085f7cd3aSMauro 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