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 FB_CMDLINE 14 select I2C 15 select I2C_ALGOBIT 16 select DMA_SHARED_BUFFER 17 select SYNC_FILE 18# gallium uses SYS_kcmp for os_same_file_description() to de-duplicate 19# device and dmabuf fd. Let's make sure that is available for our userspace. 20 select KCMP 21 help 22 Kernel-level support for the Direct Rendering Infrastructure (DRI) 23 introduced in XFree86 4.0. If you say Y here, you need to select 24 the module that's right for your graphics card from the list below. 25 These modules provide support for synchronization, security, and 26 DMA transfers. Please see <http://dri.sourceforge.net/> for more 27 details. You should also select and configure AGP 28 (/dev/agpgart) support if it is available for your platform. 29 30config DRM_MIPI_DBI 31 tristate 32 depends on DRM 33 34config DRM_MIPI_DSI 35 bool 36 depends on DRM 37 38config DRM_DP_AUX_CHARDEV 39 bool "DRM DP AUX Interface" 40 depends on DRM 41 help 42 Choose this option to enable a /dev/drm_dp_auxN node that allows to 43 read and write values to arbitrary DPCD registers on the DP aux 44 channel. 45 46config DRM_DEBUG_MM 47 bool "Insert extra checks and debug info into the DRM range managers" 48 default n 49 depends on DRM=y 50 depends on STACKTRACE_SUPPORT 51 select STACKDEPOT 52 help 53 Enable allocation tracking of memory manager and leak detection on 54 shutdown. 55 56 Recommended for driver developers only. 57 58 If in doubt, say "N". 59 60config DRM_DEBUG_SELFTEST 61 tristate "kselftests for DRM" 62 depends on DRM 63 depends on DEBUG_KERNEL 64 select PRIME_NUMBERS 65 select DRM_LIB_RANDOM 66 select DRM_KMS_HELPER 67 select DRM_EXPORT_FOR_TESTS if m 68 default n 69 help 70 This option provides kernel modules that can be used to run 71 various selftests on parts of the DRM api. This option is not 72 useful for distributions or general kernels, but only for kernel 73 developers working on DRM and associated drivers. 74 75 If in doubt, say "N". 76 77config DRM_KMS_HELPER 78 tristate 79 depends on DRM 80 help 81 CRTC helpers for KMS drivers. 82 83config DRM_DEBUG_DP_MST_TOPOLOGY_REFS 84 bool "Enable refcount backtrace history in the DP MST helpers" 85 depends on STACKTRACE_SUPPORT 86 select STACKDEPOT 87 depends on DRM_KMS_HELPER 88 depends on DEBUG_KERNEL 89 depends on EXPERT 90 help 91 Enables debug tracing for topology refs in DRM's DP MST helpers. A 92 history of each topology reference/dereference will be printed to the 93 kernel log once a port or branch device's topology refcount reaches 0. 94 95 This has the potential to use a lot of memory and print some very 96 large kernel messages. If in doubt, say "N". 97 98config DRM_FBDEV_EMULATION 99 bool "Enable legacy fbdev support for your modesetting driver" 100 depends on DRM 101 depends on FB 102 select DRM_KMS_HELPER 103 select FB_CFB_FILLRECT 104 select FB_CFB_COPYAREA 105 select FB_CFB_IMAGEBLIT 106 select FB_DEFERRED_IO 107 select FB_SYS_FOPS 108 select FB_SYS_FILLRECT 109 select FB_SYS_COPYAREA 110 select FB_SYS_IMAGEBLIT 111 select FRAMEBUFFER_CONSOLE if !EXPERT 112 select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE 113 default y 114 help 115 Choose this option if you have a need for the legacy fbdev 116 support. Note that this support also provides the linux console 117 support on top of your modesetting driver. 118 119 If in doubt, say "Y". 120 121config DRM_FBDEV_OVERALLOC 122 int "Overallocation of the fbdev buffer" 123 depends on DRM_FBDEV_EMULATION 124 default 100 125 help 126 Defines the fbdev buffer overallocation in percent. Default 127 is 100. Typical values for double buffering will be 200, 128 triple buffering 300. 129 130config DRM_FBDEV_LEAK_PHYS_SMEM 131 bool "Shamelessly allow leaking of fbdev physical address (DANGEROUS)" 132 depends on DRM_FBDEV_EMULATION && EXPERT 133 default n 134 help 135 In order to keep user-space compatibility, we want in certain 136 use-cases to keep leaking the fbdev physical address to the 137 user-space program handling the fbdev buffer. 138 This affects, not only, Amlogic, Allwinner or Rockchip devices 139 with ARM Mali GPUs using an userspace Blob. 140 This option is not supported by upstream developers and should be 141 removed as soon as possible and be considered as a broken and 142 legacy behaviour from a modern fbdev device driver. 143 144 Please send any bug reports when using this to your proprietary 145 software vendor that requires this. 146 147 If in doubt, say "N" or spread the word to your closed source 148 library vendor. 149 150config DRM_LOAD_EDID_FIRMWARE 151 bool "Allow to specify an EDID data set instead of probing for it" 152 depends on DRM 153 help 154 Say Y here, if you want to use EDID data to be loaded from the 155 /lib/firmware directory or one of the provided built-in 156 data sets. This may be necessary, if the graphics adapter or 157 monitor are unable to provide appropriate EDID data. Since this 158 feature is provided as a workaround for broken hardware, the 159 default case is N. Details and instructions how to build your own 160 EDID data are given in Documentation/admin-guide/edid.rst. 161 162config DRM_DP_CEC 163 bool "Enable DisplayPort CEC-Tunneling-over-AUX HDMI support" 164 depends on DRM 165 select CEC_CORE 166 help 167 Choose this option if you want to enable HDMI CEC support for 168 DisplayPort/USB-C to HDMI adapters. 169 170 Note: not all adapters support this feature, and even for those 171 that do support this they often do not hook up the CEC pin. 172 173config DRM_TTM 174 tristate 175 depends on DRM && MMU 176 help 177 GPU memory management subsystem for devices with multiple 178 GPU memory types. Will be enabled automatically if a device driver 179 uses it. 180 181config DRM_VRAM_HELPER 182 tristate 183 depends on DRM 184 help 185 Helpers for VRAM memory management 186 187config DRM_TTM_HELPER 188 tristate 189 depends on DRM 190 select DRM_TTM 191 help 192 Helpers for ttm-based gem objects 193 194config DRM_GEM_CMA_HELPER 195 bool 196 depends on DRM 197 help 198 Choose this if you need the GEM CMA helper functions 199 200config DRM_KMS_CMA_HELPER 201 bool 202 depends on DRM 203 select DRM_GEM_CMA_HELPER 204 help 205 Choose this if you need the KMS CMA helper functions 206 207config DRM_GEM_SHMEM_HELPER 208 bool 209 depends on DRM 210 help 211 Choose this if you need the GEM shmem helper functions 212 213config DRM_SCHED 214 tristate 215 depends on DRM 216 217source "drivers/gpu/drm/i2c/Kconfig" 218 219source "drivers/gpu/drm/arm/Kconfig" 220 221config DRM_RADEON 222 tristate "ATI Radeon" 223 depends on DRM && PCI && MMU 224 depends on AGP || !AGP 225 select FW_LOADER 226 select DRM_KMS_HELPER 227 select DRM_TTM 228 select DRM_TTM_HELPER 229 select POWER_SUPPLY 230 select HWMON 231 select BACKLIGHT_CLASS_DEVICE 232 select INTERVAL_TREE 233 help 234 Choose this option if you have an ATI Radeon graphics card. There 235 are both PCI and AGP versions. You don't need to choose this to 236 run the Radeon in plain VGA mode. 237 238 If M is selected, the module will be called radeon. 239 240source "drivers/gpu/drm/radeon/Kconfig" 241 242config DRM_AMDGPU 243 tristate "AMD GPU" 244 depends on DRM && PCI && MMU 245 select FW_LOADER 246 select DRM_KMS_HELPER 247 select DRM_SCHED 248 select DRM_TTM 249 select DRM_TTM_HELPER 250 select POWER_SUPPLY 251 select HWMON 252 select BACKLIGHT_CLASS_DEVICE 253 select INTERVAL_TREE 254 select CHASH 255 help 256 Choose this option if you have a recent AMD Radeon graphics card. 257 258 If M is selected, the module will be called amdgpu. 259 260source "drivers/gpu/drm/amd/amdgpu/Kconfig" 261 262source "drivers/gpu/drm/nouveau/Kconfig" 263 264source "drivers/gpu/drm/i915/Kconfig" 265 266source "drivers/gpu/drm/kmb/Kconfig" 267 268config DRM_VGEM 269 tristate "Virtual GEM provider" 270 depends on DRM 271 help 272 Choose this option to get a virtual graphics memory manager, 273 as used by Mesa's software renderer for enhanced performance. 274 If M is selected the module will be called vgem. 275 276config DRM_VKMS 277 tristate "Virtual KMS (EXPERIMENTAL)" 278 depends on DRM 279 select DRM_KMS_HELPER 280 select DRM_GEM_SHMEM_HELPER 281 select CRC32 282 default n 283 help 284 Virtual Kernel Mode-Setting (VKMS) is used for testing or for 285 running GPU in a headless machines. Choose this option to get 286 a VKMS. 287 288 If M is selected the module will be called vkms. 289 290source "drivers/gpu/drm/exynos/Kconfig" 291 292source "drivers/gpu/drm/rockchip/Kconfig" 293 294source "drivers/gpu/drm/vmwgfx/Kconfig" 295 296source "drivers/gpu/drm/gma500/Kconfig" 297 298source "drivers/gpu/drm/udl/Kconfig" 299 300source "drivers/gpu/drm/ast/Kconfig" 301 302source "drivers/gpu/drm/mgag200/Kconfig" 303 304source "drivers/gpu/drm/armada/Kconfig" 305 306source "drivers/gpu/drm/atmel-hlcdc/Kconfig" 307 308source "drivers/gpu/drm/rcar-du/Kconfig" 309 310source "drivers/gpu/drm/shmobile/Kconfig" 311 312source "drivers/gpu/drm/sun4i/Kconfig" 313 314source "drivers/gpu/drm/omapdrm/Kconfig" 315 316source "drivers/gpu/drm/tilcdc/Kconfig" 317 318source "drivers/gpu/drm/qxl/Kconfig" 319 320source "drivers/gpu/drm/bochs/Kconfig" 321 322source "drivers/gpu/drm/virtio/Kconfig" 323 324source "drivers/gpu/drm/msm/Kconfig" 325 326source "drivers/gpu/drm/fsl-dcu/Kconfig" 327 328source "drivers/gpu/drm/tegra/Kconfig" 329 330source "drivers/gpu/drm/stm/Kconfig" 331 332source "drivers/gpu/drm/panel/Kconfig" 333 334source "drivers/gpu/drm/bridge/Kconfig" 335 336source "drivers/gpu/drm/sti/Kconfig" 337 338source "drivers/gpu/drm/imx/Kconfig" 339 340source "drivers/gpu/drm/ingenic/Kconfig" 341 342source "drivers/gpu/drm/v3d/Kconfig" 343 344source "drivers/gpu/drm/vc4/Kconfig" 345 346source "drivers/gpu/drm/etnaviv/Kconfig" 347 348source "drivers/gpu/drm/hisilicon/Kconfig" 349 350source "drivers/gpu/drm/mediatek/Kconfig" 351 352source "drivers/gpu/drm/zte/Kconfig" 353 354source "drivers/gpu/drm/mxsfb/Kconfig" 355 356source "drivers/gpu/drm/meson/Kconfig" 357 358source "drivers/gpu/drm/tiny/Kconfig" 359 360source "drivers/gpu/drm/pl111/Kconfig" 361 362source "drivers/gpu/drm/tve200/Kconfig" 363 364source "drivers/gpu/drm/xen/Kconfig" 365 366source "drivers/gpu/drm/vboxvideo/Kconfig" 367 368source "drivers/gpu/drm/lima/Kconfig" 369 370source "drivers/gpu/drm/panfrost/Kconfig" 371 372source "drivers/gpu/drm/aspeed/Kconfig" 373 374source "drivers/gpu/drm/mcde/Kconfig" 375 376source "drivers/gpu/drm/tidss/Kconfig" 377 378source "drivers/gpu/drm/xlnx/Kconfig" 379 380source "drivers/gpu/drm/gud/Kconfig" 381 382config DRM_HYPERV 383 tristate "DRM Support for Hyper-V synthetic video device" 384 depends on DRM && PCI && MMU && HYPERV 385 select DRM_KMS_HELPER 386 select DRM_GEM_SHMEM_HELPER 387 help 388 This is a KMS driver for Hyper-V synthetic video device. Choose this 389 option if you would like to enable drm driver for Hyper-V virtual 390 machine. Unselect Hyper-V framebuffer driver (CONFIG_FB_HYPERV) so 391 that DRM driver is used by default. 392 393 If M is selected the module will be called hyperv_drm. 394 395# Keep legacy drivers last 396 397menuconfig DRM_LEGACY 398 bool "Enable legacy drivers (DANGEROUS)" 399 depends on DRM && MMU 400 help 401 Enable legacy DRI1 drivers. Those drivers expose unsafe and dangerous 402 APIs to user-space, which can be used to circumvent access 403 restrictions and other security measures. For backwards compatibility 404 those drivers are still available, but their use is highly 405 inadvisable and might harm your system. 406 407 You are recommended to use the safe modeset-only drivers instead, and 408 perform 3D emulation in user-space. 409 410 Unless you have strong reasons to go rogue, say "N". 411 412if DRM_LEGACY 413 414config DRM_TDFX 415 tristate "3dfx Banshee/Voodoo3+" 416 depends on DRM && PCI 417 help 418 Choose this option if you have a 3dfx Banshee or Voodoo3 (or later), 419 graphics card. If M is selected, the module will be called tdfx. 420 421config DRM_R128 422 tristate "ATI Rage 128" 423 depends on DRM && PCI 424 select FW_LOADER 425 help 426 Choose this option if you have an ATI Rage 128 graphics card. If M 427 is selected, the module will be called r128. AGP support for 428 this card is strongly suggested (unless you have a PCI version). 429 430config DRM_I810 431 tristate "Intel I810" 432 # !PREEMPTION because of missing ioctl locking 433 depends on DRM && AGP && AGP_INTEL && (!PREEMPTION || BROKEN) 434 help 435 Choose this option if you have an Intel I810 graphics card. If M is 436 selected, the module will be called i810. AGP support is required 437 for this driver to work. 438 439config DRM_MGA 440 tristate "Matrox g200/g400" 441 depends on DRM && PCI 442 select FW_LOADER 443 help 444 Choose this option if you have a Matrox G200, G400 or G450 graphics 445 card. If M is selected, the module will be called mga. AGP 446 support is required for this driver to work. 447 448config DRM_SIS 449 tristate "SiS video cards" 450 depends on DRM && AGP 451 depends on FB_SIS || FB_SIS=n 452 help 453 Choose this option if you have a SiS 630 or compatible video 454 chipset. If M is selected the module will be called sis. AGP 455 support is required for this driver to work. 456 457config DRM_VIA 458 tristate "Via unichrome video cards" 459 depends on DRM && PCI 460 help 461 Choose this option if you have a Via unichrome or compatible video 462 chipset. If M is selected the module will be called via. 463 464config DRM_SAVAGE 465 tristate "Savage video cards" 466 depends on DRM && PCI 467 help 468 Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister 469 chipset. If M is selected the module will be called savage. 470 471endif # DRM_LEGACY 472 473config DRM_EXPORT_FOR_TESTS 474 bool 475 476# Separate option because drm_panel_orientation_quirks.c is shared with fbdev 477config DRM_PANEL_ORIENTATION_QUIRKS 478 tristate 479 480config DRM_LIB_RANDOM 481 bool 482 default n 483