Kconfig 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Drm device configuration
  4. #
  5. # This driver provides support for the
  6. # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
  7. #
  8. menuconfig DRM
  9. tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
  10. depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && HAS_DMA
  11. select DRM_PANEL_ORIENTATION_QUIRKS
  12. select HDMI
  13. select I2C
  14. select DMA_SHARED_BUFFER
  15. select SYNC_FILE
  16. # gallium uses SYS_kcmp for os_same_file_description() to de-duplicate
  17. # device and dmabuf fd. Let's make sure that is available for our userspace.
  18. select KCMP
  19. select VIDEO
  20. help
  21. Kernel-level support for the Direct Rendering Infrastructure (DRI)
  22. introduced in XFree86 4.0. If you say Y here, you need to select
  23. the module that's right for your graphics card from the list below.
  24. These modules provide support for synchronization, security, and
  25. DMA transfers. Please see <http://dri.sourceforge.net/> for more
  26. details. You should also select and configure AGP
  27. (/dev/agpgart) support if it is available for your platform.
  28. menu "DRM debugging options"
  29. depends on DRM
  30. source "drivers/gpu/drm/Kconfig.debug"
  31. endmenu
  32. if DRM
  33. config DRM_MIPI_DBI
  34. tristate
  35. depends on DRM
  36. select DRM_KMS_HELPER
  37. config DRM_MIPI_DSI
  38. bool
  39. depends on DRM
  40. config DRM_KMS_HELPER
  41. tristate
  42. depends on DRM
  43. select FB_CORE if DRM_FBDEV_EMULATION
  44. help
  45. CRTC helpers for KMS drivers.
  46. config DRM_DRAW
  47. bool
  48. depends on DRM
  49. config DRM_PANIC
  50. bool "Display a user-friendly message when a kernel panic occurs"
  51. depends on DRM
  52. select FONT_SUPPORT
  53. select DRM_DRAW
  54. help
  55. Enable a drm panic handler, which will display a user-friendly message
  56. when a kernel panic occurs. It's useful when using a user-space
  57. console instead of fbcon.
  58. It will only work if your graphic driver supports this feature.
  59. To support Hi-DPI Display, you can enable bigger fonts like
  60. FONT_TER16x32
  61. config DRM_PANIC_FOREGROUND_COLOR
  62. hex "Drm panic screen foreground color, in RGB"
  63. depends on DRM_PANIC
  64. default 0xffffff
  65. config DRM_PANIC_BACKGROUND_COLOR
  66. hex "Drm panic screen background color, in RGB"
  67. depends on DRM_PANIC
  68. default 0x000000
  69. config DRM_PANIC_DEBUG
  70. bool "Add a debug fs entry to trigger drm_panic"
  71. depends on DRM_PANIC && DEBUG_FS
  72. help
  73. Add dri/[device]/drm_panic_plane_x in the kernel debugfs, to force the
  74. panic handler to write the panic message to this plane scanout buffer.
  75. This is unsafe and should not be enabled on a production build.
  76. If in doubt, say "N".
  77. config DRM_PANIC_SCREEN
  78. string "Panic screen formatter"
  79. default "user"
  80. depends on DRM_PANIC
  81. help
  82. This option enable to choose what will be displayed when a kernel
  83. panic occurs. You can choose between "user", a short message telling
  84. the user to reboot the system, or "kmsg" which will display the last
  85. lines of kmsg.
  86. This can also be overridden by drm.panic_screen=xxxx kernel parameter
  87. or by writing to /sys/module/drm/parameters/panic_screen sysfs entry
  88. Default is "user"
  89. config DRM_PANIC_SCREEN_QR_CODE
  90. bool "Add a panic screen with a QR code"
  91. depends on DRM_PANIC && RUST
  92. select ZLIB_DEFLATE
  93. help
  94. This option adds a QR code generator, and a panic screen with a QR
  95. code. The QR code will contain the last lines of kmsg and other debug
  96. information. This should be easier for the user to report a kernel
  97. panic, with all debug information available.
  98. To use this panic screen, also set DRM_PANIC_SCREEN to "qr_code"
  99. config DRM_PANIC_SCREEN_QR_CODE_URL
  100. string "Base URL of the QR code in the panic screen"
  101. depends on DRM_PANIC_SCREEN_QR_CODE
  102. help
  103. This option sets the base URL to report the kernel panic. If it's set
  104. the QR code will contain the URL and the kmsg compressed with zlib as
  105. a URL parameter. If it's empty, the QR code will contain the kmsg as
  106. uncompressed text only.
  107. There is a demo code in javascript, to decode and uncompress the kmsg
  108. data from the URL parameter at https://github.com/kdj0c/panic_report
  109. config DRM_PANIC_SCREEN_QR_VERSION
  110. int "Maximum version (size) of the QR code."
  111. depends on DRM_PANIC_SCREEN_QR_CODE
  112. default 40
  113. help
  114. This option limits the version (or size) of the QR code. QR code
  115. version ranges from Version 1 (21x21) to Version 40 (177x177).
  116. Smaller QR code are easier to read, but will contain less debugging
  117. data. Default is 40.
  118. config DRM_DEBUG_DP_MST_TOPOLOGY_REFS
  119. bool "Enable refcount backtrace history in the DP MST helpers"
  120. depends on STACKTRACE_SUPPORT
  121. select STACKDEPOT
  122. select DRM_KMS_HELPER
  123. depends on DEBUG_KERNEL
  124. depends on EXPERT
  125. help
  126. Enables debug tracing for topology refs in DRM's DP MST helpers. A
  127. history of each topology reference/dereference will be printed to the
  128. kernel log once a port or branch device's topology refcount reaches 0.
  129. This has the potential to use a lot of memory and print some very
  130. large kernel messages. If in doubt, say "N".
  131. config DRM_DEBUG_MODESET_LOCK
  132. bool "Enable backtrace history for lock contention"
  133. depends on STACKTRACE_SUPPORT
  134. depends on DEBUG_KERNEL
  135. depends on EXPERT
  136. select STACKDEPOT
  137. default y if DEBUG_WW_MUTEX_SLOWPATH
  138. help
  139. Enable debug tracing of failures to gracefully handle drm modeset lock
  140. contention. A history of each drm modeset lock path hitting -EDEADLK
  141. will be saved until gracefully handled, and the backtrace will be
  142. printed when attempting to lock a contended lock.
  143. If in doubt, say "N".
  144. config DRM_CLIENT
  145. bool
  146. depends on DRM
  147. help
  148. Enables support for DRM clients. DRM drivers that need
  149. struct drm_client_dev and its interfaces should select this
  150. option. Drivers that support the default clients should
  151. select DRM_CLIENT_SELECTION instead.
  152. source "drivers/gpu/drm/clients/Kconfig"
  153. config DRM_LOAD_EDID_FIRMWARE
  154. bool "Allow to specify an EDID data set instead of probing for it"
  155. depends on DRM
  156. help
  157. Say Y here, if you want to use EDID data to be loaded from the
  158. /lib/firmware directory or one of the provided built-in
  159. data sets. This may be necessary, if the graphics adapter or
  160. monitor are unable to provide appropriate EDID data. Since this
  161. feature is provided as a workaround for broken hardware, the
  162. default case is N. Details and instructions how to build your own
  163. EDID data are given in Documentation/admin-guide/edid.rst.
  164. source "drivers/gpu/drm/display/Kconfig"
  165. config DRM_TTM
  166. tristate
  167. depends on DRM && MMU
  168. select SHMEM
  169. help
  170. GPU memory management subsystem for devices with multiple
  171. GPU memory types. Will be enabled automatically if a device driver
  172. uses it.
  173. config DRM_EXEC
  174. tristate
  175. depends on DRM
  176. help
  177. Execution context for command submissions
  178. config DRM_GPUVM
  179. tristate
  180. depends on DRM
  181. select DRM_EXEC
  182. help
  183. GPU-VM representation providing helpers to manage a GPUs virtual
  184. address space
  185. config DRM_GPUSVM
  186. tristate
  187. depends on DRM
  188. select HMM_MIRROR
  189. select MMU_NOTIFIER
  190. help
  191. GPU-SVM representation providing helpers to manage a GPUs shared
  192. virtual memory
  193. config DRM_BUDDY
  194. tristate
  195. depends on DRM
  196. help
  197. A page based buddy allocator
  198. config DRM_VRAM_HELPER
  199. tristate
  200. depends on DRM
  201. help
  202. Helpers for VRAM memory management
  203. config DRM_TTM_HELPER
  204. tristate
  205. depends on DRM
  206. select DRM_TTM
  207. select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
  208. select FB_CORE if DRM_FBDEV_EMULATION
  209. select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
  210. help
  211. Helpers for ttm-based gem objects
  212. config DRM_GEM_DMA_HELPER
  213. tristate
  214. depends on DRM
  215. select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
  216. select FB_CORE if DRM_FBDEV_EMULATION
  217. select FB_DMAMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
  218. help
  219. Choose this if you need the GEM DMA helper functions
  220. config DRM_GEM_SHMEM_HELPER
  221. tristate
  222. depends on DRM && MMU
  223. select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
  224. select FB_CORE if DRM_FBDEV_EMULATION
  225. select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION
  226. help
  227. Choose this if you need the GEM shmem helper functions
  228. config DRM_SUBALLOC_HELPER
  229. tristate
  230. depends on DRM
  231. config DRM_SCHED
  232. tristate
  233. depends on DRM
  234. # Separate option as not all DRM drivers use it
  235. config DRM_PANEL_BACKLIGHT_QUIRKS
  236. tristate
  237. config DRM_LIB_RANDOM
  238. bool
  239. default n
  240. config DRM_PRIVACY_SCREEN
  241. bool
  242. default n
  243. # DRM driver Kconfig files, sorted
  244. source "drivers/gpu/drm/adp/Kconfig"
  245. source "drivers/gpu/drm/amd/amdgpu/Kconfig"
  246. source "drivers/gpu/drm/arm/Kconfig"
  247. source "drivers/gpu/drm/armada/Kconfig"
  248. source "drivers/gpu/drm/aspeed/Kconfig"
  249. source "drivers/gpu/drm/ast/Kconfig"
  250. source "drivers/gpu/drm/atmel-hlcdc/Kconfig"
  251. source "drivers/gpu/drm/bridge/Kconfig"
  252. source "drivers/gpu/drm/etnaviv/Kconfig"
  253. source "drivers/gpu/drm/exynos/Kconfig"
  254. source "drivers/gpu/drm/fsl-dcu/Kconfig"
  255. source "drivers/gpu/drm/gma500/Kconfig"
  256. source "drivers/gpu/drm/gud/Kconfig"
  257. source "drivers/gpu/drm/hisilicon/Kconfig"
  258. source "drivers/gpu/drm/hyperv/Kconfig"
  259. source "drivers/gpu/drm/i915/Kconfig"
  260. source "drivers/gpu/drm/imagination/Kconfig"
  261. source "drivers/gpu/drm/imx/Kconfig"
  262. source "drivers/gpu/drm/ingenic/Kconfig"
  263. source "drivers/gpu/drm/kmb/Kconfig"
  264. source "drivers/gpu/drm/lima/Kconfig"
  265. source "drivers/gpu/drm/logicvc/Kconfig"
  266. source "drivers/gpu/drm/loongson/Kconfig"
  267. source "drivers/gpu/drm/mcde/Kconfig"
  268. source "drivers/gpu/drm/mediatek/Kconfig"
  269. source "drivers/gpu/drm/meson/Kconfig"
  270. source "drivers/gpu/drm/mgag200/Kconfig"
  271. source "drivers/gpu/drm/msm/Kconfig"
  272. source "drivers/gpu/drm/mxsfb/Kconfig"
  273. source "drivers/gpu/drm/nouveau/Kconfig"
  274. source "drivers/gpu/drm/nova/Kconfig"
  275. source "drivers/gpu/drm/omapdrm/Kconfig"
  276. source "drivers/gpu/drm/panel/Kconfig"
  277. source "drivers/gpu/drm/panfrost/Kconfig"
  278. source "drivers/gpu/drm/panthor/Kconfig"
  279. source "drivers/gpu/drm/pl111/Kconfig"
  280. source "drivers/gpu/drm/qxl/Kconfig"
  281. source "drivers/gpu/drm/radeon/Kconfig"
  282. source "drivers/gpu/drm/renesas/Kconfig"
  283. source "drivers/gpu/drm/rockchip/Kconfig"
  284. source "drivers/gpu/drm/sitronix/Kconfig"
  285. source "drivers/gpu/drm/solomon/Kconfig"
  286. source "drivers/gpu/drm/sprd/Kconfig"
  287. source "drivers/gpu/drm/sti/Kconfig"
  288. source "drivers/gpu/drm/stm/Kconfig"
  289. source "drivers/gpu/drm/sun4i/Kconfig"
  290. source "drivers/gpu/drm/sysfb/Kconfig"
  291. source "drivers/gpu/drm/tegra/Kconfig"
  292. source "drivers/gpu/drm/tidss/Kconfig"
  293. source "drivers/gpu/drm/tilcdc/Kconfig"
  294. source "drivers/gpu/drm/tiny/Kconfig"
  295. source "drivers/gpu/drm/tve200/Kconfig"
  296. source "drivers/gpu/drm/tyr/Kconfig"
  297. source "drivers/gpu/drm/udl/Kconfig"
  298. source "drivers/gpu/drm/v3d/Kconfig"
  299. source "drivers/gpu/drm/vboxvideo/Kconfig"
  300. source "drivers/gpu/drm/vc4/Kconfig"
  301. source "drivers/gpu/drm/vgem/Kconfig"
  302. source "drivers/gpu/drm/virtio/Kconfig"
  303. source "drivers/gpu/drm/vkms/Kconfig"
  304. source "drivers/gpu/drm/vmwgfx/Kconfig"
  305. source "drivers/gpu/drm/xe/Kconfig"
  306. source "drivers/gpu/drm/xen/Kconfig"
  307. source "drivers/gpu/drm/xlnx/Kconfig"
  308. endif
  309. # Separate option because drm_panel_orientation_quirks.c is shared with fbdev
  310. config DRM_PANEL_ORIENTATION_QUIRKS
  311. tristate