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 28c6774ee0SMauro Carvalho Chehabif MEDIA_SUPPORT 29c6774ee0SMauro Carvalho Chehab 30c6774ee0SMauro Carvalho Chehabconfig MEDIA_SUPPORT_FILTER 31c6774ee0SMauro Carvalho Chehab bool "Filter devices by their types" 32c39d5704SMauro Carvalho Chehab depends on MEDIA_SUPPORT 33c6774ee0SMauro Carvalho Chehab help 34c6774ee0SMauro Carvalho Chehab Configuring the media subsystem can be complex, as there are 35c6774ee0SMauro Carvalho Chehab hundreds of drivers and other config options. 36c6774ee0SMauro Carvalho Chehab 37c6774ee0SMauro Carvalho Chehab This menu offers option that will help the Kernel's config 38c6774ee0SMauro Carvalho Chehab system to hide drivers that are out of the scope of the 39c6774ee0SMauro Carvalho Chehab user needs, and disabling core support for unused APIs. 40c6774ee0SMauro Carvalho Chehab 41c6774ee0SMauro Carvalho Chehab If not selected, all non-optional media core functionality 42c6774ee0SMauro Carvalho Chehab needed to support media drivers will be enabled. Also, all 43c6774ee0SMauro Carvalho Chehab media device drivers should be shown. 44c6774ee0SMauro Carvalho Chehab 45c6774ee0SMauro Carvalho Chehabmenu "Media device types" 46c6774ee0SMauro Carvalho Chehab visible if MEDIA_SUPPORT_FILTER 477c91f062SMauro Carvalho Chehab 487c91f062SMauro Carvalho Chehab# 49b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core 50b4c184e5SMauro Carvalho Chehab# 51b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT 52c39d5704SMauro Carvalho Chehab bool "Cameras and video grabbers" 53c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 54b60a5b8dSMauro Carvalho Chehab help 55b4c184e5SMauro Carvalho Chehab Enable support for webcams and video grabbers. 56b4c184e5SMauro Carvalho Chehab 57b4c184e5SMauro Carvalho Chehab Say Y when you have a webcam or a video capture grabber board. 58b4c184e5SMauro Carvalho Chehab 59b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT 60c39d5704SMauro Carvalho Chehab bool "Analog TV" 61c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 62b60a5b8dSMauro Carvalho Chehab help 63b4c184e5SMauro Carvalho Chehab Enable analog TV support. 64b4c184e5SMauro Carvalho Chehab 65a3b91d8bSMauro Carvalho Chehab Say Y when you have a board with analog TV support. 66b4c184e5SMauro Carvalho Chehab 67b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT 68c39d5704SMauro Carvalho Chehab bool "Digital TV" 69c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 70b60a5b8dSMauro Carvalho Chehab help 71b4c184e5SMauro Carvalho Chehab Enable digital TV support. 72b4c184e5SMauro Carvalho Chehab 73a3b91d8bSMauro Carvalho Chehab Say Y when you have a board with digital TV support. 74b4c184e5SMauro Carvalho Chehab 75b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT 76c39d5704SMauro Carvalho Chehab bool "AM/FM radio receivers/transmitters" 77c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 78b60a5b8dSMauro Carvalho Chehab help 79b4c184e5SMauro Carvalho Chehab Enable AM/FM radio support. 80b4c184e5SMauro Carvalho Chehab 81b4c184e5SMauro Carvalho Chehab Additional info and docs are available on the web at 82991ce92fSMauro Carvalho Chehab <https://linuxtv.org> 83b4c184e5SMauro Carvalho Chehab 84b4c184e5SMauro Carvalho Chehab Say Y when you have a board with radio support. 85b4c184e5SMauro Carvalho Chehab 86435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT 87c39d5704SMauro Carvalho Chehab bool "Software defined radio" 88c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 89b60a5b8dSMauro Carvalho Chehab help 90435ef148SAntti Palosaari Enable software defined radio support. 91435ef148SAntti Palosaari 92435ef148SAntti Palosaari Say Y when you have a software defined radio device. 93435ef148SAntti Palosaari 940dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT 95c39d5704SMauro Carvalho Chehab bool "HDMI CEC" 96c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 97b60a5b8dSMauro Carvalho Chehab help 980dbacebeSHans Verkuil Enable support for HDMI CEC (Consumer Electronics Control), 990dbacebeSHans Verkuil which is an optional HDMI feature. 1000dbacebeSHans Verkuil 1010dbacebeSHans Verkuil Say Y when you have an HDMI receiver, transmitter or a USB CEC 1020dbacebeSHans Verkuil adapter that supports HDMI CEC. 1030dbacebeSHans Verkuil 10406b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT 105c39d5704SMauro Carvalho Chehab bool "Platform-specific devices" 106c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 10706b93644SMauro Carvalho Chehab help 10806b93644SMauro Carvalho Chehab Enable support for complex cameras, codecs, and other hardware 10906b93644SMauro Carvalho Chehab that are integrated at the CPU, GPU or on Image Signalling Processor 11006b93644SMauro Carvalho Chehab and don't use PCI, USB or Firewire buses. 11106b93644SMauro Carvalho Chehab 11206b93644SMauro Carvalho Chehab This is found on Embedded hardware (SoC), on V4L2 codecs and 11306b93644SMauro Carvalho Chehab on some GPU and newer CPU chipsets. 11406b93644SMauro Carvalho Chehab 11506b93644SMauro Carvalho Chehab Say Y when you want to be able so see such devices. 11606b93644SMauro Carvalho Chehab 1174b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT 118c39d5704SMauro Carvalho Chehab bool "Test drivers" 119c6774ee0SMauro Carvalho Chehab default y if !MEDIA_SUPPORT_FILTER 1204b32216aSMauro Carvalho Chehab help 1214b32216aSMauro Carvalho Chehab Those drivers should not be used on production Kernels, but 1224b32216aSMauro Carvalho Chehab can be useful on debug ones. It enables several dummy drivers 1234b32216aSMauro Carvalho Chehab that simulate a real hardware. Very useful to test userspace 1244b32216aSMauro Carvalho Chehab applications and to validate if the subsystem core is doesn't 1254b32216aSMauro Carvalho Chehab have regressions. 1264b32216aSMauro Carvalho Chehab 1274b32216aSMauro Carvalho Chehab Say Y if you want to use some virtual test driver. 1284b32216aSMauro Carvalho Chehab 1294b32216aSMauro Carvalho Chehab In case of doubts, say N. 130c39d5704SMauro Carvalho Chehab Say Y when you have a software defined radio device. 131c6774ee0SMauro Carvalho Chehabendmenu # media device types 1324b32216aSMauro Carvalho Chehab 1337d5bc693SMauro Carvalho Chehabcomment "Multimedia core features" 134078ab3eaSSakari Ailus 135cf4b9211SLaurent Pinchart# 136b4c184e5SMauro Carvalho Chehab# Video4Linux support 137b4c184e5SMauro Carvalho Chehab# Only enables if one of the V4L2 types (ATV, webcam, radio) is selected 1387c91f062SMauro Carvalho Chehab# 1397c91f062SMauro Carvalho Chehab 140a3b91d8bSMauro Carvalho Chehabcomment "Video4Linux core enabled to support hybrid TV devices" 141a3b91d8bSMauro Carvalho Chehab depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI 142a3b91d8bSMauro Carvalho Chehab 1431da177e4SLinus Torvaldsconfig VIDEO_DEV 144b4c184e5SMauro Carvalho Chehab tristate 145a3b91d8bSMauro Carvalho Chehab prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI) 1466268b351SMauro 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 1471da177e4SLinus Torvalds 1487cd5a16bSStanimir Varbanovconfig VIDEO_V4L2_SUBDEV_API 14951e8cb74SKees Cook bool "V4L2 sub-device userspace API" 15051e8cb74SKees Cook depends on VIDEO_DEV && MEDIA_CONTROLLER 151b60a5b8dSMauro Carvalho Chehab help 1527cd5a16bSStanimir Varbanov Enables the V4L2 sub-device pad-level userspace API used to configure 1537cd5a16bSStanimir Varbanov video format, size and frame rate between hardware blocks. 1547cd5a16bSStanimir Varbanov 1557cd5a16bSStanimir Varbanov This API is mostly used by camera interfaces in embedded platforms. 1567cd5a16bSStanimir Varbanov 1577c91f062SMauro Carvalho Chehab# 1587c91f062SMauro Carvalho Chehab# DVB Core 159b4c184e5SMauro Carvalho Chehab# Only enables if one of DTV is selected 1607c91f062SMauro Carvalho Chehab# 161cd41e28eSMauro Carvalho Chehab 162a3b91d8bSMauro Carvalho Chehabcomment "Digital TV core enabled to support hybrid TV devices" 163a3b91d8bSMauro Carvalho Chehab depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI 164a3b91d8bSMauro Carvalho Chehab 1657c91f062SMauro Carvalho Chehabconfig DVB_CORE 166b4c184e5SMauro Carvalho Chehab tristate 167a3b91d8bSMauro Carvalho Chehab prompt "Digital TV core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI) 168b4c184e5SMauro Carvalho Chehab depends on MEDIA_DIGITAL_TV_SUPPORT 16988327305SMauro Carvalho Chehab depends on (I2C || I2C=n) 170b4c184e5SMauro Carvalho Chehab default y 1717c91f062SMauro Carvalho Chehab select CRC32 1727c91f062SMauro Carvalho Chehab 1734021053eSMauro Carvalho Chehabconfig DVB_MMAP 1744021053eSMauro Carvalho Chehab bool "Enable DVB memory-mapped API (EXPERIMENTAL)" 1754021053eSMauro Carvalho Chehab depends on DVB_CORE 17685e60bd7SArnd Bergmann depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE 17785e60bd7SArnd Bergmann select VIDEOBUF2_VMALLOC 1784021053eSMauro Carvalho Chehab help 1792c27476eSMichael Ira Krufky This option enables DVB experimental memory-mapped API, which 1804021053eSMauro Carvalho Chehab reduces the number of context switches to read DVB buffers, as 1814021053eSMauro Carvalho Chehab the buffers can use mmap() syscalls. 1824021053eSMauro Carvalho Chehab 1834021053eSMauro Carvalho Chehab Support for it is experimental. Use with care. If unsure, 1844021053eSMauro Carvalho Chehab say N. 1854021053eSMauro Carvalho Chehab 186a34ff6cdSHans Petter Selaskyconfig DVB_NET 187a34ff6cdSHans Petter Selasky bool "DVB Network Support" 188a34ff6cdSHans Petter Selasky default (NET && INET) 1898c528d5eSGuennadi Liakhovetski depends on NET && INET && DVB_CORE 190a34ff6cdSHans Petter Selasky help 1919a78efc8SJiri Slaby This option enables DVB Network Support which is a part of the DVB 1929a78efc8SJiri Slaby standard. It is used, for example, by automatic firmware updates used 1939a78efc8SJiri Slaby on Set-Top-Boxes. It can also be used to access the Internet via the 1949a78efc8SJiri Slaby DVB card, if the network provider supports it. 195a34ff6cdSHans Petter Selasky 1969a78efc8SJiri Slaby You may want to disable the network support on embedded devices. If 1979a78efc8SJiri Slaby unsure say Y. 198a34ff6cdSHans Petter Selasky 1997d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig" 2007d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig" 201f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig" 2027d5bc693SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig" 203f0af8fa4SMauro Carvalho Chehab 204c455f5c8SMauro Carvalho Chehabcomment "Media drivers" 2057c91f062SMauro Carvalho Chehab 206786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig" 2073c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig" 20806b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig" 20906b93644SMauro Carvalho Chehab 2107d5bc693SMauro Carvalho Chehab# Common driver options 2117d5bc693SMauro Carvalho Chehabsource "drivers/media/common/Kconfig" 2127d5bc693SMauro Carvalho Chehab 21306b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT 2143c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig" 2154b32216aSMauro Carvalho Chehabsource "drivers/media/test_drivers/Kconfig" 2160013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig" 21706b93644SMauro Carvalho Chehabendif 2181da177e4SLinus Torvalds 219616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig" 220616300bdSMauro Carvalho Chehab 2218283a092SHans Verkuilcomment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)" 2225344fe6eSHans Verkuil 2233c8c09b5SMauro Carvalho Chehab# 2248283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends) 2253c8c09b5SMauro Carvalho Chehab# 2263c8c09b5SMauro Carvalho Chehab 227fccea74fSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT 2288283a092SHans Verkuil bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" 229435ef148SAntti Palosaari depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT 230347f7a37SMauro Carvalho Chehab depends on HAS_IOMEM 231347f7a37SMauro Carvalho Chehab select I2C 232347f7a37SMauro Carvalho Chehab select I2C_MUX 23324f6f93aSEzequiel Garcia default y if !EMBEDDED 234fccea74fSMauro Carvalho Chehab help 2355344fe6eSHans Verkuil By default, a media driver auto-selects all possible ancillary 2365344fe6eSHans Verkuil devices such as tuners, sensors, video encoders/decoders and 2375344fe6eSHans Verkuil frontends, that are used by any of the supported devices. 238fccea74fSMauro Carvalho Chehab 239fccea74fSMauro Carvalho Chehab This is generally the right thing to do, except when there 2402c76a12aSMauro Carvalho Chehab are strict constraints with regards to the kernel size, 2412c76a12aSMauro Carvalho Chehab like on embedded systems. 242fccea74fSMauro Carvalho Chehab 2432c76a12aSMauro Carvalho Chehab Use this option with care, as deselecting ancillary drivers which 2442c76a12aSMauro Carvalho Chehab are, in fact, necessary will result in the lack of the needed 2452c76a12aSMauro Carvalho Chehab functionality for your device (it may not tune or may not have 2465344fe6eSHans Verkuil the needed demodulators). 247fccea74fSMauro Carvalho Chehab 248fccea74fSMauro Carvalho Chehab If unsure say Y. 249bb69ee27SMauro Carvalho Chehab 2504fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV 2514fa4ef39SEzequiel Garcia bool 2524fa4ef39SEzequiel Garcia depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT 2534fa4ef39SEzequiel Garcia default y 2544fa4ef39SEzequiel Garcia 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 266ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT 267