Kconfig 6.8 KB

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