# SPDX-License-Identifier: GPL-2.0-only
#
# Drm device configuration
#
# This driver provides support for the
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
#
menuconfig [31mCONFIG_DRM[0m
tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
depends on ([31mCONFIG_AGP[0m || [31mCONFIG_AGP[0m=n) && ![31mCONFIG_EMULATED_CMPXCHG[0m && [31mCONFIG_HAS_DMA[0m
select [31mCONFIG_DRM_PANEL_ORIENTATION_QUIRKS[0m
select [31mCONFIG_HDMI[0m
select [31mCONFIG_FB_CMDLINE[0m
select [31mCONFIG_I2C[0m
select [31mCONFIG_I2C_ALGOBIT[0m
select [31mCONFIG_DMA_SHARED_BUFFER[0m
select [31mCONFIG_SYNC_FILE[0m
help
Kernel-level support for the Direct Rendering Infrastructure (DRI)
introduced in XFree86 4.0. If you say Y here, you need to select
the module that's right for your graphics card from the list below.
These modules provide support for synchronization, security, and
DMA transfers. Please see <http://dri.sourceforge.net/> for more
details. You should also select and configure [31mCONFIG_AGP[0m
(/dev/agpgart) support if it is available for your platform.
config [31mCONFIG_DRM_MIPI_DBI[0m
tristate
depends on [31mCONFIG_DRM[0m
config [31mCONFIG_DRM_MIPI_DSI[0m
bool
depends on [31mCONFIG_DRM[0m
config [31mCONFIG_DRM_DP_AUX_CHARDEV[0m
bool "DRM DP AUX Interface"
depends on [31mCONFIG_DRM[0m
help
Choose this option to enable a /dev/drm_dp_auxN node that allows to
read and write values to arbitrary DPCD registers on the DP aux
channel.
config [31mCONFIG_DRM_DEBUG_MM[0m
bool "Insert extra checks and debug info into the DRM range managers"
default n
depends on [31mCONFIG_DRM[0m=y
depends on [31mCONFIG_STACKTRACE_SUPPORT[0m
select [31mCONFIG_STACKDEPOT[0m
help
Enable allocation tracking of memory manager and leak detection on
shutdown.
Recommended for driver developers only.
If in doubt, say "N".
config [31mCONFIG_DRM_DEBUG_SELFTEST[0m
tristate "kselftests for DRM"
depends on [31mCONFIG_DRM[0m
depends on [31mCONFIG_DEBUG_KERNEL[0m
select [31mCONFIG_PRIME_NUMBERS[0m
select [31mCONFIG_DRM_LIB_RANDOM[0m
select [31mCONFIG_DRM_KMS_HELPER[0m
default n
help
This option provides kernel modules that can be used to run
various selftests on parts of the [31mCONFIG_DRM[0m api. This option is not
useful for distributions or general kernels, but only for kernel
developers working on [31mCONFIG_DRM[0m and associated drivers.
If in doubt, say "N".
config [31mCONFIG_DRM_KMS_HELPER[0m
tristate
depends on [31mCONFIG_DRM[0m
help
CRTC helpers for KMS drivers.
config [31mCONFIG_DRM_KMS_FB_HELPER[0m
bool
depends on [31mCONFIG_DRM_KMS_HELPER[0m
select [31mCONFIG_FB[0m
select [31mCONFIG_FRAMEBUFFER_CONSOLE[0m if ![31mCONFIG_EXPERT[0m
select [31mCONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY[0m if [31mCONFIG_FRAMEBUFFER_CONSOLE[0m
select [31mCONFIG_FB_SYS_FOPS[0m
select [31mCONFIG_FB_SYS_FILLRECT[0m
select [31mCONFIG_FB_SYS_COPYAREA[0m
select [31mCONFIG_FB_SYS_IMAGEBLIT[0m
select [31mCONFIG_FB_CFB_FILLRECT[0m
select [31mCONFIG_FB_CFB_COPYAREA[0m
select [31mCONFIG_FB_CFB_IMAGEBLIT[0m
select [31mCONFIG_FB_DEFERRED_IO[0m
help
FBDEV helpers for KMS drivers.
config [31mCONFIG_DRM_FBDEV_EMULATION[0m
bool "Enable legacy fbdev support for your modesetting driver"
depends on [31mCONFIG_DRM[0m
select [31mCONFIG_DRM_KMS_HELPER[0m
select [31mCONFIG_DRM_KMS_FB_HELPER[0m
default y
help
Choose this option if you have a need for the legacy fbdev
support. Note that this support also provides the linux console
support on top of your modesetting driver.
If in doubt, say "Y".
config [31mCONFIG_DRM_FBDEV_OVERALLOC[0m
int "Overallocation of the fbdev buffer"
depends on [31mCONFIG_DRM_FBDEV_EMULATION[0m
default 100
help
Defines the fbdev buffer overallocation in percent. Default
is 100. Typical values for double buffering will be 200,
triple buffering 300.
config [31mCONFIG_DRM_FBDEV_LEAK_PHYS_SMEM[0m
bool "Shamelessly allow leaking of fbdev physical address (DANGEROUS)"
depends on [31mCONFIG_DRM_FBDEV_EMULATION[0m && [31mCONFIG_EXPERT[0m
default n
help
In order to keep user-space compatibility, we want in certain
use-cases to keep leaking the fbdev physical address to the
user-space program handling the fbdev buffer.
This affects, not only, Amlogic, Allwinner or Rockchip devices
with [31mCONFIG_ARM[0m Mali GPUs using an userspace Blob.
This option is not supported by upstream developers and should be
removed as soon as possible and be considered as a broken and
legacy behaviour from a modern fbdev device driver.
Please send any bug reports when using this to your proprietary
software vendor that requires this.
If in doubt, say "N" or spread the word to your closed source
library vendor.
config [31mCONFIG_DRM_LOAD_EDID_FIRMWARE[0m
bool "Allow to specify an EDID data set instead of probing for it"
depends on [31mCONFIG_DRM[0m
help
Say Y here, if you want to use EDID data to be loaded from the
/lib/firmware directory or one of the provided built-in
data sets. This may be necessary, if the graphics adapter or
monitor are unable to provide appropriate EDID data. Since this
feature is provided as a workaround for broken hardware, the
default case is N. Details and instructions how to build your own
EDID data are given in Documentation/driver-api/edid.rst.
config [31mCONFIG_DRM_DP_CEC[0m
bool "Enable DisplayPort CEC-Tunneling-over-AUX HDMI support"
select [31mCONFIG_CEC_CORE[0m
help
Choose this option if you want to enable [31mCONFIG_HDMI[0m CEC support for
DisplayPort/[31mCONFIG_USB[0m-[31mCONFIG_C[0m to [31mCONFIG_HDMI[0m adapters.
Note: not all adapters support this feature, and even for those
that do support this they often do not hook up the CEC pin.
config [31mCONFIG_DRM_TTM[0m
tristate
depends on [31mCONFIG_DRM[0m && [31mCONFIG_MMU[0m
help
GPU memory management subsystem for devices with multiple
GPU memory types. Will be enabled automatically if a device driver
uses it.
config [31mCONFIG_DRM_VRAM_HELPER[0m
tristate
depends on [31mCONFIG_DRM[0m
select [31mCONFIG_DRM_TTM[0m
help
Helpers for VRAM memory management
config [31mCONFIG_DRM_GEM_CMA_HELPER[0m
bool
depends on [31mCONFIG_DRM[0m
help
Choose this if you need the GEM [31mCONFIG_CMA[0m helper functions
config [31mCONFIG_DRM_KMS_CMA_HELPER[0m
bool
depends on [31mCONFIG_DRM[0m
select [31mCONFIG_DRM_GEM_CMA_HELPER[0m
help
Choose this if you need the KMS [31mCONFIG_CMA[0m helper functions
config [31mCONFIG_DRM_GEM_SHMEM_HELPER[0m
bool
depends on [31mCONFIG_DRM[0m
help
Choose this if you need the GEM shmem helper functions
config [31mCONFIG_DRM_VM[0m
bool
depends on [31mCONFIG_DRM[0m && [31mCONFIG_MMU[0m
config [31mCONFIG_DRM_SCHED[0m
tristate
depends on [31mCONFIG_DRM[0m
source "drivers/gpu/drm/i2c/Kconfig"
source "drivers/gpu/drm/arm/Kconfig"
config [31mCONFIG_DRM_RADEON[0m
tristate "ATI Radeon"
depends on [31mCONFIG_DRM[0m && [31mCONFIG_PCI[0m && [31mCONFIG_MMU[0m
select [31mCONFIG_FW_LOADER[0m
select [31mCONFIG_DRM_KMS_HELPER[0m
select [31mCONFIG_DRM_TTM[0m
select [31mCONFIG_POWER_SUPPLY[0m
select [31mCONFIG_HWMON[0m
select [31mCONFIG_BACKLIGHT_CLASS_DEVICE[0m
select [31mCONFIG_INTERVAL_TREE[0m
help
Choose this option if you have an ATI Radeon graphics card. There
are both [31mCONFIG_PCI[0m and [31mCONFIG_AGP[0m versions. You don't need to choose this to
run the Radeon in plain VGA mode.
If [31mCONFIG_M[0m is selected, the module will be called radeon.
source "drivers/gpu/drm/radeon/Kconfig"
config [31mCONFIG_DRM_AMDGPU[0m
tristate "AMD GPU"
depends on [31mCONFIG_DRM[0m && [31mCONFIG_PCI[0m && [31mCONFIG_MMU[0m
select [31mCONFIG_FW_LOADER[0m
select [31mCONFIG_DRM_KMS_HELPER[0m
select [31mCONFIG_DRM_SCHED[0m
select [31mCONFIG_DRM_TTM[0m
select [31mCONFIG_POWER_SUPPLY[0m
select [31mCONFIG_HWMON[0m
select [31mCONFIG_BACKLIGHT_CLASS_DEVICE[0m
select [31mCONFIG_INTERVAL_TREE[0m
select CHASH
help
Choose this option if you have a recent AMD Radeon graphics card.
If [31mCONFIG_M[0m is selected, the module will be called amdgpu.
source "drivers/gpu/drm/amd/amdgpu/Kconfig"
source "drivers/gpu/drm/nouveau/Kconfig"
source "drivers/gpu/drm/i915/Kconfig"
config [31mCONFIG_DRM_VGEM[0m
tristate "Virtual GEM provider"
depends on [31mCONFIG_DRM[0m
help
Choose this option to get a virtual graphics memory manager,
as used by Mesa's software renderer for enhanced performance.
If [31mCONFIG_M[0m is selected the module will be called vgem.
config [31mCONFIG_DRM_VKMS[0m
tristate "Virtual KMS (EXPERIMENTAL)"
depends on [31mCONFIG_DRM[0m
select [31mCONFIG_DRM_KMS_HELPER[0m
default n
help
Virtual Kernel Mode-Setting (VKMS) is used for testing or for
running GPU in a headless machines. Choose this option to get
a VKMS.
If [31mCONFIG_M[0m is selected the module will be called vkms.
config [31mCONFIG_DRM_ATI_PCIGART[0m
bool
source "drivers/gpu/drm/exynos/Kconfig"
source "drivers/gpu/drm/rockchip/Kconfig"
source "drivers/gpu/drm/vmwgfx/Kconfig"
source "drivers/gpu/drm/gma500/Kconfig"
source "drivers/gpu/drm/udl/Kconfig"
source "drivers/gpu/drm/ast/Kconfig"
source "drivers/gpu/drm/mgag200/Kconfig"
source "drivers/gpu/drm/cirrus/Kconfig"
source "drivers/gpu/drm/armada/Kconfig"
source "drivers/gpu/drm/atmel-hlcdc/Kconfig"
source "drivers/gpu/drm/rcar-du/Kconfig"
source "drivers/gpu/drm/shmobile/Kconfig"
source "drivers/gpu/drm/sun4i/Kconfig"
source "drivers/gpu/drm/omapdrm/Kconfig"
source "drivers/gpu/drm/tilcdc/Kconfig"
source "drivers/gpu/drm/qxl/Kconfig"
source "drivers/gpu/drm/bochs/Kconfig"
source "drivers/gpu/drm/virtio/Kconfig"
source "drivers/gpu/drm/msm/Kconfig"
source "drivers/gpu/drm/fsl-dcu/Kconfig"
source "drivers/gpu/drm/tegra/Kconfig"
source "drivers/gpu/drm/stm/Kconfig"
source "drivers/gpu/drm/panel/Kconfig"
source "drivers/gpu/drm/bridge/Kconfig"
source "drivers/gpu/drm/sti/Kconfig"
source "drivers/gpu/drm/imx/Kconfig"
source "drivers/gpu/drm/ingenic/Kconfig"
source "drivers/gpu/drm/v3d/Kconfig"
source "drivers/gpu/drm/vc4/Kconfig"
source "drivers/gpu/drm/etnaviv/Kconfig"
source "drivers/gpu/drm/arc/Kconfig"
source "drivers/gpu/drm/hisilicon/Kconfig"
source "drivers/gpu/drm/mediatek/Kconfig"
source "drivers/gpu/drm/zte/Kconfig"
source "drivers/gpu/drm/mxsfb/Kconfig"
source "drivers/gpu/drm/meson/Kconfig"
source "drivers/gpu/drm/tiny/Kconfig"
source "drivers/gpu/drm/pl111/Kconfig"
source "drivers/gpu/drm/tve200/Kconfig"
source "drivers/gpu/drm/xen/Kconfig"
source "drivers/gpu/drm/vboxvideo/Kconfig"
source "drivers/gpu/drm/lima/Kconfig"
source "drivers/gpu/drm/panfrost/Kconfig"
source "drivers/gpu/drm/aspeed/Kconfig"
source "drivers/gpu/drm/mcde/Kconfig"
# Keep legacy drivers last
menuconfig [31mCONFIG_DRM_LEGACY[0m
bool "Enable legacy drivers (DANGEROUS)"
depends on [31mCONFIG_DRM[0m && [31mCONFIG_MMU[0m
select [31mCONFIG_DRM_VM[0m
select [31mCONFIG_DRM_ATI_PCIGART[0m if [31mCONFIG_PCI[0m
help
Enable legacy DRI1 drivers. Those drivers expose unsafe and dangerous
APIs to user-space, which can be used to circumvent access
restrictions and other security measures. For backwards compatibility
those drivers are still available, but their use is highly
inadvisable and might harm your system.
You are recommended to use the safe modeset-only drivers instead, and
perform 3D emulation in user-space.
Unless you have strong reasons to go rogue, say "N".
if [31mCONFIG_DRM_LEGACY[0m
config [31mCONFIG_DRM_TDFX[0m
tristate "3dfx Banshee/Voodoo3+"
depends on [31mCONFIG_DRM[0m && [31mCONFIG_PCI[0m
help
Choose this option if you have a 3dfx Banshee or Voodoo3 (or later),
graphics card. If [31mCONFIG_M[0m is selected, the module will be called tdfx.
config [31mCONFIG_DRM_R128[0m
tristate "ATI Rage 128"
depends on [31mCONFIG_DRM[0m && [31mCONFIG_PCI[0m
select [31mCONFIG_FW_LOADER[0m
help
Choose this option if you have an ATI Rage 128 graphics card. If [31mCONFIG_M[0m
is selected, the module will be called r128. [31mCONFIG_AGP[0m support for
this card is strongly suggested (unless you have a [31mCONFIG_PCI[0m version).
config [31mCONFIG_DRM_I810[0m
tristate "Intel I810"
# ![31mCONFIG_PREEMPT[0m because of missing ioctl locking
depends on [31mCONFIG_DRM[0m && [31mCONFIG_AGP[0m && [31mCONFIG_AGP_INTEL[0m && (![31mCONFIG_PREEMPTION[0m || [31mCONFIG_BROKEN[0m)
help
Choose this option if you have an Intel I810 graphics card. If [31mCONFIG_M[0m is
selected, the module will be called i810. [31mCONFIG_AGP[0m support is required
for this driver to work.
config [31mCONFIG_DRM_MGA[0m
tristate "Matrox g200/g400"
depends on [31mCONFIG_DRM[0m && [31mCONFIG_PCI[0m
select [31mCONFIG_FW_LOADER[0m
help
Choose this option if you have a Matrox G200, G400 or G450 graphics
card. If [31mCONFIG_M[0m is selected, the module will be called mga. [31mCONFIG_AGP[0m
support is required for this driver to work.
config [31mCONFIG_DRM_SIS[0m
tristate "SiS video cards"
depends on [31mCONFIG_DRM[0m && [31mCONFIG_AGP[0m
depends on [31mCONFIG_FB_SIS[0m || [31mCONFIG_FB_SIS[0m=n
help
Choose this option if you have a SiS 630 or compatible video
chipset. If [31mCONFIG_M[0m is selected the module will be called sis. [31mCONFIG_AGP[0m
support is required for this driver to work.
config [31mCONFIG_DRM_VIA[0m
tristate "Via unichrome video cards"
depends on [31mCONFIG_DRM[0m && [31mCONFIG_PCI[0m
help
Choose this option if you have a Via unichrome or compatible video
chipset. If [31mCONFIG_M[0m is selected the module will be called via.
config [31mCONFIG_DRM_SAVAGE[0m
tristate "Savage video cards"
depends on [31mCONFIG_DRM[0m && [31mCONFIG_PCI[0m
help
Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister
chipset. If [31mCONFIG_M[0m is selected the module will be called savage.
endif # [31mCONFIG_DRM_LEGACY[0m
# Separate option because drm_panel_orientation_quirks.c is shared with fbdev
config [31mCONFIG_DRM_PANEL_ORIENTATION_QUIRKS[0m
tristate
config [31mCONFIG_DRM_LIB_RANDOM[0m
bool
default n