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_RAS 134 bool "DRM RAS support" 135 depends on DRM 136 depends on NET 137 help 138 Enables the DRM RAS (Reliability, Availability and Serviceability) 139 support for DRM drivers. This provides a Generic Netlink interface 140 for error reporting and queries. 141 If in doubt, say "N". 142 143config DRM_DEBUG_DP_MST_TOPOLOGY_REFS 144 bool "Enable refcount backtrace history in the DP MST helpers" 145 depends on STACKTRACE_SUPPORT 146 select STACKDEPOT 147 select DRM_KMS_HELPER 148 depends on DEBUG_KERNEL 149 depends on EXPERT 150 help 151 Enables debug tracing for topology refs in DRM's DP MST helpers. A 152 history of each topology reference/dereference will be printed to the 153 kernel log once a port or branch device's topology refcount reaches 0. 154 155 This has the potential to use a lot of memory and print some very 156 large kernel messages. If in doubt, say "N". 157 158config DRM_DEBUG_MODESET_LOCK 159 bool "Enable backtrace history for lock contention" 160 depends on STACKTRACE_SUPPORT 161 depends on DEBUG_KERNEL 162 depends on EXPERT 163 select STACKDEPOT 164 default y if DEBUG_WW_MUTEX_SLOWPATH 165 help 166 Enable debug tracing of failures to gracefully handle drm modeset lock 167 contention. A history of each drm modeset lock path hitting -EDEADLK 168 will be saved until gracefully handled, and the backtrace will be 169 printed when attempting to lock a contended lock. 170 171 If in doubt, say "N". 172 173config DRM_CLIENT 174 bool 175 depends on DRM 176 help 177 Enables support for DRM clients. DRM drivers that need 178 struct drm_client_dev and its interfaces should select this 179 option. Drivers that support the default clients should 180 select DRM_CLIENT_SELECTION instead. 181 182source "drivers/gpu/drm/clients/Kconfig" 183 184config DRM_LOAD_EDID_FIRMWARE 185 bool "Allow to specify an EDID data set instead of probing for it" 186 depends on DRM 187 help 188 Say Y here, if you want to use EDID data to be loaded from the 189 /lib/firmware directory or one of the provided built-in 190 data sets. This may be necessary, if the graphics adapter or 191 monitor are unable to provide appropriate EDID data. Since this 192 feature is provided as a workaround for broken hardware, the 193 default case is N. Details and instructions how to build your own 194 EDID data are given in Documentation/admin-guide/edid.rst. 195 196source "drivers/gpu/drm/display/Kconfig" 197 198config DRM_TTM 199 tristate 200 depends on DRM && MMU 201 select SHMEM 202 help 203 GPU memory management subsystem for devices with multiple 204 GPU memory types. Will be enabled automatically if a device driver 205 uses it. 206 207config DRM_EXEC 208 tristate 209 depends on DRM 210 help 211 Execution context for command submissions 212 213config DRM_GPUVM 214 tristate 215 depends on DRM 216 select DRM_EXEC 217 help 218 GPU-VM representation providing helpers to manage a GPUs virtual 219 address space 220 221config DRM_GPUSVM 222 tristate 223 depends on DRM 224 select HMM_MIRROR 225 select MMU_NOTIFIER 226 help 227 GPU-SVM representation providing helpers to manage a GPUs shared 228 virtual memory 229 230config DRM_BUDDY 231 tristate 232 depends on DRM 233 select GPU_BUDDY 234 help 235 A page based buddy allocator 236 237config DRM_VRAM_HELPER 238 tristate 239 depends on DRM 240 help 241 Helpers for VRAM memory management 242 243config DRM_TTM_HELPER 244 tristate 245 depends on DRM 246 select DRM_TTM 247 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION 248 select FB_CORE if DRM_FBDEV_EMULATION 249 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION 250 help 251 Helpers for ttm-based gem objects 252 253config DRM_GEM_DMA_HELPER 254 tristate 255 depends on DRM 256 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION 257 select FB_CORE if DRM_FBDEV_EMULATION 258 select FB_DMAMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION 259 help 260 Choose this if you need the GEM DMA helper functions 261 262config DRM_GEM_SHMEM_HELPER 263 tristate 264 depends on DRM && MMU 265 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION 266 select FB_CORE if DRM_FBDEV_EMULATION 267 select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION 268 help 269 Choose this if you need the GEM shmem helper functions 270 271config DRM_SUBALLOC_HELPER 272 tristate 273 depends on DRM 274 275config DRM_SCHED 276 tristate 277 depends on DRM 278 279# Separate option as not all DRM drivers use it 280config DRM_PANEL_BACKLIGHT_QUIRKS 281 tristate 282 283config DRM_PRIVACY_SCREEN 284 bool 285 default n 286 287# DRM driver Kconfig files, sorted 288source "drivers/gpu/drm/adp/Kconfig" 289source "drivers/gpu/drm/amd/amdgpu/Kconfig" 290source "drivers/gpu/drm/arm/Kconfig" 291source "drivers/gpu/drm/armada/Kconfig" 292source "drivers/gpu/drm/aspeed/Kconfig" 293source "drivers/gpu/drm/ast/Kconfig" 294source "drivers/gpu/drm/atmel-hlcdc/Kconfig" 295source "drivers/gpu/drm/bridge/Kconfig" 296source "drivers/gpu/drm/etnaviv/Kconfig" 297source "drivers/gpu/drm/exynos/Kconfig" 298source "drivers/gpu/drm/fsl-dcu/Kconfig" 299source "drivers/gpu/drm/gma500/Kconfig" 300source "drivers/gpu/drm/gud/Kconfig" 301source "drivers/gpu/drm/hisilicon/Kconfig" 302source "drivers/gpu/drm/hyperv/Kconfig" 303source "drivers/gpu/drm/i915/Kconfig" 304source "drivers/gpu/drm/imagination/Kconfig" 305source "drivers/gpu/drm/imx/Kconfig" 306source "drivers/gpu/drm/ingenic/Kconfig" 307source "drivers/gpu/drm/kmb/Kconfig" 308source "drivers/gpu/drm/lima/Kconfig" 309source "drivers/gpu/drm/logicvc/Kconfig" 310source "drivers/gpu/drm/loongson/Kconfig" 311source "drivers/gpu/drm/mcde/Kconfig" 312source "drivers/gpu/drm/mediatek/Kconfig" 313source "drivers/gpu/drm/meson/Kconfig" 314source "drivers/gpu/drm/mgag200/Kconfig" 315source "drivers/gpu/drm/msm/Kconfig" 316source "drivers/gpu/drm/mxsfb/Kconfig" 317source "drivers/gpu/drm/nouveau/Kconfig" 318source "drivers/gpu/drm/nova/Kconfig" 319source "drivers/gpu/drm/omapdrm/Kconfig" 320source "drivers/gpu/drm/panel/Kconfig" 321source "drivers/gpu/drm/panfrost/Kconfig" 322source "drivers/gpu/drm/panthor/Kconfig" 323source "drivers/gpu/drm/pl111/Kconfig" 324source "drivers/gpu/drm/qxl/Kconfig" 325source "drivers/gpu/drm/radeon/Kconfig" 326source "drivers/gpu/drm/renesas/Kconfig" 327source "drivers/gpu/drm/rockchip/Kconfig" 328source "drivers/gpu/drm/sitronix/Kconfig" 329source "drivers/gpu/drm/solomon/Kconfig" 330source "drivers/gpu/drm/sprd/Kconfig" 331source "drivers/gpu/drm/sti/Kconfig" 332source "drivers/gpu/drm/stm/Kconfig" 333source "drivers/gpu/drm/sun4i/Kconfig" 334source "drivers/gpu/drm/sysfb/Kconfig" 335source "drivers/gpu/drm/tegra/Kconfig" 336source "drivers/gpu/drm/tidss/Kconfig" 337source "drivers/gpu/drm/tilcdc/Kconfig" 338source "drivers/gpu/drm/tiny/Kconfig" 339source "drivers/gpu/drm/tve200/Kconfig" 340source "drivers/gpu/drm/tyr/Kconfig" 341source "drivers/gpu/drm/udl/Kconfig" 342source "drivers/gpu/drm/v3d/Kconfig" 343source "drivers/gpu/drm/vboxvideo/Kconfig" 344source "drivers/gpu/drm/vc4/Kconfig" 345source "drivers/gpu/drm/verisilicon/Kconfig" 346source "drivers/gpu/drm/vgem/Kconfig" 347source "drivers/gpu/drm/virtio/Kconfig" 348source "drivers/gpu/drm/vkms/Kconfig" 349source "drivers/gpu/drm/vmwgfx/Kconfig" 350source "drivers/gpu/drm/xe/Kconfig" 351source "drivers/gpu/drm/xen/Kconfig" 352source "drivers/gpu/drm/xlnx/Kconfig" 353 354endif 355 356# Separate option because drm_panel_orientation_quirks.c is shared with fbdev 357config DRM_PANEL_ORIENTATION_QUIRKS 358 tristate 359