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 24c6774ee0SMauro Carvalho Chehab help 25c6774ee0SMauro Carvalho Chehab Configuring the media subsystem can be complex, as there are 26c6774ee0SMauro Carvalho Chehab hundreds of drivers and other config options. 27c6774ee0SMauro Carvalho Chehab 28c6774ee0SMauro Carvalho Chehab This menu offers option that will help the Kernel's config 29c6774ee0SMauro Carvalho Chehab system to hide drivers that are out of the scope of the 30c6774ee0SMauro Carvalho Chehab user needs, and disabling core support for unused APIs. 31c6774ee0SMauro Carvalho Chehab 32c6774ee0SMauro Carvalho Chehab If not selected, all non-optional media core functionality 33c6774ee0SMauro Carvalho Chehab needed to support media drivers will be enabled. Also, all 34c6774ee0SMauro Carvalho Chehab media device drivers should be shown. 35c6774ee0SMauro Carvalho Chehab 36c6774ee0SMauro Carvalho Chehabmenu "Media device types" 37c6774ee0SMauro Carvalho Chehab visible if MEDIA_SUPPORT_FILTER 387c91f062SMauro Carvalho Chehab 397c91f062SMauro Carvalho Chehab# 40b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core 41b4c184e5SMauro Carvalho Chehab# 42b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT 43c39d5704SMauro Carvalho Chehab bool "Cameras and video grabbers" 44c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 45b60a5b8dSMauro Carvalho Chehab help 46b4c184e5SMauro Carvalho Chehab Enable support for webcams and video grabbers. 47b4c184e5SMauro Carvalho Chehab 48b4c184e5SMauro Carvalho Chehab Say Y when you have a webcam or a video capture grabber board. 49b4c184e5SMauro Carvalho Chehab 50b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT 51c39d5704SMauro Carvalho Chehab bool "Analog TV" 52c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 53b60a5b8dSMauro Carvalho Chehab help 54b4c184e5SMauro Carvalho Chehab Enable analog TV support. 55b4c184e5SMauro Carvalho Chehab 56a3b91d8bSMauro Carvalho Chehab Say Y when you have a board with analog TV support. 57b4c184e5SMauro Carvalho Chehab 58b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT 59c39d5704SMauro Carvalho Chehab bool "Digital TV" 60c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 61b60a5b8dSMauro Carvalho Chehab help 62b4c184e5SMauro Carvalho Chehab Enable digital TV support. 63b4c184e5SMauro Carvalho Chehab 64a3b91d8bSMauro Carvalho Chehab Say Y when you have a board with digital TV support. 65b4c184e5SMauro Carvalho Chehab 66b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT 67c39d5704SMauro Carvalho Chehab bool "AM/FM radio receivers/transmitters" 68c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 69b60a5b8dSMauro Carvalho Chehab help 70b4c184e5SMauro Carvalho Chehab Enable AM/FM radio support. 71b4c184e5SMauro Carvalho Chehab 72b4c184e5SMauro Carvalho Chehab Additional info and docs are available on the web at 73991ce92fSMauro Carvalho Chehab <https://linuxtv.org> 74b4c184e5SMauro Carvalho Chehab 75b4c184e5SMauro Carvalho Chehab Say Y when you have a board with radio support. 76b4c184e5SMauro Carvalho Chehab 77435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT 78c39d5704SMauro Carvalho Chehab bool "Software defined radio" 79c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 80b60a5b8dSMauro Carvalho Chehab help 81435ef148SAntti Palosaari Enable software defined radio support. 82435ef148SAntti Palosaari 83435ef148SAntti Palosaari Say Y when you have a software defined radio device. 84435ef148SAntti Palosaari 850dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT 86c39d5704SMauro Carvalho Chehab bool "HDMI CEC" 87c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 88b60a5b8dSMauro Carvalho Chehab help 890dbacebeSHans Verkuil Enable support for HDMI CEC (Consumer Electronics Control), 900dbacebeSHans Verkuil which is an optional HDMI feature. 910dbacebeSHans Verkuil 920dbacebeSHans Verkuil Say Y when you have an HDMI receiver, transmitter or a USB CEC 930dbacebeSHans Verkuil adapter that supports HDMI CEC. 940dbacebeSHans Verkuil 9506b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT 96c39d5704SMauro Carvalho Chehab bool "Platform-specific devices" 97c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 9806b93644SMauro Carvalho Chehab help 9906b93644SMauro Carvalho Chehab Enable support for complex cameras, codecs, and other hardware 10006b93644SMauro Carvalho Chehab that are integrated at the CPU, GPU or on Image Signalling Processor 10106b93644SMauro Carvalho Chehab and don't use PCI, USB or Firewire buses. 10206b93644SMauro Carvalho Chehab 10306b93644SMauro Carvalho Chehab This is found on Embedded hardware (SoC), on V4L2 codecs and 10406b93644SMauro Carvalho Chehab on some GPU and newer CPU chipsets. 10506b93644SMauro Carvalho Chehab 10606b93644SMauro Carvalho Chehab Say Y when you want to be able so see such devices. 10706b93644SMauro Carvalho Chehab 1084b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT 109c39d5704SMauro Carvalho Chehab bool "Test drivers" 110c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 1114b32216aSMauro Carvalho Chehab help 1124b32216aSMauro Carvalho Chehab Those drivers should not be used on production Kernels, but 1134b32216aSMauro Carvalho Chehab can be useful on debug ones. It enables several dummy drivers 1144b32216aSMauro Carvalho Chehab that simulate a real hardware. Very useful to test userspace 1154b32216aSMauro Carvalho Chehab applications and to validate if the subsystem core is doesn't 1164b32216aSMauro Carvalho Chehab have regressions. 1174b32216aSMauro Carvalho Chehab 1184b32216aSMauro Carvalho Chehab Say Y if you want to use some virtual test driver. 1194b32216aSMauro Carvalho Chehab 1204b32216aSMauro Carvalho Chehab In case of doubts, say N. 121c39d5704SMauro Carvalho Chehab Say Y when you have a software defined radio device. 122c6774ee0SMauro Carvalho Chehabendmenu # media device types 1234b32216aSMauro Carvalho Chehab 1247d5bc693SMauro Carvalho Chehabcomment "Multimedia core features" 125078ab3eaSSakari Ailus 126cf4b9211SLaurent Pinchart# 127b4c184e5SMauro Carvalho Chehab# Video4Linux support 128b4c184e5SMauro Carvalho Chehab# Only enables if one of the V4L2 types (ATV, webcam, radio) is selected 1297c91f062SMauro Carvalho Chehab# 1307c91f062SMauro Carvalho Chehab 131a3b91d8bSMauro Carvalho Chehabcomment "Video4Linux core enabled to support hybrid TV devices" 132a3b91d8bSMauro Carvalho Chehab depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI 133a3b91d8bSMauro Carvalho Chehab 1341da177e4SLinus Torvaldsconfig VIDEO_DEV 135b4c184e5SMauro Carvalho Chehab tristate 136a3b91d8bSMauro Carvalho Chehab prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI) 1376268b351SMauro 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 1381da177e4SLinus Torvalds 1398fc42fffSMauro Carvalho Chehabconfig MEDIA_CONTROLLER 1408fc42fffSMauro Carvalho Chehab bool "Media Controller API" 1418fc42fffSMauro Carvalho Chehab default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT 1428fc42fffSMauro Carvalho Chehab help 1438fc42fffSMauro Carvalho Chehab Enable the media controller API used to query media devices internal 1448fc42fffSMauro Carvalho Chehab topology and configure it dynamically. 1458fc42fffSMauro Carvalho Chehab 1468fc42fffSMauro Carvalho Chehab This API is mostly used by camera interfaces in embedded platforms. 1478fc42fffSMauro Carvalho Chehab 1487c91f062SMauro Carvalho Chehab# 1497c91f062SMauro Carvalho Chehab# DVB Core 150b4c184e5SMauro Carvalho Chehab# Only enables if one of DTV is selected 1517c91f062SMauro Carvalho Chehab# 152cd41e28eSMauro Carvalho Chehab 153a3b91d8bSMauro Carvalho Chehabcomment "Digital TV core enabled to support hybrid TV devices" 154a3b91d8bSMauro Carvalho Chehab depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI 155a3b91d8bSMauro Carvalho Chehab 1567c91f062SMauro Carvalho Chehabconfig DVB_CORE 157b4c184e5SMauro Carvalho Chehab tristate 158a3b91d8bSMauro Carvalho Chehab prompt "Digital TV core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI) 159b4c184e5SMauro Carvalho Chehab depends on MEDIA_DIGITAL_TV_SUPPORT 16088327305SMauro Carvalho Chehab depends on (I2C || I2C=n) 161b4c184e5SMauro Carvalho Chehab default y 1627c91f062SMauro Carvalho Chehab select CRC32 1637c91f062SMauro Carvalho Chehab 1644021053eSMauro Carvalho Chehab help 1654021053eSMauro Carvalho Chehab 1664021053eSMauro Carvalho Chehab 167a34ff6cdSHans Petter Selasky 168a34ff6cdSHans Petter Selasky 1697d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig" 1707d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig" 171f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig" 1727d5bc693SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig" 173f0af8fa4SMauro Carvalho Chehab 174c455f5c8SMauro Carvalho Chehabcomment "Media drivers" 1757c91f062SMauro Carvalho Chehab 176ce971d95SMauro Carvalho Chehabcomment "Drivers filtered as selected at 'Filter media drivers'" 177ce971d95SMauro Carvalho Chehab depends on MEDIA_SUPPORT_FILTER 178ce971d95SMauro Carvalho Chehab 179786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig" 1803c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig" 18106b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig" 18206b93644SMauro Carvalho Chehab 1837d5bc693SMauro Carvalho Chehab# Common driver options 1847d5bc693SMauro Carvalho Chehabsource "drivers/media/common/Kconfig" 1857d5bc693SMauro Carvalho Chehab 18606b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT 1873c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig" 1884b32216aSMauro Carvalho Chehabsource "drivers/media/test_drivers/Kconfig" 1890013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig" 19006b93644SMauro Carvalho Chehabendif 1911da177e4SLinus Torvalds 192616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig" 193616300bdSMauro Carvalho Chehab 1948283a092SHans Verkuilcomment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)" 1955344fe6eSHans Verkuil 1963c8c09b5SMauro Carvalho Chehab# 1978283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends) 1983c8c09b5SMauro Carvalho Chehab# 1993c8c09b5SMauro Carvalho Chehab 200fccea74fSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT 2018283a092SHans Verkuil bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" 202435ef148SAntti Palosaari depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT 203347f7a37SMauro Carvalho Chehab depends on HAS_IOMEM 204347f7a37SMauro Carvalho Chehab select I2C 205347f7a37SMauro Carvalho Chehab select I2C_MUX 20624f6f93aSEzequiel Garcia default y if !EMBEDDED 207fccea74fSMauro Carvalho Chehab help 2085344fe6eSHans Verkuil By default, a media driver auto-selects all possible ancillary 2095344fe6eSHans Verkuil devices such as tuners, sensors, video encoders/decoders and 2105344fe6eSHans Verkuil frontends, that are used by any of the supported devices. 211fccea74fSMauro Carvalho Chehab 212fccea74fSMauro Carvalho Chehab This is generally the right thing to do, except when there 2132c76a12aSMauro Carvalho Chehab are strict constraints with regards to the kernel size, 2142c76a12aSMauro Carvalho Chehab like on embedded systems. 215fccea74fSMauro Carvalho Chehab 2162c76a12aSMauro Carvalho Chehab Use this option with care, as deselecting ancillary drivers which 2172c76a12aSMauro Carvalho Chehab are, in fact, necessary will result in the lack of the needed 2182c76a12aSMauro Carvalho Chehab functionality for your device (it may not tune or may not have 2195344fe6eSHans Verkuil the needed demodulators). 220fccea74fSMauro Carvalho Chehab 221fccea74fSMauro Carvalho Chehab If unsure say Y. 222bb69ee27SMauro Carvalho Chehab 2234fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV 2244fa4ef39SEzequiel Garcia bool 2254fa4ef39SEzequiel Garcia depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT 2264fa4ef39SEzequiel Garcia default y 2274fa4ef39SEzequiel Garcia 228bb69ee27SMauro Carvalho Chehabconfig MEDIA_ATTACH 229bb69ee27SMauro Carvalho Chehab bool 230bb69ee27SMauro Carvalho Chehab depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 231bb69ee27SMauro Carvalho Chehab depends on MODULES 232bb69ee27SMauro Carvalho Chehab default MODULES 233fccea74fSMauro Carvalho Chehab 2343c8c09b5SMauro Carvalho Chehabsource "drivers/media/i2c/Kconfig" 2358283a092SHans Verkuilsource "drivers/media/spi/Kconfig" 236fccea74fSMauro Carvalho Chehabsource "drivers/media/tuners/Kconfig" 2373c8c09b5SMauro Carvalho Chehabsource "drivers/media/dvb-frontends/Kconfig" 2383c8c09b5SMauro Carvalho Chehab 239ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT 240