1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# Multimedia device configuration 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 69393d050SMauro Carvalho Chehab# 79393d050SMauro Carvalho Chehab# NOTE: Those symbols can't depend on MEDIA_SUPPORT, as it would cause 89393d050SMauro Carvalho Chehab# unmatched dependencies 99393d050SMauro Carvalho Chehab# 109393d050SMauro Carvalho Chehabconfig CEC_CORE 119393d050SMauro Carvalho Chehab tristate 129393d050SMauro Carvalho Chehab 139393d050SMauro Carvalho Chehabconfig CEC_NOTIFIER 149393d050SMauro Carvalho Chehab bool 159393d050SMauro Carvalho Chehab 169393d050SMauro Carvalho Chehabconfig CEC_PIN 179393d050SMauro Carvalho Chehab bool 189393d050SMauro Carvalho Chehab 19b9e1486eSSean Youngsource "drivers/media/rc/Kconfig" 20b9e1486eSSean Young 21ab482a6cSRandy Dunlapmenuconfig MEDIA_SUPPORT 22ab482a6cSRandy Dunlap tristate "Multimedia support" 23e25df120SMartin Schwidefsky depends on HAS_IOMEM 24ab482a6cSRandy Dunlap help 25dee1877dSMauro Carvalho Chehab If you want to use media devices, including Webcams, Video grabber 26dee1877dSMauro Carvalho Chehab devices and/or TV devices, V4L2 codecs, etc, enable this option 27dee1877dSMauro Carvalho Chehab and other options below. 28dee1877dSMauro Carvalho Chehab 29b4c184e5SMauro Carvalho Chehab Additional info and docs are available on the web at 30991ce92fSMauro Carvalho Chehab <https://linuxtv.org> 31ab482a6cSRandy Dunlap 32c6774ee0SMauro Carvalho Chehabif MEDIA_SUPPORT 33c6774ee0SMauro Carvalho Chehab 34c6774ee0SMauro Carvalho Chehabconfig MEDIA_SUPPORT_FILTER 35ce971d95SMauro Carvalho Chehab bool "Filter media drivers" 36c39d5704SMauro Carvalho Chehab depends on MEDIA_SUPPORT 37b0cd4fb2SMauro Carvalho Chehab default y if !EMBEDDED && !EXPERT 38c6774ee0SMauro Carvalho Chehab help 39c6774ee0SMauro Carvalho Chehab Configuring the media subsystem can be complex, as there are 40c6774ee0SMauro Carvalho Chehab hundreds of drivers and other config options. 41c6774ee0SMauro Carvalho Chehab 42c6774ee0SMauro Carvalho Chehab This menu offers option that will help the Kernel's config 43c6774ee0SMauro Carvalho Chehab system to hide drivers that are out of the scope of the 44c6774ee0SMauro Carvalho Chehab user needs, and disabling core support for unused APIs. 45c6774ee0SMauro Carvalho Chehab 46c6774ee0SMauro Carvalho Chehab If not selected, all non-optional media core functionality 47c6774ee0SMauro Carvalho Chehab needed to support media drivers will be enabled. Also, all 48c6774ee0SMauro Carvalho Chehab media device drivers should be shown. 49c6774ee0SMauro Carvalho Chehab 501b80d36aSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT 511b80d36aSMauro Carvalho Chehab bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" 521b80d36aSMauro Carvalho Chehab depends on HAS_IOMEM 531b80d36aSMauro Carvalho Chehab select I2C 541b80d36aSMauro Carvalho Chehab select I2C_MUX 551b80d36aSMauro Carvalho Chehab default y if MEDIA_SUPPORT_FILTER 561b80d36aSMauro Carvalho Chehab help 571b80d36aSMauro Carvalho Chehab By default, a media driver auto-selects all possible ancillary 581b80d36aSMauro Carvalho Chehab devices such as tuners, sensors, video encoders/decoders and 591b80d36aSMauro Carvalho Chehab frontends, that are used by any of the supported devices. 601b80d36aSMauro Carvalho Chehab 611b80d36aSMauro Carvalho Chehab This is generally the right thing to do, except when there 621b80d36aSMauro Carvalho Chehab are strict constraints with regards to the kernel size, 631b80d36aSMauro Carvalho Chehab like on embedded systems. 641b80d36aSMauro Carvalho Chehab 651b80d36aSMauro Carvalho Chehab Use this option with care, as deselecting ancillary drivers which 661b80d36aSMauro Carvalho Chehab are, in fact, necessary will result in the lack of the needed 671b80d36aSMauro Carvalho Chehab functionality for your device (it may not tune or may not have 681b80d36aSMauro Carvalho Chehab the needed demodulators). 691b80d36aSMauro Carvalho Chehab 701b80d36aSMauro Carvalho Chehab If unsure say Y. 711b80d36aSMauro Carvalho Chehab 72c6774ee0SMauro Carvalho Chehabmenu "Media device types" 737c91f062SMauro Carvalho Chehab 747c91f062SMauro Carvalho Chehab# 75b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core 76b4c184e5SMauro Carvalho Chehab# 77b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT 78b6a7d1bcSMauro Carvalho Chehab bool 79b6a7d1bcSMauro Carvalho Chehab prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER 80c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 81b60a5b8dSMauro Carvalho Chehab help 82b4c184e5SMauro Carvalho Chehab Enable support for webcams and video grabbers. 83b4c184e5SMauro Carvalho Chehab 84b4c184e5SMauro Carvalho Chehab Say Y when you have a webcam or a video capture grabber board. 85b4c184e5SMauro Carvalho Chehab 86b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT 87b6a7d1bcSMauro Carvalho Chehab bool 88b6a7d1bcSMauro Carvalho Chehab prompt "Analog TV" if MEDIA_SUPPORT_FILTER 89c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 90b60a5b8dSMauro Carvalho Chehab help 91b4c184e5SMauro Carvalho Chehab Enable analog TV support. 92b4c184e5SMauro Carvalho Chehab 9385f7cd3aSMauro Carvalho Chehab Say Y when you have a TV board with analog support or with a 9485f7cd3aSMauro Carvalho Chehab hybrid analog/digital TV chipset. 9585f7cd3aSMauro Carvalho Chehab 9685f7cd3aSMauro Carvalho Chehab Note: There are several DVB cards that are based on chips that 9785f7cd3aSMauro Carvalho Chehab support both analog and digital TV. Disabling this option 9885f7cd3aSMauro Carvalho Chehab will disable support for them. 99b4c184e5SMauro Carvalho Chehab 100b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT 101b6a7d1bcSMauro Carvalho Chehab bool 102b6a7d1bcSMauro Carvalho Chehab prompt "Digital TV" if MEDIA_SUPPORT_FILTER 103c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 104b60a5b8dSMauro Carvalho Chehab help 105b4c184e5SMauro Carvalho Chehab Enable digital TV support. 106b4c184e5SMauro Carvalho Chehab 10785f7cd3aSMauro Carvalho Chehab Say Y when you have a board with digital support or a board with 10885f7cd3aSMauro Carvalho Chehab hybrid digital TV and analog TV. 109b4c184e5SMauro Carvalho Chehab 110b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT 111b6a7d1bcSMauro Carvalho Chehab bool 112b6a7d1bcSMauro Carvalho Chehab prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER 113c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 114b60a5b8dSMauro Carvalho Chehab help 115b4c184e5SMauro Carvalho Chehab Enable AM/FM radio support. 116b4c184e5SMauro Carvalho Chehab 117b4c184e5SMauro Carvalho Chehab Additional info and docs are available on the web at 118991ce92fSMauro Carvalho Chehab <https://linuxtv.org> 119b4c184e5SMauro Carvalho Chehab 120b4c184e5SMauro Carvalho Chehab Say Y when you have a board with radio support. 121b4c184e5SMauro Carvalho Chehab 12285f7cd3aSMauro Carvalho Chehab Note: There are several TV cards that are based on chips that 12385f7cd3aSMauro Carvalho Chehab support radio reception. Disabling this option will 12485f7cd3aSMauro Carvalho Chehab disable support for them. 12585f7cd3aSMauro Carvalho Chehab 126435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT 127b6a7d1bcSMauro Carvalho Chehab bool 128b6a7d1bcSMauro Carvalho Chehab prompt "Software defined radio" if MEDIA_SUPPORT_FILTER 129c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 130b60a5b8dSMauro Carvalho Chehab help 131435ef148SAntti Palosaari Enable software defined radio support. 132435ef148SAntti Palosaari 133435ef148SAntti Palosaari Say Y when you have a software defined radio device. 134435ef148SAntti Palosaari 1350dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT 136b6a7d1bcSMauro Carvalho Chehab bool 137b6a7d1bcSMauro Carvalho Chehab prompt "HDMI CEC support" if MEDIA_SUPPORT_FILTER 138c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 139b60a5b8dSMauro Carvalho Chehab help 1400dbacebeSHans Verkuil Enable support for HDMI CEC (Consumer Electronics Control), 1410dbacebeSHans Verkuil which is an optional HDMI feature. 1420dbacebeSHans Verkuil 1430dbacebeSHans Verkuil Say Y when you have an HDMI receiver, transmitter or a USB CEC 1440dbacebeSHans Verkuil adapter that supports HDMI CEC. 1450dbacebeSHans Verkuil 14606b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT 147b6a7d1bcSMauro Carvalho Chehab bool 148b6a7d1bcSMauro Carvalho Chehab prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER 149c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 15006b93644SMauro Carvalho Chehab help 15106b93644SMauro Carvalho Chehab Enable support for complex cameras, codecs, and other hardware 15206b93644SMauro Carvalho Chehab that are integrated at the CPU, GPU or on Image Signalling Processor 15306b93644SMauro Carvalho Chehab and don't use PCI, USB or Firewire buses. 15406b93644SMauro Carvalho Chehab 15506b93644SMauro Carvalho Chehab This is found on Embedded hardware (SoC), on V4L2 codecs and 15606b93644SMauro Carvalho Chehab on some GPU and newer CPU chipsets. 15706b93644SMauro Carvalho Chehab 15806b93644SMauro Carvalho Chehab Say Y when you want to be able so see such devices. 15906b93644SMauro Carvalho Chehab 1604b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT 161b6a7d1bcSMauro Carvalho Chehab bool 162b6a7d1bcSMauro Carvalho Chehab prompt "Test drivers" if MEDIA_SUPPORT_FILTER 163c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 1644b32216aSMauro Carvalho Chehab help 1654b32216aSMauro Carvalho Chehab Those drivers should not be used on production Kernels, but 1664b32216aSMauro Carvalho Chehab can be useful on debug ones. It enables several dummy drivers 1674b32216aSMauro Carvalho Chehab that simulate a real hardware. Very useful to test userspace 1684b32216aSMauro Carvalho Chehab applications and to validate if the subsystem core is doesn't 1694b32216aSMauro Carvalho Chehab have regressions. 1704b32216aSMauro Carvalho Chehab 1714b32216aSMauro Carvalho Chehab Say Y if you want to use some virtual test driver. 1724b32216aSMauro Carvalho Chehab 1734b32216aSMauro Carvalho Chehab In case of doubts, say N. 174c39d5704SMauro Carvalho Chehab Say Y when you have a software defined radio device. 175c6774ee0SMauro Carvalho Chehabendmenu # media device types 1764b32216aSMauro Carvalho Chehab 177078ab3eaSSakari Ailus 1785e9e60f4SMauro Carvalho Chehabmenu "Media core support" 1795e9e60f4SMauro Carvalho Chehab visible if !MEDIA_SUPPORT_FILTER 1807c91f062SMauro Carvalho Chehab 1811da177e4SLinus Torvaldsconfig VIDEO_DEV 18285f7cd3aSMauro Carvalho Chehab tristate "Video4Linux core" 18385f7cd3aSMauro Carvalho Chehab default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT 1845e9e60f4SMauro Carvalho Chehab help 1855e9e60f4SMauro Carvalho Chehab Enables the V4L2 API, used by cameras, analog TV, video grabbers, 1865e9e60f4SMauro Carvalho Chehab radio devices and by some input devices. 1871da177e4SLinus Torvalds 1888fc42fffSMauro Carvalho Chehabconfig MEDIA_CONTROLLER 1898fc42fffSMauro Carvalho Chehab bool "Media Controller API" 1908fc42fffSMauro Carvalho Chehab default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT 1918fc42fffSMauro Carvalho Chehab help 1928fc42fffSMauro Carvalho Chehab Enable the media controller API used to query media devices internal 1938fc42fffSMauro Carvalho Chehab topology and configure it dynamically. 1948fc42fffSMauro Carvalho Chehab 1958fc42fffSMauro Carvalho Chehab This API is mostly used by camera interfaces in embedded platforms. 1968fc42fffSMauro Carvalho Chehab 1977c91f062SMauro Carvalho Chehab# 1987c91f062SMauro Carvalho Chehab# DVB Core 199b4c184e5SMauro Carvalho Chehab# Only enables if one of DTV is selected 2007c91f062SMauro Carvalho Chehab# 201cd41e28eSMauro Carvalho Chehab 2027c91f062SMauro Carvalho Chehabconfig DVB_CORE 203b4c184e5SMauro Carvalho Chehab tristate 204b4c184e5SMauro Carvalho Chehab depends on MEDIA_DIGITAL_TV_SUPPORT 20588327305SMauro Carvalho Chehab depends on (I2C || I2C=n) 2068e5b5d75SMauro Carvalho Chehab default MEDIA_DIGITAL_TV_SUPPORT 2077c91f062SMauro Carvalho Chehab select CRC32 2084021053eSMauro Carvalho Chehab help 2095e9e60f4SMauro Carvalho Chehab Enables the DVB API, used by Digital TV devices. Supports several 2105e9e60f4SMauro Carvalho Chehab standards, including DVB, ATSC, ISDB and CMDB. 2114021053eSMauro Carvalho Chehab 2125e9e60f4SMauro Carvalho Chehabendmenu # Media core support 2134021053eSMauro Carvalho Chehab 2145e9e60f4SMauro Carvalho Chehab# 2155e9e60f4SMauro Carvalho Chehab# Extra per-media API core functionality 216a34ff6cdSHans Petter Selasky 2170c822d97SMauro Carvalho Chehabmenu "Video4Linux options" 2180c822d97SMauro Carvalho Chehab visible if VIDEO_DEV 2190c822d97SMauro Carvalho Chehab 2207d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig" 2210c822d97SMauro Carvalho Chehabendmenu 2220c822d97SMauro Carvalho Chehab 2230c822d97SMauro Carvalho Chehabmenu "Media controller options" 2240c822d97SMauro Carvalho Chehab visible if MEDIA_CONTROLLER 2250c822d97SMauro Carvalho Chehab 2267d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig" 2270c822d97SMauro Carvalho Chehabendmenu 2280c822d97SMauro Carvalho Chehab 2290c822d97SMauro Carvalho Chehabmenu "Digital TV options" 2300c822d97SMauro Carvalho Chehab visible if DVB_CORE 2310c822d97SMauro Carvalho Chehab 232f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig" 2330c822d97SMauro Carvalho Chehabendmenu 2340c822d97SMauro Carvalho Chehab 2350c822d97SMauro Carvalho Chehabmenu "HDMI CEC options" 2360c822d97SMauro Carvalho Chehab visible if CEC_CORE 2370c822d97SMauro Carvalho Chehab 2387d5bc693SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig" 2395e9e60f4SMauro Carvalho Chehabendmenu 240f0af8fa4SMauro Carvalho Chehab 2415e9e60f4SMauro Carvalho Chehabmenu "Media drivers" 2427c91f062SMauro Carvalho Chehab 243ce971d95SMauro Carvalho Chehabcomment "Drivers filtered as selected at 'Filter media drivers'" 244ce971d95SMauro Carvalho Chehab depends on MEDIA_SUPPORT_FILTER 245ce971d95SMauro Carvalho Chehab 246786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig" 2473c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig" 24806b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig" 24906b93644SMauro Carvalho Chehab 2507d5bc693SMauro Carvalho Chehab# Common driver options 2517d5bc693SMauro Carvalho Chehabsource "drivers/media/common/Kconfig" 2527d5bc693SMauro Carvalho Chehab 25306b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT 2543c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig" 2554b32216aSMauro Carvalho Chehabsource "drivers/media/test_drivers/Kconfig" 2560013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig" 25706b93644SMauro Carvalho Chehabendif 2581da177e4SLinus Torvalds 259616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig" 260616300bdSMauro Carvalho Chehab 2615e9e60f4SMauro Carvalho Chehabendmenu 2625e9e60f4SMauro Carvalho Chehab 2633c8c09b5SMauro Carvalho Chehab# 2648283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends) 2653c8c09b5SMauro Carvalho Chehab# 2663c8c09b5SMauro Carvalho Chehab 2674fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV 2684fa4ef39SEzequiel Garcia bool 2694fa4ef39SEzequiel Garcia depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT 2704fa4ef39SEzequiel Garcia default y 2714fa4ef39SEzequiel Garcia 2721b80d36aSMauro Carvalho Chehabmenu "Media ancillary drivers" 2731b80d36aSMauro Carvalho Chehab visible if !MEDIA_HIDE_ANCILLARY_SUBDRV 2741b80d36aSMauro Carvalho Chehab 275bb69ee27SMauro Carvalho Chehabconfig MEDIA_ATTACH 276bb69ee27SMauro Carvalho Chehab bool 277bb69ee27SMauro Carvalho Chehab depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 278bb69ee27SMauro Carvalho Chehab depends on MODULES 279bb69ee27SMauro Carvalho Chehab default MODULES 280fccea74fSMauro Carvalho Chehab 2813c8c09b5SMauro Carvalho Chehabsource "drivers/media/i2c/Kconfig" 2828283a092SHans Verkuilsource "drivers/media/spi/Kconfig" 283fccea74fSMauro Carvalho Chehabsource "drivers/media/tuners/Kconfig" 2843c8c09b5SMauro Carvalho Chehabsource "drivers/media/dvb-frontends/Kconfig" 2853c8c09b5SMauro Carvalho Chehab 2865e9e60f4SMauro Carvalho Chehabendmenu 2875e9e60f4SMauro Carvalho Chehab 288ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT 289