Kconfig 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  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
  56. prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
  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
  63. prompt "Analog TV" if MEDIA_SUPPORT_FILTER
  64. default y if !MEDIA_SUPPORT_FILTER
  65. help
  66. Enable analog TV support.
  67. Say Y when you have a TV board with analog support or with a
  68. hybrid analog/digital TV chipset.
  69. Note: There are several DVB cards that are based on chips that
  70. support both analog and digital TV. Disabling this option
  71. will disable support for them.
  72. config MEDIA_DIGITAL_TV_SUPPORT
  73. bool
  74. prompt "Digital TV" if MEDIA_SUPPORT_FILTER
  75. default y if !MEDIA_SUPPORT_FILTER
  76. help
  77. Enable digital TV support.
  78. Say Y when you have a board with digital support or a board with
  79. hybrid digital TV and analog TV.
  80. config MEDIA_RADIO_SUPPORT
  81. bool
  82. prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
  83. default y if !MEDIA_SUPPORT_FILTER
  84. help
  85. Enable AM/FM radio support.
  86. Additional info and docs are available on the web at
  87. <https://linuxtv.org>
  88. Say Y when you have a board with radio support.
  89. Note: There are several TV cards that are based on chips that
  90. support radio reception. Disabling this option will
  91. disable support for them.
  92. config MEDIA_SDR_SUPPORT
  93. bool
  94. prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
  95. default y if !MEDIA_SUPPORT_FILTER
  96. help
  97. Enable software defined radio support.
  98. Say Y when you have a software defined radio device.
  99. config MEDIA_PLATFORM_SUPPORT
  100. bool
  101. prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
  102. default y if !MEDIA_SUPPORT_FILTER
  103. help
  104. Enable support for complex cameras, codecs, and other hardware
  105. that are integrated at the CPU, GPU or on Image Signalling Processor
  106. and don't use PCI, USB or Firewire buses.
  107. This is found on Embedded hardware (SoC), on V4L2 codecs and
  108. on some GPU and newer CPU chipsets.
  109. Say Y when you want to be able to see such devices.
  110. config MEDIA_TEST_SUPPORT
  111. bool
  112. prompt "Test drivers" if MEDIA_SUPPORT_FILTER
  113. default y if !MEDIA_SUPPORT_FILTER
  114. help
  115. These drivers should not be used on production kernels, but
  116. can be useful on debug ones. This option enables several dummy drivers
  117. that simulate real hardware. Very useful to test userspace
  118. applications and to validate if the subsystem core doesn't
  119. have regressions.
  120. Say Y if you want to use some virtual test driver.
  121. In case of doubts, say N.
  122. Say Y when you have a software defined radio device.
  123. endmenu # media device types
  124. menu "Media core support"
  125. visible if !MEDIA_SUPPORT_FILTER
  126. config VIDEO_DEV
  127. tristate "Video4Linux core"
  128. default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
  129. depends on (I2C || I2C=n)
  130. select RATIONAL
  131. select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE
  132. help
  133. Enables the V4L2 API, used by cameras, analog TV, video grabbers,
  134. radio devices and by some input devices.
  135. config MEDIA_CONTROLLER
  136. bool "Media Controller API"
  137. default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
  138. help
  139. Enable the media controller API used to query media devices internal
  140. topology and configure it dynamically.
  141. This API is mostly used by camera interfaces in embedded platforms.
  142. #
  143. # DVB Core
  144. # Only enables if one of DTV is selected
  145. #
  146. config DVB_CORE
  147. tristate "DVB Core"
  148. depends on MEDIA_DIGITAL_TV_SUPPORT
  149. depends on (I2C || I2C=n)
  150. default MEDIA_DIGITAL_TV_SUPPORT
  151. select CRC32
  152. help
  153. Enables the DVB API, used by Digital TV devices. Supports several
  154. standards, including DVB, ATSC, ISDB and CMDB.
  155. endmenu # Media core support
  156. #
  157. # Extra per-media API core functionality
  158. menu "Video4Linux options"
  159. visible if VIDEO_DEV
  160. source "drivers/media/v4l2-core/Kconfig"
  161. endmenu
  162. menu "Media controller options"
  163. visible if MEDIA_CONTROLLER
  164. source "drivers/media/mc/Kconfig"
  165. endmenu
  166. menu "Digital TV options"
  167. visible if DVB_CORE
  168. source "drivers/media/dvb-core/Kconfig"
  169. endmenu
  170. menu "Media drivers"
  171. comment "Drivers filtered as selected at 'Filter media drivers'"
  172. depends on MEDIA_SUPPORT_FILTER
  173. comment "Media drivers"
  174. source "drivers/media/usb/Kconfig"
  175. source "drivers/media/pci/Kconfig"
  176. source "drivers/media/radio/Kconfig"
  177. if MEDIA_PLATFORM_SUPPORT
  178. source "drivers/media/platform/Kconfig"
  179. source "drivers/media/mmc/Kconfig"
  180. endif
  181. if MEDIA_TEST_SUPPORT
  182. source "drivers/media/test-drivers/Kconfig"
  183. endif
  184. source "drivers/media/firewire/Kconfig"
  185. # Common driver options
  186. source "drivers/media/common/Kconfig"
  187. endmenu
  188. #
  189. # Ancillary drivers (tuners, i2c, spi, frontends)
  190. #
  191. config MEDIA_HIDE_ANCILLARY_SUBDRV
  192. bool
  193. depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
  194. default y
  195. menu "Media ancillary drivers"
  196. config MEDIA_ATTACH
  197. bool
  198. depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
  199. depends on MODULES
  200. default MODULES
  201. source "drivers/media/i2c/Kconfig"
  202. source "drivers/media/spi/Kconfig"
  203. source "drivers/media/tuners/Kconfig"
  204. source "drivers/media/dvb-frontends/Kconfig"
  205. endmenu
  206. endif # MEDIA_SUPPORT