1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Multimedia device configuration 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun# 7*4882a593Smuzhiyun# NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT 8*4882a593Smuzhiyun# 9*4882a593Smuzhiyunsource "drivers/media/rc/Kconfig" 10*4882a593Smuzhiyunsource "drivers/media/cec/Kconfig" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyunmenuconfig MEDIA_SUPPORT 13*4882a593Smuzhiyun tristate "Multimedia support" 14*4882a593Smuzhiyun depends on HAS_IOMEM 15*4882a593Smuzhiyun help 16*4882a593Smuzhiyun If you want to use media devices, including Webcams, Video grabber 17*4882a593Smuzhiyun devices and/or TV devices, V4L2 codecs, etc, enable this option 18*4882a593Smuzhiyun and other options below. 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun Additional info and docs are available on the web at 21*4882a593Smuzhiyun <https://linuxtv.org> 22*4882a593Smuzhiyun 23*4882a593Smuzhiyunif MEDIA_SUPPORT 24*4882a593Smuzhiyun 25*4882a593Smuzhiyunconfig MEDIA_SUPPORT_FILTER 26*4882a593Smuzhiyun bool "Filter media drivers" 27*4882a593Smuzhiyun depends on MEDIA_SUPPORT 28*4882a593Smuzhiyun default y if !EMBEDDED && !EXPERT 29*4882a593Smuzhiyun help 30*4882a593Smuzhiyun Configuring the media subsystem can be complex, as there are 31*4882a593Smuzhiyun hundreds of drivers and other config options. 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun This menu offers option that will help the Kernel's config 34*4882a593Smuzhiyun system to hide drivers that are out of the scope of the 35*4882a593Smuzhiyun user needs, and disabling core support for unused APIs. 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun If not selected, all non-optional media core functionality 38*4882a593Smuzhiyun needed to support media drivers will be enabled. Also, all 39*4882a593Smuzhiyun media device drivers should be shown. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunconfig MEDIA_SUBDRV_AUTOSELECT 42*4882a593Smuzhiyun bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" 43*4882a593Smuzhiyun depends on HAS_IOMEM 44*4882a593Smuzhiyun select I2C 45*4882a593Smuzhiyun select I2C_MUX 46*4882a593Smuzhiyun default y if MEDIA_SUPPORT_FILTER 47*4882a593Smuzhiyun help 48*4882a593Smuzhiyun By default, a media driver auto-selects all possible ancillary 49*4882a593Smuzhiyun devices such as tuners, sensors, video encoders/decoders and 50*4882a593Smuzhiyun frontends, that are used by any of the supported devices. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun This is generally the right thing to do, except when there 53*4882a593Smuzhiyun are strict constraints with regards to the kernel size, 54*4882a593Smuzhiyun like on embedded systems. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun Use this option with care, as deselecting ancillary drivers which 57*4882a593Smuzhiyun are, in fact, necessary will result in the lack of the needed 58*4882a593Smuzhiyun functionality for your device (it may not tune or may not have 59*4882a593Smuzhiyun the needed demodulators). 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun If unsure say Y. 62*4882a593Smuzhiyun 63*4882a593Smuzhiyunmenu "Media device types" 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun# 66*4882a593Smuzhiyun# Multimedia support - automatically enable V4L2 and DVB core 67*4882a593Smuzhiyun# 68*4882a593Smuzhiyunconfig MEDIA_CAMERA_SUPPORT 69*4882a593Smuzhiyun bool "Cameras and video grabbers" 70*4882a593Smuzhiyun default y if !MEDIA_SUPPORT_FILTER 71*4882a593Smuzhiyun help 72*4882a593Smuzhiyun Enable support for webcams and video grabbers. 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun Say Y when you have a webcam or a video capture grabber board. 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunconfig MEDIA_ANALOG_TV_SUPPORT 77*4882a593Smuzhiyun bool "Analog TV" 78*4882a593Smuzhiyun default y if !MEDIA_SUPPORT_FILTER 79*4882a593Smuzhiyun help 80*4882a593Smuzhiyun Enable analog TV support. 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun Say Y when you have a TV board with analog support or with a 83*4882a593Smuzhiyun hybrid analog/digital TV chipset. 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun Note: There are several DVB cards that are based on chips that 86*4882a593Smuzhiyun support both analog and digital TV. Disabling this option 87*4882a593Smuzhiyun will disable support for them. 88*4882a593Smuzhiyun 89*4882a593Smuzhiyunconfig MEDIA_DIGITAL_TV_SUPPORT 90*4882a593Smuzhiyun tristate "Digital TV" 91*4882a593Smuzhiyun default y if !MEDIA_SUPPORT_FILTER 92*4882a593Smuzhiyun help 93*4882a593Smuzhiyun Enable digital TV support. 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun Say Y when you have a board with digital support or a board with 96*4882a593Smuzhiyun hybrid digital TV and analog TV. 97*4882a593Smuzhiyun 98*4882a593Smuzhiyunconfig MEDIA_RADIO_SUPPORT 99*4882a593Smuzhiyun bool "AM/FM radio receivers/transmitters" 100*4882a593Smuzhiyun default y if !MEDIA_SUPPORT_FILTER 101*4882a593Smuzhiyun help 102*4882a593Smuzhiyun Enable AM/FM radio support. 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun Additional info and docs are available on the web at 105*4882a593Smuzhiyun <https://linuxtv.org> 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun Say Y when you have a board with radio support. 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun Note: There are several TV cards that are based on chips that 110*4882a593Smuzhiyun support radio reception. Disabling this option will 111*4882a593Smuzhiyun disable support for them. 112*4882a593Smuzhiyun 113*4882a593Smuzhiyunconfig MEDIA_SDR_SUPPORT 114*4882a593Smuzhiyun bool "Software defined radio" 115*4882a593Smuzhiyun default y if !MEDIA_SUPPORT_FILTER 116*4882a593Smuzhiyun help 117*4882a593Smuzhiyun Enable software defined radio support. 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun Say Y when you have a software defined radio device. 120*4882a593Smuzhiyun 121*4882a593Smuzhiyunconfig MEDIA_PLATFORM_SUPPORT 122*4882a593Smuzhiyun bool "Platform-specific devices" 123*4882a593Smuzhiyun default y if !MEDIA_SUPPORT_FILTER 124*4882a593Smuzhiyun help 125*4882a593Smuzhiyun Enable support for complex cameras, codecs, and other hardware 126*4882a593Smuzhiyun that are integrated at the CPU, GPU or on Image Signalling Processor 127*4882a593Smuzhiyun and don't use PCI, USB or Firewire buses. 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun This is found on Embedded hardware (SoC), on V4L2 codecs and 130*4882a593Smuzhiyun on some GPU and newer CPU chipsets. 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun Say Y when you want to be able so see such devices. 133*4882a593Smuzhiyun 134*4882a593Smuzhiyunconfig MEDIA_TEST_SUPPORT 135*4882a593Smuzhiyun bool "Test drivers" 136*4882a593Smuzhiyun default y if !MEDIA_SUPPORT_FILTER 137*4882a593Smuzhiyun help 138*4882a593Smuzhiyun These drivers should not be used on production kernels, but 139*4882a593Smuzhiyun can be useful on debug ones. This option enables several dummy drivers 140*4882a593Smuzhiyun that simulate real hardware. Very useful to test userspace 141*4882a593Smuzhiyun applications and to validate if the subsystem core doesn't 142*4882a593Smuzhiyun have regressions. 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun Say Y if you want to use some virtual test driver. 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun In case of doubts, say N. 147*4882a593Smuzhiyun Say Y when you have a software defined radio device. 148*4882a593Smuzhiyunendmenu # media device types 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun 151*4882a593Smuzhiyunmenu "Media core support" 152*4882a593Smuzhiyun visible if !MEDIA_SUPPORT_FILTER 153*4882a593Smuzhiyun 154*4882a593Smuzhiyunconfig VIDEO_DEV 155*4882a593Smuzhiyun tristate "Video4Linux core" 156*4882a593Smuzhiyun default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT 157*4882a593Smuzhiyun help 158*4882a593Smuzhiyun Enables the V4L2 API, used by cameras, analog TV, video grabbers, 159*4882a593Smuzhiyun radio devices and by some input devices. 160*4882a593Smuzhiyun 161*4882a593Smuzhiyunconfig MEDIA_CONTROLLER 162*4882a593Smuzhiyun bool "Media Controller API" 163*4882a593Smuzhiyun default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT 164*4882a593Smuzhiyun help 165*4882a593Smuzhiyun Enable the media controller API used to query media devices internal 166*4882a593Smuzhiyun topology and configure it dynamically. 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun This API is mostly used by camera interfaces in embedded platforms. 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun# 171*4882a593Smuzhiyun# DVB Core 172*4882a593Smuzhiyun# Only enables if one of DTV is selected 173*4882a593Smuzhiyun# 174*4882a593Smuzhiyun 175*4882a593Smuzhiyunconfig DVB_CORE 176*4882a593Smuzhiyun tristate 177*4882a593Smuzhiyun depends on MEDIA_DIGITAL_TV_SUPPORT 178*4882a593Smuzhiyun depends on (I2C || I2C=n) 179*4882a593Smuzhiyun default MEDIA_DIGITAL_TV_SUPPORT 180*4882a593Smuzhiyun select CRC32 181*4882a593Smuzhiyun help 182*4882a593Smuzhiyun Enables the DVB API, used by Digital TV devices. Supports several 183*4882a593Smuzhiyun standards, including DVB, ATSC, ISDB and CMDB. 184*4882a593Smuzhiyun 185*4882a593Smuzhiyunendmenu # Media core support 186*4882a593Smuzhiyun 187*4882a593Smuzhiyun# 188*4882a593Smuzhiyun# Extra per-media API core functionality 189*4882a593Smuzhiyun 190*4882a593Smuzhiyunmenu "Video4Linux options" 191*4882a593Smuzhiyun visible if VIDEO_DEV 192*4882a593Smuzhiyun 193*4882a593Smuzhiyunsource "drivers/media/v4l2-core/Kconfig" 194*4882a593Smuzhiyunendmenu 195*4882a593Smuzhiyun 196*4882a593Smuzhiyunmenu "Media controller options" 197*4882a593Smuzhiyun visible if MEDIA_CONTROLLER 198*4882a593Smuzhiyun 199*4882a593Smuzhiyunsource "drivers/media/mc/Kconfig" 200*4882a593Smuzhiyunendmenu 201*4882a593Smuzhiyun 202*4882a593Smuzhiyunmenu "Digital TV options" 203*4882a593Smuzhiyun visible if DVB_CORE 204*4882a593Smuzhiyun 205*4882a593Smuzhiyunsource "drivers/media/dvb-core/Kconfig" 206*4882a593Smuzhiyunendmenu 207*4882a593Smuzhiyun 208*4882a593Smuzhiyunmenu "Media drivers" 209*4882a593Smuzhiyun 210*4882a593Smuzhiyuncomment "Drivers filtered as selected at 'Filter media drivers'" 211*4882a593Smuzhiyun depends on MEDIA_SUPPORT_FILTER 212*4882a593Smuzhiyun 213*4882a593Smuzhiyunsource "drivers/media/usb/Kconfig" 214*4882a593Smuzhiyunsource "drivers/media/pci/Kconfig" 215*4882a593Smuzhiyunsource "drivers/media/radio/Kconfig" 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun# Common driver options 218*4882a593Smuzhiyunsource "drivers/media/common/Kconfig" 219*4882a593Smuzhiyun 220*4882a593Smuzhiyunif MEDIA_PLATFORM_SUPPORT 221*4882a593Smuzhiyunsource "drivers/media/platform/Kconfig" 222*4882a593Smuzhiyunsource "drivers/media/mmc/Kconfig" 223*4882a593Smuzhiyunendif 224*4882a593Smuzhiyun 225*4882a593Smuzhiyunif MEDIA_TEST_SUPPORT 226*4882a593Smuzhiyunsource "drivers/media/test-drivers/Kconfig" 227*4882a593Smuzhiyunendif 228*4882a593Smuzhiyun 229*4882a593Smuzhiyunsource "drivers/media/firewire/Kconfig" 230*4882a593Smuzhiyun 231*4882a593Smuzhiyunendmenu 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun# 234*4882a593Smuzhiyun# Ancillary drivers (tuners, i2c, spi, frontends) 235*4882a593Smuzhiyun# 236*4882a593Smuzhiyun 237*4882a593Smuzhiyunconfig MEDIA_HIDE_ANCILLARY_SUBDRV 238*4882a593Smuzhiyun bool 239*4882a593Smuzhiyun depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT 240*4882a593Smuzhiyun default y 241*4882a593Smuzhiyun 242*4882a593Smuzhiyunmenu "Media ancillary drivers" 243*4882a593Smuzhiyun 244*4882a593Smuzhiyunconfig MEDIA_ATTACH 245*4882a593Smuzhiyun bool 246*4882a593Smuzhiyun depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT 247*4882a593Smuzhiyun depends on MODULES 248*4882a593Smuzhiyun default MODULES 249*4882a593Smuzhiyun 250*4882a593Smuzhiyunsource "drivers/media/i2c/Kconfig" 251*4882a593Smuzhiyunsource "drivers/media/spi/Kconfig" 252*4882a593Smuzhiyunsource "drivers/media/tuners/Kconfig" 253*4882a593Smuzhiyunsource "drivers/media/dvb-frontends/Kconfig" 254*4882a593Smuzhiyun 255*4882a593Smuzhiyunendmenu 256*4882a593Smuzhiyun 257*4882a593Smuzhiyunendif # MEDIA_SUPPORT 258