Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Multimedia device configuration
0004 #
0005 
0006 #
0007 # NOTE: CEC and Remote Controller support should not depend on MEDIA_SUPPORT
0008 #
0009 source "drivers/media/rc/Kconfig"
0010 source "drivers/media/cec/Kconfig"
0011 
0012 menuconfig MEDIA_SUPPORT
0013         tristate "Multimedia support"
0014         depends on HAS_IOMEM
0015         help
0016           If you want to use media devices, including Webcams, Video grabber
0017           devices and/or TV devices, V4L2 codecs, etc, enable this option
0018           and other options below.
0019 
0020           Additional info and docs are available on the web at
0021           <https://linuxtv.org>
0022 
0023 if MEDIA_SUPPORT
0024 
0025 config MEDIA_SUPPORT_FILTER
0026         bool "Filter media drivers"
0027         default y if !EMBEDDED && !EXPERT
0028         help
0029            Configuring the media subsystem can be complex, as there are
0030            hundreds of drivers and other config options.
0031 
0032            This menu offers option that will help the Kernel's config
0033            system to hide drivers that are out of the scope of the
0034            user needs, and disabling core support for unused APIs.
0035 
0036            If not selected, all non-optional media core functionality
0037            needed to support media drivers will be enabled. Also, all
0038            media device drivers should be shown.
0039 
0040 config MEDIA_SUBDRV_AUTOSELECT
0041         bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
0042         depends on HAS_IOMEM
0043         select I2C
0044         select I2C_MUX
0045         default y if MEDIA_SUPPORT_FILTER
0046         help
0047           By default, a media driver auto-selects all possible ancillary
0048           devices such as tuners, sensors, video encoders/decoders and
0049           frontends, that are used by any of the supported devices.
0050 
0051           This is generally the right thing to do, except when there
0052           are strict constraints with regards to the kernel size,
0053           like on embedded systems.
0054 
0055           Use this option with care, as deselecting ancillary drivers which
0056           are, in fact, necessary will result in the lack of the needed
0057           functionality for your device (it may not tune or may not have
0058           the needed demodulators).
0059 
0060           If unsure say Y.
0061 
0062 menu "Media device types"
0063 
0064 #
0065 # Multimedia support - automatically enable V4L2 and DVB core
0066 #
0067 config MEDIA_CAMERA_SUPPORT
0068         bool
0069         prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
0070         default y if !MEDIA_SUPPORT_FILTER
0071         help
0072           Enable support for webcams and video grabbers.
0073 
0074           Say Y when you have a webcam or a video capture grabber board.
0075 
0076 config MEDIA_ANALOG_TV_SUPPORT
0077         bool
0078         prompt "Analog TV" if MEDIA_SUPPORT_FILTER
0079         default y if !MEDIA_SUPPORT_FILTER
0080         help
0081           Enable analog TV support.
0082 
0083           Say Y when you have a TV board with analog support or with a
0084           hybrid analog/digital TV chipset.
0085 
0086           Note: There are several DVB cards that are based on chips that
0087                 support both analog and digital TV. Disabling this option
0088                 will disable support for them.
0089 
0090 config MEDIA_DIGITAL_TV_SUPPORT
0091         bool
0092         prompt "Digital TV" if MEDIA_SUPPORT_FILTER
0093         default y if !MEDIA_SUPPORT_FILTER
0094         help
0095           Enable digital TV support.
0096 
0097           Say Y when you have a board with digital support or a board with
0098           hybrid digital TV and analog TV.
0099 
0100 config MEDIA_RADIO_SUPPORT
0101         bool
0102         prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
0103         default y if !MEDIA_SUPPORT_FILTER
0104         help
0105           Enable AM/FM radio support.
0106 
0107           Additional info and docs are available on the web at
0108           <https://linuxtv.org>
0109 
0110           Say Y when you have a board with radio support.
0111 
0112           Note: There are several TV cards that are based on chips that
0113                 support radio reception. Disabling this option will
0114                 disable support for them.
0115 
0116 config MEDIA_SDR_SUPPORT
0117         bool
0118         prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
0119         default y if !MEDIA_SUPPORT_FILTER
0120         help
0121           Enable software defined radio support.
0122 
0123           Say Y when you have a software defined radio device.
0124 
0125 config MEDIA_PLATFORM_SUPPORT
0126         bool
0127         prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
0128         default y if !MEDIA_SUPPORT_FILTER
0129         help
0130           Enable support for complex cameras, codecs, and other hardware
0131           that are integrated at the CPU, GPU or on Image Signalling Processor
0132           and don't use PCI, USB or Firewire buses.
0133 
0134           This is found on Embedded hardware (SoC), on V4L2 codecs and
0135           on some GPU and newer CPU chipsets.
0136 
0137           Say Y when you want to be able to see such devices.
0138 
0139 config MEDIA_TEST_SUPPORT
0140         bool
0141         prompt "Test drivers" if MEDIA_SUPPORT_FILTER
0142         default y if !MEDIA_SUPPORT_FILTER
0143         help
0144           These drivers should not be used on production kernels, but
0145           can be useful on debug ones. This option enables several dummy drivers
0146           that simulate real hardware. Very useful to test userspace
0147           applications and to validate if the subsystem core doesn't
0148           have regressions.
0149 
0150           Say Y if you want to use some virtual test driver.
0151 
0152           In case of doubts, say N.
0153           Say Y when you have a software defined radio device.
0154 endmenu # media device types
0155 
0156 
0157 menu "Media core support"
0158         visible if !MEDIA_SUPPORT_FILTER
0159 
0160 config VIDEO_DEV
0161         tristate "Video4Linux core"
0162         default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
0163         depends on (I2C || I2C=n)
0164         select RATIONAL
0165         select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE
0166         help
0167           Enables the V4L2 API, used by cameras, analog TV, video grabbers,
0168           radio devices and by some input devices.
0169 
0170 config MEDIA_CONTROLLER
0171         bool "Media Controller API"
0172         default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
0173         help
0174           Enable the media controller API used to query media devices internal
0175           topology and configure it dynamically.
0176 
0177           This API is mostly used by camera interfaces in embedded platforms.
0178 
0179 #
0180 # DVB Core
0181 #       Only enables if one of DTV is selected
0182 #
0183 
0184 config DVB_CORE
0185         tristate
0186         depends on MEDIA_DIGITAL_TV_SUPPORT
0187         depends on (I2C || I2C=n)
0188         default MEDIA_DIGITAL_TV_SUPPORT
0189         select CRC32
0190         help
0191           Enables the DVB API, used by Digital TV devices. Supports several
0192           standards, including DVB, ATSC, ISDB and CMDB.
0193 
0194 endmenu # Media core support
0195 
0196 #
0197 # Extra per-media API core functionality
0198 
0199 menu "Video4Linux options"
0200         visible if VIDEO_DEV
0201 
0202 source "drivers/media/v4l2-core/Kconfig"
0203 endmenu
0204 
0205 menu "Media controller options"
0206         visible if MEDIA_CONTROLLER
0207 
0208 source "drivers/media/mc/Kconfig"
0209 endmenu
0210 
0211 menu "Digital TV options"
0212         visible if DVB_CORE
0213 
0214 source "drivers/media/dvb-core/Kconfig"
0215 endmenu
0216 
0217 menu "Media drivers"
0218 
0219 comment "Drivers filtered as selected at 'Filter media drivers'"
0220         depends on MEDIA_SUPPORT_FILTER
0221 
0222 comment "Media drivers"
0223 
0224 source "drivers/media/usb/Kconfig"
0225 source "drivers/media/pci/Kconfig"
0226 source "drivers/media/radio/Kconfig"
0227 
0228 if MEDIA_PLATFORM_SUPPORT
0229 source "drivers/media/platform/Kconfig"
0230 source "drivers/media/mmc/Kconfig"
0231 endif
0232 
0233 if MEDIA_TEST_SUPPORT
0234 source "drivers/media/test-drivers/Kconfig"
0235 endif
0236 
0237 source "drivers/media/firewire/Kconfig"
0238 
0239 # Common driver options
0240 source "drivers/media/common/Kconfig"
0241 
0242 endmenu
0243 
0244 #
0245 # Ancillary drivers (tuners, i2c, spi, frontends)
0246 #
0247 
0248 config MEDIA_HIDE_ANCILLARY_SUBDRV
0249         bool
0250         depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
0251         default y
0252 
0253 menu "Media ancillary drivers"
0254 
0255 config MEDIA_ATTACH
0256         bool
0257         depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
0258         depends on MODULES
0259         default MODULES
0260 
0261 source "drivers/media/i2c/Kconfig"
0262 source "drivers/media/spi/Kconfig"
0263 source "drivers/media/tuners/Kconfig"
0264 source "drivers/media/dvb-frontends/Kconfig"
0265 
0266 endmenu
0267 
0268 endif # MEDIA_SUPPORT