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# 8menuconfig 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 29menu "DRM debugging options" 30depends on DRM 31source "drivers/gpu/drm/Kconfig.debug" 32endmenu 33 34if DRM 35 36config DRM_MIPI_DBI 37 tristate 38 depends on DRM 39 select DRM_KMS_HELPER 40 41config DRM_MIPI_DSI 42 bool 43 depends on DRM 44 45config DRM_KMS_HELPER 46 tristate 47 depends on DRM 48 select FB_CORE if DRM_FBDEV_EMULATION 49 help 50 CRTC helpers for KMS drivers. 51 52config DRM_DRAW 53 bool 54 depends on DRM 55 56config DRM_PANIC 57 bool "Display a user-friendly message when a kernel panic occurs" 58 depends on DRM 59 select FONT_SUPPORT 60 select DRM_DRAW 61 help 62 Enable a drm panic handler, which will display a user-friendly message 63 when a kernel panic occurs. It's useful when using a user-space 64 console instead of fbcon. 65 It will only work if your graphic driver supports this feature. 66 To support Hi-DPI Display, you can enable bigger fonts like 67 FONT_TER16x32 68 69config DRM_PANIC_FOREGROUND_COLOR 70 hex "Drm panic screen foreground color, in RGB" 71 depends on DRM_PANIC 72 default 0xffffff 73 74config DRM_PANIC_BACKGROUND_COLOR 75 hex "Drm panic screen background color, in RGB" 76 depends on DRM_PANIC 77 default 0x000000 78 79config DRM_PANIC_DEBUG 80 bool "Add a debug fs entry to trigger drm_panic" 81 depends on DRM_PANIC && DEBUG_FS 82 help 83 Add dri/[device]/drm_panic_plane_x in the kernel debugfs, to force the 84 panic handler to write the panic message to this plane scanout buffer. 85 This is unsafe and should not be enabled on a production build. 86 If in doubt, say "N". 87 88config DRM_PANIC_SCREEN 89 string "Panic screen formatter" 90 default "user" 91 depends on DRM_PANIC 92 help 93 This option enable to choose what will be displayed when a kernel 94 panic occurs. You can choose between "user", a short message telling 95 the user to reboot the system, or "kmsg" which will display the last 96 lines of kmsg. 97 This can also be overridden by drm.panic_screen=xxxx kernel parameter 98 or by writing to /sys/module/drm/parameters/panic_screen sysfs entry 99 Default is "user" 100 101config DRM_PANIC_SCREEN_QR_CODE 102 bool "Add a panic screen with a QR code" 103 depends on DRM_PANIC && RUST 104 select ZLIB_DEFLATE 105 help 106 This option adds a QR code generator, and a panic screen with a QR 107 code. The QR code will contain the last lines of kmsg and other debug 108 information. This should be easier for the user to report a kernel 109 panic, with all debug information available. 110 To use this panic screen, also set DRM_PANIC_SCREEN to "qr_code" 111 112config DRM_PANIC_SCREEN_QR_CODE_URL 113 string "Base URL of the QR code in the panic screen" 114 depends on DRM_PANIC_SCREEN_QR_CODE 115 help 116 This option sets the base URL to report the kernel panic. If it's set 117 the QR code will contain the URL and the kmsg compressed with zlib as 118 a URL parameter. If it's empty, the QR code will contain the kmsg as 119 uncompressed text only. 120 There is a demo code in javascript, to decode and uncompress the kmsg 121 data from the URL parameter at https://github.com/kdj0c/panic_report 122 123config DRM_PANIC_SCREEN_QR_VERSION 124 int "Maximum version (size) of the QR code." 125 depends on DRM_PANIC_SCREEN_QR_CODE 126 default 40 127 help 128 This option limits the version (or size) of the QR code. QR code 129 version ranges from Version 1 (21x21) to Version 40 (177x177). 130 Smaller QR code are easier to read, but will contain less debugging 131 data. Default is 40. 132 133config DRM_DEBUG_DP_MST_TOPOLOGY_REFS 134 bool "Enable refcount backtrace history in the DP MST helpers" 135 depends on STACKTRACE_SUPPORT 136 select STACKDEPOT 137 select DRM_KMS_HELPER 138 depends on DEBUG_KERNEL 139 depends on EXPERT 140 help 141 Enables debug tracing for topology refs in DRM's DP MST helpers. A 142 history of each topology reference/dereference will be printed to the 143 kernel log once a port or branch device's topology refcount reaches 0. 144 145 This has the potential to use a lot of memory and print some very 146 large kernel messages. If in doubt, say "N". 147 148config DRM_DEBUG_MODESET_LOCK 149 bool "Enable backtrace history for lock contention" 150 depends on STACKTRACE_SUPPORT 151 depends on DEBUG_KERNEL 152 depends on EXPERT 153 select STACKDEPOT 154 default y if DEBUG_WW_MUTEX_SLOWPATH 155 help 156 Enable debug tracing of failures to gracefully handle drm modeset lock 157 contention. A history of each drm modeset lock path hitting -EDEADLK 158 will be saved until gracefully handled, and the backtrace will be 159 printed when attempting to lock a contended lock. 160 161 If in doubt, say "N". 162 163config DRM_CLIENT 164 bool 165 depends on DRM 166 help 167 Enables support for DRM clients. DRM drivers that need 168 struct drm_client_dev and its interfaces should select this 169 option. Drivers that support the default clients should 170 select DRM_CLIENT_SELECTION instead. 171 172source "drivers/gpu/drm/clients/Kconfig" 173 174config DRM_LOAD_EDID_FIRMWARE 175 bool "Allow to specify an EDID data set instead of probing for it" 176 depends on DRM 177 help 178 Say Y here, if you want to use EDID data to be loaded from the 179 /lib/firmware directory or one of the provided built-in 180 data sets. This may be necessary, if the graphics adapter or 181 monitor are unable to provide appropriate EDID data. Since this 182 feature is provided as a workaround for broken hardware, the 183 default case is N. Details and instructions how to build your own 184 EDID data are given in Documentation/admin-guide/edid.rst. 185 186source "drivers/gpu/drm/display/Kconfig" 187 188config DRM_TTM 189 tristate 190 depends on DRM && MMU 191 help 192 GPU memory management subsystem for devices with multiple 193 GPU memory types. Will be enabled automatically if a device driver 194 uses it. 195 196config DRM_EXEC 197 tristate 198 depends on DRM 199 help 200 Execution context for command submissions 201 202config DRM_GPUVM 203 tristate 204 depends on DRM 205 select DRM_EXEC 206 help 207 GPU-VM representation providing helpers to manage a GPUs virtual 208 address space 209 210config DRM_GPUSVM 211 tristate 212 depends on DRM && DEVICE_PRIVATE 213 select HMM_MIRROR 214 select MMU_NOTIFIER 215 help 216 GPU-SVM representation providing helpers to manage a GPUs shared 217 virtual memory 218 219config DRM_BUDDY 220 tristate 221 depends on DRM 222 help 223 A page based buddy allocator 224 225config DRM_VRAM_HELPER 226 tristate 227 depends on DRM 228 help 229 Helpers for VRAM memory management 230 231config DRM_TTM_HELPER 232 tristate 233 depends on DRM 234 select DRM_TTM 235 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION 236 select FB_CORE if DRM_FBDEV_EMULATION 237 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION 238 help 239 Helpers for ttm-based gem objects 240 241config DRM_GEM_DMA_HELPER 242 tristate 243 depends on DRM 244 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION 245 select FB_CORE if DRM_FBDEV_EMULATION 246 select FB_DMAMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION 247 help 248 Choose this if you need the GEM DMA helper functions 249 250config DRM_GEM_SHMEM_HELPER 251 tristate 252 depends on DRM && MMU 253 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION 254 select FB_CORE if DRM_FBDEV_EMULATION 255 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION 256 help 257 Choose this if you need the GEM shmem helper functions 258 259config DRM_SUBALLOC_HELPER 260 tristate 261 depends on DRM 262 263config DRM_SCHED 264 tristate 265 depends on DRM 266 267source "drivers/gpu/drm/sysfb/Kconfig" 268 269source "drivers/gpu/drm/arm/Kconfig" 270 271source "drivers/gpu/drm/radeon/Kconfig" 272 273source "drivers/gpu/drm/amd/amdgpu/Kconfig" 274 275source "drivers/gpu/drm/nouveau/Kconfig" 276 277source "drivers/gpu/drm/nova/Kconfig" 278 279source "drivers/gpu/drm/i915/Kconfig" 280 281source "drivers/gpu/drm/xe/Kconfig" 282 283source "drivers/gpu/drm/kmb/Kconfig" 284 285config DRM_VGEM 286 tristate "Virtual GEM provider" 287 depends on DRM && MMU 288 select DRM_GEM_SHMEM_HELPER 289 help 290 Choose this option to get a virtual graphics memory manager, 291 as used by Mesa's software renderer for enhanced performance. 292 If M is selected the module will be called vgem. 293 294source "drivers/gpu/drm/vkms/Kconfig" 295 296source "drivers/gpu/drm/exynos/Kconfig" 297 298source "drivers/gpu/drm/rockchip/Kconfig" 299 300source "drivers/gpu/drm/vmwgfx/Kconfig" 301 302source "drivers/gpu/drm/gma500/Kconfig" 303 304source "drivers/gpu/drm/udl/Kconfig" 305 306source "drivers/gpu/drm/ast/Kconfig" 307 308source "drivers/gpu/drm/mgag200/Kconfig" 309 310source "drivers/gpu/drm/armada/Kconfig" 311 312source "drivers/gpu/drm/atmel-hlcdc/Kconfig" 313 314source "drivers/gpu/drm/renesas/Kconfig" 315 316source "drivers/gpu/drm/sun4i/Kconfig" 317 318source "drivers/gpu/drm/omapdrm/Kconfig" 319 320source "drivers/gpu/drm/tilcdc/Kconfig" 321 322source "drivers/gpu/drm/qxl/Kconfig" 323 324source "drivers/gpu/drm/virtio/Kconfig" 325 326source "drivers/gpu/drm/msm/Kconfig" 327 328source "drivers/gpu/drm/fsl-dcu/Kconfig" 329 330source "drivers/gpu/drm/tegra/Kconfig" 331 332source "drivers/gpu/drm/stm/Kconfig" 333 334source "drivers/gpu/drm/panel/Kconfig" 335 336source "drivers/gpu/drm/bridge/Kconfig" 337 338source "drivers/gpu/drm/sti/Kconfig" 339 340source "drivers/gpu/drm/imx/Kconfig" 341 342source "drivers/gpu/drm/ingenic/Kconfig" 343 344source "drivers/gpu/drm/v3d/Kconfig" 345 346source "drivers/gpu/drm/vc4/Kconfig" 347 348source "drivers/gpu/drm/loongson/Kconfig" 349 350source "drivers/gpu/drm/etnaviv/Kconfig" 351 352source "drivers/gpu/drm/hisilicon/Kconfig" 353 354source "drivers/gpu/drm/logicvc/Kconfig" 355 356source "drivers/gpu/drm/mediatek/Kconfig" 357 358source "drivers/gpu/drm/mxsfb/Kconfig" 359 360source "drivers/gpu/drm/meson/Kconfig" 361 362source "drivers/gpu/drm/tiny/Kconfig" 363 364source "drivers/gpu/drm/pl111/Kconfig" 365 366source "drivers/gpu/drm/tve200/Kconfig" 367 368source "drivers/gpu/drm/xen/Kconfig" 369 370source "drivers/gpu/drm/vboxvideo/Kconfig" 371 372source "drivers/gpu/drm/lima/Kconfig" 373 374source "drivers/gpu/drm/panfrost/Kconfig" 375 376source "drivers/gpu/drm/panthor/Kconfig" 377 378source "drivers/gpu/drm/aspeed/Kconfig" 379 380source "drivers/gpu/drm/mcde/Kconfig" 381 382source "drivers/gpu/drm/tidss/Kconfig" 383 384source "drivers/gpu/drm/adp/Kconfig" 385 386source "drivers/gpu/drm/xlnx/Kconfig" 387 388source "drivers/gpu/drm/gud/Kconfig" 389 390source "drivers/gpu/drm/sitronix/Kconfig" 391 392source "drivers/gpu/drm/solomon/Kconfig" 393 394source "drivers/gpu/drm/sprd/Kconfig" 395 396source "drivers/gpu/drm/imagination/Kconfig" 397 398config DRM_HYPERV 399 tristate "DRM Support for Hyper-V synthetic video device" 400 depends on DRM && PCI && MMU && HYPERV 401 select DRM_CLIENT_SELECTION 402 select DRM_KMS_HELPER 403 select DRM_GEM_SHMEM_HELPER 404 help 405 This is a KMS driver for Hyper-V synthetic video device. Choose this 406 option if you would like to enable drm driver for Hyper-V virtual 407 machine. Unselect Hyper-V framebuffer driver (CONFIG_FB_HYPERV) so 408 that DRM driver is used by default. 409 410 If M is selected the module will be called hyperv_drm. 411 412# Separate option as not all DRM drivers use it 413config DRM_PANEL_BACKLIGHT_QUIRKS 414 tristate 415 416config DRM_LIB_RANDOM 417 bool 418 default n 419 420config DRM_PRIVACY_SCREEN 421 bool 422 default n 423 424endif 425 426# Separate option because drm_panel_orientation_quirks.c is shared with fbdev 427config DRM_PANEL_ORIENTATION_QUIRKS 428 tristate 429