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