Kconfig 6.9 KB

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