diff options
Diffstat (limited to 'drivers/media/Kconfig')
-rw-r--r-- | drivers/media/Kconfig | 242 |
1 files changed, 140 insertions, 102 deletions
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig index 9dfea5c4b6ab..a6d073f2e036 100644 --- a/drivers/media/Kconfig +++ b/drivers/media/Kconfig @@ -3,42 +3,81 @@ # Multimedia device configuration # -config CEC_CORE - tristate - -config CEC_NOTIFIER - bool - -config CEC_PIN - bool - +# +# 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 <https://linuxtv.org> if MEDIA_SUPPORT -comment "Multimedia core support" +config MEDIA_SUPPORT_FILTER + bool "Filter media drivers" + depends on MEDIA_SUPPORT + default y if !EMBEDDED && !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" + 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" + bool + prompt "Analog TV" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER help Enable analog TV support. @@ -50,7 +89,9 @@ config MEDIA_ANALOG_TV_SUPPORT will disable support for them. config MEDIA_DIGITAL_TV_SUPPORT - bool "Digital TV support" + bool + prompt "Digital TV" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER help Enable digital TV support. @@ -58,7 +99,9 @@ config MEDIA_DIGITAL_TV_SUPPORT hybrid digital TV and analog TV. config MEDIA_RADIO_SUPPORT - bool "AM/FM radio receivers/transmitters support" + bool + prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER help Enable AM/FM radio support. @@ -72,47 +115,65 @@ config MEDIA_RADIO_SUPPORT disable support for them. config MEDIA_SDR_SUPPORT - bool "Software defined radio support" + bool + prompt "Software defined radio" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER help Enable software defined radio support. Say Y when you have a software defined radio device. -config MEDIA_CEC_SUPPORT - bool "HDMI CEC support" +config MEDIA_PLATFORM_SUPPORT + bool + prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER help - Enable support for HDMI CEC (Consumer Electronics Control), - which is an optional HDMI feature. + 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. - Say Y when you have an HDMI receiver, transmitter or a USB CEC - adapter that supports HDMI CEC. + This is found on Embedded hardware (SoC), on V4L2 codecs and + on some GPU and newer CPU chipsets. -source "drivers/media/cec/Kconfig" + Say Y when you want to be able so see such devices. -source "drivers/media/mc/Kconfig" +config MEDIA_TEST_SUPPORT + bool + prompt "Test drivers" if MEDIA_SUPPORT_FILTER + default y if !MEDIA_SUPPORT_FILTER + help + Those drivers should not be used on production Kernels, but + can be useful on debug ones. It enables several dummy drivers + that simulate a real hardware. Very useful to test userspace + applications and to validate if the subsystem core is 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 || MEDIA_SDR_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 + 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 +config MEDIA_CONTROLLER + bool "Media Controller API" + default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT help - Enables the V4L2 sub-device pad-level userspace API used to configure - video format, size and frame rate between hardware blocks. + 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 @@ -120,98 +181,73 @@ source "drivers/media/v4l2-core/Kconfig" config DVB_CORE tristate - depends on MEDIA_SUPPORT depends on MEDIA_DIGITAL_TV_SUPPORT depends on (I2C || I2C=n) - default y + default MEDIA_DIGITAL_TV_SUPPORT select CRC32 - -config DVB_MMAP - bool "Enable DVB memory-mapped API (EXPERIMENTAL)" - depends on DVB_CORE - depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE - select VIDEOBUF2_VMALLOC help - This option enables DVB experimental memory-mapped API, which - reduces the number of context switches to read DVB buffers, as - the buffers can use mmap() syscalls. + Enables the DVB API, used by Digital TV devices. Supports several + standards, including DVB, ATSC, ISDB and CMDB. - Support for it is experimental. Use with care. If unsure, - say N. +endmenu # Media core support -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. +# +# Extra per-media API core functionality - You may want to disable the network support on embedded devices. If - unsure say Y. +menu "Video4Linux options" + visible if VIDEO_DEV -# This Kconfig option is used by both PCI and USB drivers -config TTPCI_EEPROM - tristate - depends on I2C +source "drivers/media/v4l2-core/Kconfig" +endmenu + +menu "Media controller options" + visible if MEDIA_CONTROLLER + +source "drivers/media/mc/Kconfig" +endmenu + +menu "Digital TV options" + visible if DVB_CORE source "drivers/media/dvb-core/Kconfig" +endmenu -comment "Media drivers" +menu "Media drivers" -# -# V4L platform/mem2mem drivers -# +comment "Drivers filtered as selected at 'Filter media drivers'" + depends on MEDIA_SUPPORT_FILTER source "drivers/media/usb/Kconfig" source "drivers/media/pci/Kconfig" -source "drivers/media/platform/Kconfig" -source "drivers/media/mmc/Kconfig" source "drivers/media/radio/Kconfig" -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, spi, frontends)" - -# -# Ancillary drivers (tuners, i2c, spi, frontends) -# +if MEDIA_PLATFORM_SUPPORT +source "drivers/media/platform/Kconfig" +source "drivers/media/mmc/Kconfig" +endif -config MEDIA_SUBDRV_AUTOSELECT - bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)" - depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT - depends on HAS_IOMEM - select I2C - select I2C_MUX - default y if !EMBEDDED - 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. +if MEDIA_TEST_SUPPORT +source "drivers/media/test-drivers/Kconfig" +endif - This is generally the right thing to do, except when there - are strict constraints with regards to the kernel size, - like on embedded systems. +source "drivers/media/firewire/Kconfig" - 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). +endmenu - If unsure say Y. +# +# Ancillary drivers (tuners, i2c, spi, frontends) +# config MEDIA_HIDE_ANCILLARY_SUBDRV bool depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT default y +menu "Media ancillary drivers" + config MEDIA_ATTACH bool depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT @@ -223,4 +259,6 @@ source "drivers/media/spi/Kconfig" source "drivers/media/tuners/Kconfig" source "drivers/media/dvb-frontends/Kconfig" +endmenu + endif # MEDIA_SUPPORT |