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 && PRINTK 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 select SHMEM 192 help 193 GPU memory management subsystem for devices with multiple 194 GPU memory types. Will be enabled automatically if a device driver 195 uses it. 196 197config DRM_EXEC 198 tristate 199 depends on DRM 200 help 201 Execution context for command submissions 202 203config DRM_GPUVM 204 tristate 205 depends on DRM 206 select DRM_EXEC 207 help 208 GPU-VM representation providing helpers to manage a GPUs virtual 209 address space 210 211config DRM_GPUSVM 212 tristate 213 depends on DRM 214 select HMM_MIRROR 215 select MMU_NOTIFIER 216 help 217 GPU-SVM representation providing helpers to manage a GPUs shared 218 virtual memory 219 220config DRM_BUDDY 221 tristate 222 depends on DRM 223 select GPU_BUDDY 224 help 225 A page based buddy allocator 226 227config DRM_VRAM_HELPER 228 tristate 229 depends on DRM 230 help 231 Helpers for VRAM memory management 232 233config DRM_TTM_HELPER 234 tristate 235 depends on DRM 236 select DRM_TTM 237 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION 238 select FB_CORE if DRM_FBDEV_EMULATION 239 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION 240 help 241 Helpers for ttm-based gem objects 242 243config DRM_GEM_DMA_HELPER 244 tristate 245 depends on DRM 246 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION 247 select FB_CORE if DRM_FBDEV_EMULATION 248 select FB_DMAMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION 249 help 250 Choose this if you need the GEM DMA helper functions 251 252config DRM_GEM_SHMEM_HELPER 253 tristate 254 depends on DRM && MMU 255 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION 256 select FB_CORE if DRM_FBDEV_EMULATION 257 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION 258 help 259 Choose this if you need the GEM shmem helper functions 260 261config RUST_DRM_GEM_SHMEM_HELPER 262 bool 263 depends on DRM && MMU 264 select DRM_GEM_SHMEM_HELPER 265 help 266 Choose this if you need the GEM shmem helper functions In Rust 267 268config DRM_SUBALLOC_HELPER 269 tristate 270 depends on DRM 271 272config DRM_SCHED 273 tristate 274 depends on DRM 275 276# Separate option as not all DRM drivers use it 277config DRM_PANEL_BACKLIGHT_QUIRKS 278 tristate 279 280config DRM_PRIVACY_SCREEN 281 bool 282 default n 283 284# DRM driver Kconfig files, sorted 285source "drivers/gpu/drm/adp/Kconfig" 286source "drivers/gpu/drm/amd/amdgpu/Kconfig" 287source "drivers/gpu/drm/arm/Kconfig" 288source "drivers/gpu/drm/armada/Kconfig" 289source "drivers/gpu/drm/aspeed/Kconfig" 290source "drivers/gpu/drm/ast/Kconfig" 291source "drivers/gpu/drm/atmel-hlcdc/Kconfig" 292source "drivers/gpu/drm/bridge/Kconfig" 293source "drivers/gpu/drm/etnaviv/Kconfig" 294source "drivers/gpu/drm/exynos/Kconfig" 295source "drivers/gpu/drm/fsl-dcu/Kconfig" 296source "drivers/gpu/drm/gma500/Kconfig" 297source "drivers/gpu/drm/gud/Kconfig" 298source "drivers/gpu/drm/hisilicon/Kconfig" 299source "drivers/gpu/drm/hyperv/Kconfig" 300source "drivers/gpu/drm/i915/Kconfig" 301source "drivers/gpu/drm/imagination/Kconfig" 302source "drivers/gpu/drm/imx/Kconfig" 303source "drivers/gpu/drm/ingenic/Kconfig" 304source "drivers/gpu/drm/kmb/Kconfig" 305source "drivers/gpu/drm/lima/Kconfig" 306source "drivers/gpu/drm/logicvc/Kconfig" 307source "drivers/gpu/drm/loongson/Kconfig" 308source "drivers/gpu/drm/mcde/Kconfig" 309source "drivers/gpu/drm/mediatek/Kconfig" 310source "drivers/gpu/drm/meson/Kconfig" 311source "drivers/gpu/drm/mgag200/Kconfig" 312source "drivers/gpu/drm/msm/Kconfig" 313source "drivers/gpu/drm/mxsfb/Kconfig" 314source "drivers/gpu/drm/nouveau/Kconfig" 315source "drivers/gpu/drm/nova/Kconfig" 316source "drivers/gpu/drm/omapdrm/Kconfig" 317source "drivers/gpu/drm/panel/Kconfig" 318source "drivers/gpu/drm/panfrost/Kconfig" 319source "drivers/gpu/drm/panthor/Kconfig" 320source "drivers/gpu/drm/pl111/Kconfig" 321source "drivers/gpu/drm/qxl/Kconfig" 322source "drivers/gpu/drm/radeon/Kconfig" 323source "drivers/gpu/drm/renesas/Kconfig" 324source "drivers/gpu/drm/rockchip/Kconfig" 325source "drivers/gpu/drm/sitronix/Kconfig" 326source "drivers/gpu/drm/solomon/Kconfig" 327source "drivers/gpu/drm/sprd/Kconfig" 328source "drivers/gpu/drm/sti/Kconfig" 329source "drivers/gpu/drm/stm/Kconfig" 330source "drivers/gpu/drm/sun4i/Kconfig" 331source "drivers/gpu/drm/sysfb/Kconfig" 332source "drivers/gpu/drm/tegra/Kconfig" 333source "drivers/gpu/drm/tidss/Kconfig" 334source "drivers/gpu/drm/tilcdc/Kconfig" 335source "drivers/gpu/drm/tiny/Kconfig" 336source "drivers/gpu/drm/tve200/Kconfig" 337source "drivers/gpu/drm/tyr/Kconfig" 338source "drivers/gpu/drm/udl/Kconfig" 339source "drivers/gpu/drm/v3d/Kconfig" 340source "drivers/gpu/drm/vboxvideo/Kconfig" 341source "drivers/gpu/drm/vc4/Kconfig" 342source "drivers/gpu/drm/verisilicon/Kconfig" 343source "drivers/gpu/drm/vgem/Kconfig" 344source "drivers/gpu/drm/virtio/Kconfig" 345source "drivers/gpu/drm/vkms/Kconfig" 346source "drivers/gpu/drm/vmwgfx/Kconfig" 347source "drivers/gpu/drm/xe/Kconfig" 348source "drivers/gpu/drm/xen/Kconfig" 349source "drivers/gpu/drm/xlnx/Kconfig" 350 351endif 352 353# Separate option because drm_panel_orientation_quirks.c is shared with fbdev 354config DRM_PANEL_ORIENTATION_QUIRKS 355 tristate 356