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