diff options
Diffstat (limited to 'drivers/media/Kconfig')
| -rw-r--r-- | drivers/media/Kconfig | 262 |
1 files changed, 164 insertions, 98 deletions
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig index 8270388e2a0d..6abc9302cd84 100644 --- a/drivers/media/Kconfig +++ b/drivers/media/Kconfig @@ -1,33 +1,83 @@ +# SPDX-License-Identifier: GPL-2.0-only # # Multimedia device configuration # +# +# NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT +# +source "drivers/media/rc/Kconfig" +source "drivers/media/cec/Kconfig" + menuconfig MEDIA_SUPPORT tristate "Multimedia support" depends on HAS_IOMEM help - If you want to use Webcams, Video grabber devices and/or TV devices - enable this option and other options below. + If you want to use media devices, including Webcams, Video grabber + devices and/or TV devices, V4L2 codecs, etc, enable this option + and other options below. + Additional info and docs are available on the web at - <http://linuxtv.org> + <https://linuxtv.org> if MEDIA_SUPPORT -comment "Multimedia core support" +config MEDIA_SUPPORT_FILTER + bool "Filter media drivers" + default y if !EXPERT + help + Configuring the media subsystem can be complex, as there are + hundreds of drivers and other config options. + + This menu offers option that will help the Kernel's config + system to hide drivers that are out of the scope of the + user needs, and disabling core support for unused APIs. + + If not selected, all non-optional media core functionality + needed to support media drivers will be enabled. Also, all + media device drivers should be shown. + +config MEDIA_SUBDRV_AUTOSELECT + bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" + depends on HAS_IOMEM + select I2C + select I2C_MUX + default y if MEDIA_SUPPORT_FILTER + help + By default, a media driver auto-selects all possible ancillary + devices such as tuners, sensors, video encoders/decoders and + frontends, that are used by any of the supported devices. + + This is generally the right thing to do, except when there + are strict constraints with regards to the kernel size, + like on embedded systems. + + Use this option with care, as deselecting ancillary drivers which + are, in fact, necessary will result in the lack of the needed + functionality for your device (it may not tune or may not have + the needed demodulators). + + If unsure say Y. + +menu "Media device types" # # Multimedia support - automatically enable V4L2 and DVB core # config MEDIA_CAMERA_SUPPORT - bool "Cameras/video grabbers support" - ---help--- + bool + prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER + help Enable support for webcams and video grabbers. Say Y when you have a webcam or a video capture grabber board. config MEDIA_ANALOG_TV_SUPPORT - bool "Analog TV support" - ---help--- + bool + prompt "Analog TV" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER + help Enable analog TV support. Say Y when you have a TV board with analog support or with a @@ -38,20 +88,24 @@ config MEDIA_ANALOG_TV_SUPPORT will disable support for them. config MEDIA_DIGITAL_TV_SUPPORT - bool "Digital TV support" - ---help--- + bool + prompt "Digital TV" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER + help Enable digital TV support. Say Y when you have a board with digital support or a board with hybrid digital TV and analog TV. config MEDIA_RADIO_SUPPORT - bool "AM/FM radio receivers/transmitters support" - ---help--- + bool + prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER + help Enable AM/FM radio support. Additional info and docs are available on the web at - <http://linuxtv.org> + <https://linuxtv.org> Say Y when you have a board with radio support. @@ -59,135 +113,144 @@ config MEDIA_RADIO_SUPPORT support radio reception. Disabling this option will disable support for them. -config MEDIA_RC_SUPPORT - bool "Remote Controller support" - depends on INPUT - ---help--- - Enable support for Remote Controllers on Linux. This is - needed in order to support several video capture adapters, - standalone IR receivers/transmitters, and RF receivers. +config MEDIA_SDR_SUPPORT + bool + prompt "Software defined radio" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER + help + Enable software defined radio support. - Enable this option if you have a video capture board even - if you don't need IR, as otherwise, you may not be able to - compile the driver for your adapter. + Say Y when you have a software defined radio device. - Say Y when you have a TV or an IR device. +config MEDIA_PLATFORM_SUPPORT + bool + prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER + help + Enable support for complex cameras, codecs, and other hardware + that are integrated at the CPU, GPU or on Image Signalling Processor + and don't use PCI, USB or Firewire buses. -# -# Media controller -# Selectable only for webcam/grabbers, as other drivers don't use it -# + This is found on Embedded hardware (SoC), on V4L2 codecs and + on some GPU and newer CPU chipsets. -config MEDIA_CONTROLLER - bool "Media Controller API" - depends on MEDIA_CAMERA_SUPPORT - ---help--- - Enable the media controller API used to query media devices internal - topology and configure it dynamically. + Say Y when you want to be able to see such devices. - This API is mostly used by camera interfaces in embedded platforms. +config MEDIA_TEST_SUPPORT + bool + prompt "Test drivers" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER + help + These drivers should not be used on production kernels, but + can be useful on debug ones. This option enables several dummy drivers + that simulate real hardware. Very useful to test userspace + applications and to validate if the subsystem core doesn't + have regressions. -# -# Video4Linux support -# Only enables if one of the V4L2 types (ATV, webcam, radio) is selected -# + Say Y if you want to use some virtual test driver. + + In case of doubts, say N. + Say Y when you have a software defined radio device. +endmenu # media device types + + +menu "Media core support" + visible if !MEDIA_SUPPORT_FILTER config VIDEO_DEV - tristate - depends on MEDIA_SUPPORT - depends on MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT - default y + tristate "Video4Linux core" + default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT + depends on (I2C || I2C=n) + select RATIONAL + select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE + help + Enables the V4L2 API, used by cameras, analog TV, video grabbers, + radio devices and by some input devices. -config VIDEO_V4L2_SUBDEV_API - bool "V4L2 sub-device userspace API" - depends on VIDEO_DEV && MEDIA_CONTROLLER - ---help--- - Enables the V4L2 sub-device pad-level userspace API used to configure - video format, size and frame rate between hardware blocks. +config MEDIA_CONTROLLER + bool "Media Controller API" + default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT + help + Enable the media controller API used to query media devices internal + topology and configure it dynamically. This API is mostly used by camera interfaces in embedded platforms. -source "drivers/media/v4l2-core/Kconfig" - # # DVB Core # Only enables if one of DTV is selected # config DVB_CORE - tristate - depends on MEDIA_SUPPORT + tristate "DVB Core" depends on MEDIA_DIGITAL_TV_SUPPORT - default y + depends on (I2C || I2C=n) + default MEDIA_DIGITAL_TV_SUPPORT select CRC32 - -config DVB_NET - bool "DVB Network Support" - default (NET && INET) - depends on NET && INET && DVB_CORE help - This option enables DVB Network Support which is a part of the DVB - standard. It is used, for example, by automatic firmware updates used - on Set-Top-Boxes. It can also be used to access the Internet via the - DVB card, if the network provider supports it. + Enables the DVB API, used by Digital TV devices. Supports several + standards, including DVB, ATSC, ISDB and CMDB. + +endmenu # Media core support + +# +# Extra per-media API core functionality + +menu "Video4Linux options" + visible if VIDEO_DEV - You may want to disable the network support on embedded devices. If - unsure say Y. +source "drivers/media/v4l2-core/Kconfig" +endmenu + +menu "Media controller options" + visible if MEDIA_CONTROLLER + +source "drivers/media/mc/Kconfig" +endmenu -# This Kconfig option is used by both PCI and USB drivers -config TTPCI_EEPROM - tristate - depends on I2C - default n +menu "Digital TV options" + visible if DVB_CORE source "drivers/media/dvb-core/Kconfig" +endmenu -comment "Media drivers" -source "drivers/media/rc/Kconfig" +menu "Media drivers" -# -# V4L platform/mem2mem drivers -# +comment "Drivers filtered as selected at 'Filter media drivers'" + depends on MEDIA_SUPPORT_FILTER + +comment "Media drivers" source "drivers/media/usb/Kconfig" source "drivers/media/pci/Kconfig" +source "drivers/media/radio/Kconfig" + +if MEDIA_PLATFORM_SUPPORT source "drivers/media/platform/Kconfig" source "drivers/media/mmc/Kconfig" -source "drivers/media/parport/Kconfig" -source "drivers/media/radio/Kconfig" +endif + +if MEDIA_TEST_SUPPORT +source "drivers/media/test-drivers/Kconfig" +endif -comment "Supported FireWire (IEEE 1394) Adapters" - depends on DVB_CORE && FIREWIRE source "drivers/media/firewire/Kconfig" # Common driver options source "drivers/media/common/Kconfig" -comment "Media ancillary drivers (tuners, sensors, i2c, frontends)" +endmenu # -# Ancillary drivers (tuners, i2c, frontends) +# Ancillary drivers (tuners, i2c, spi, frontends) # -config MEDIA_SUBDRV_AUTOSELECT - bool "Autoselect ancillary drivers (tuners, sensors, i2c, frontends)" - depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT +config MEDIA_HIDE_ANCILLARY_SUBDRV + bool + depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT default y - help - By default, a media driver auto-selects all possible ancillary - devices such as tuners, sensors, video encoders/decoders and - frontends, that are used by any of the supported devices. - - This is generally the right thing to do, except when there - are strict constraints with regards to the kernel size, - like on embedded systems. - - Use this option with care, as deselecting ancillary drivers which - are, in fact, necessary will result in the lack of the needed - functionality for your device (it may not tune or may not have - the needed demodulators). - If unsure say Y. +menu "Media ancillary drivers" config MEDIA_ATTACH bool @@ -196,7 +259,10 @@ config MEDIA_ATTACH default MODULES source "drivers/media/i2c/Kconfig" +source "drivers/media/spi/Kconfig" source "drivers/media/tuners/Kconfig" source "drivers/media/dvb-frontends/Kconfig" +endmenu + endif # MEDIA_SUPPORT |
