| # 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 DRM | |
| tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)" | |
| depends on (AGP || AGP=n) && !EMULATED_CMPXCHG && HAS_DMA | |
| select DRM_NOMODESET | |
| select DRM_PANEL_ORIENTATION_QUIRKS | |
| select HDMI | |
| select FB_CMDLINE | |
| select I2C | |
| select I2C_ALGOBIT | |
| select DMA_SHARED_BUFFER | |
| select SYNC_FILE | |
| # gallium uses SYS_kcmp for os_same_file_description() to de-duplicate | |
| # device and dmabuf fd. Let's make sure that is available for our userspace. | |
| select KCMP | |
| 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 AGP | |
| (/dev/agpgart) support if it is available for your platform. | |
| config DRM_MIPI_DBI | |
| tristate | |
| depends on DRM | |
| config DRM_MIPI_DSI | |
| bool | |
| depends on DRM | |
| config DRM_DEBUG_MM | |
| bool "Insert extra checks and debug info into the DRM range managers" | |
| default n | |
| depends on DRM=y | |
| depends on STACKTRACE_SUPPORT | |
| select STACKDEPOT | |
| help | |
| Enable allocation tracking of memory manager and leak detection on | |
| shutdown. | |
| Recommended for driver developers only. | |
| If in doubt, say "N". | |
| config DRM_DEBUG_SELFTEST | |
| tristate "kselftests for DRM" | |
| depends on DRM | |
| depends on DEBUG_KERNEL | |
| select PRIME_NUMBERS | |
| select DRM_DISPLAY_DP_HELPER | |
| select DRM_DISPLAY_HELPER | |
| select DRM_LIB_RANDOM | |
| select DRM_KMS_HELPER | |
| select DRM_BUDDY | |
| select DRM_EXPORT_FOR_TESTS if m | |
| default n | |
| help | |
| This option provides kernel modules that can be used to run | |
| various selftests on parts of the DRM api. This option is not | |
| useful for distributions or general kernels, but only for kernel | |
| developers working on DRM and associated drivers. | |
| If in doubt, say "N". | |
| config DRM_KUNIT_TEST | |
| tristate "KUnit tests for DRM" if !KUNIT_ALL_TESTS | |
| depends on DRM && KUNIT=y | |
| select DRM_KMS_HELPER | |
| default KUNIT_ALL_TESTS | |
| help | |
| This builds unit tests for DRM. This option is not useful for | |
| distributions or general kernels, but only for kernel | |
| developers working on DRM and associated drivers. | |
| For more information on KUnit and unit tests in general, | |
| please refer to the KUnit documentation in | |
| Documentation/dev-tools/kunit/. | |
| If in doubt, say "N". | |
| config DRM_KMS_HELPER | |
| tristate | |
| depends on DRM | |
| help | |
| CRTC helpers for KMS drivers. | |
| config DRM_DEBUG_DP_MST_TOPOLOGY_REFS | |
| bool "Enable refcount backtrace history in the DP MST helpers" | |
| depends on STACKTRACE_SUPPORT | |
| select STACKDEPOT | |
| depends on DRM_KMS_HELPER | |
| depends on DEBUG_KERNEL | |
| depends on EXPERT | |
| help | |
| Enables debug tracing for topology refs in DRM's DP MST helpers. A | |
| history of each topology reference/dereference will be printed to the | |
| kernel log once a port or branch device's topology refcount reaches 0. | |
| This has the potential to use a lot of memory and print some very | |
| large kernel messages. If in doubt, say "N". | |
| config DRM_DEBUG_MODESET_LOCK | |
| bool "Enable backtrace history for lock contention" | |
| depends on STACKTRACE_SUPPORT | |
| depends on DEBUG_KERNEL | |
| depends on EXPERT | |
| select STACKDEPOT | |
| default y if DEBUG_WW_MUTEX_SLOWPATH | |
| help | |
| Enable debug tracing of failures to gracefully handle drm modeset lock | |
| contention. A history of each drm modeset lock path hitting -EDEADLK | |
| will be saved until gracefully handled, and the backtrace will be | |
| printed when attempting to lock a contended lock. | |
| If in doubt, say "N". | |
| config DRM_FBDEV_EMULATION | |
| bool "Enable legacy fbdev support for your modesetting driver" | |
| depends on DRM_KMS_HELPER | |
| depends on FB=y || FB=DRM_KMS_HELPER | |
| select FB_CFB_FILLRECT | |
| select FB_CFB_COPYAREA | |
| select FB_CFB_IMAGEBLIT | |
| select FB_DEFERRED_IO | |
| select FB_SYS_FOPS | |
| select FB_SYS_FILLRECT | |
| select FB_SYS_COPYAREA | |
| select FB_SYS_IMAGEBLIT | |
| select FRAMEBUFFER_CONSOLE if !EXPERT | |
| select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE | |
| 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 DRM_FBDEV_OVERALLOC | |
| int "Overallocation of the fbdev buffer" | |
| depends on DRM_FBDEV_EMULATION | |
| 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 DRM_FBDEV_LEAK_PHYS_SMEM | |
| bool "Shamelessly allow leaking of fbdev physical address (DANGEROUS)" | |
| depends on DRM_FBDEV_EMULATION && EXPERT | |
| 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 ARM 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 DRM_LOAD_EDID_FIRMWARE | |
| bool "Allow to specify an EDID data set instead of probing for it" | |
| depends on DRM | |
| 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/admin-guide/edid.rst. | |
| source "drivers/gpu/drm/display/Kconfig" | |
| config DRM_TTM | |
| tristate | |
| depends on DRM && MMU | |
| help | |
| GPU memory management subsystem for devices with multiple | |
| GPU memory types. Will be enabled automatically if a device driver | |
| uses it. | |
| config DRM_BUDDY | |
| tristate | |
| depends on DRM | |
| help | |
| A page based buddy allocator | |
| config DRM_VRAM_HELPER | |
| tristate | |
| depends on DRM | |
| help | |
| Helpers for VRAM memory management | |
| config DRM_TTM_HELPER | |
| tristate | |
| depends on DRM | |
| select DRM_TTM | |
| help | |
| Helpers for ttm-based gem objects | |
| config DRM_GEM_CMA_HELPER | |
| tristate | |
| depends on DRM | |
| help | |
| Choose this if you need the GEM CMA helper functions | |
| config DRM_GEM_SHMEM_HELPER | |
| tristate | |
| depends on DRM && MMU | |
| help | |
| Choose this if you need the GEM shmem helper functions | |
| config DRM_SCHED | |
| tristate | |
| depends on DRM | |
| source "drivers/gpu/drm/i2c/Kconfig" | |
| source "drivers/gpu/drm/arm/Kconfig" | |
| config DRM_RADEON | |
| tristate "ATI Radeon" | |
| depends on DRM && PCI && MMU | |
| depends on AGP || !AGP | |
| select FW_LOADER | |
| select DRM_DISPLAY_DP_HELPER | |
| select DRM_DISPLAY_HELPER | |
| select DRM_KMS_HELPER | |
| select DRM_TTM | |
| select DRM_TTM_HELPER | |
| select POWER_SUPPLY | |
| select HWMON | |
| select BACKLIGHT_CLASS_DEVICE | |
| select INTERVAL_TREE | |
| help | |
| Choose this option if you have an ATI Radeon graphics card. There | |
| are both PCI and AGP versions. You don't need to choose this to | |
| run the Radeon in plain VGA mode. | |
| If M is selected, the module will be called radeon. | |
| source "drivers/gpu/drm/radeon/Kconfig" | |
| config DRM_AMDGPU | |
| tristate "AMD GPU" | |
| depends on DRM && PCI && MMU | |
| select FW_LOADER | |
| select DRM_DISPLAY_DP_HELPER | |
| select DRM_DISPLAY_HDMI_HELPER | |
| select DRM_DISPLAY_HELPER | |
| select DRM_KMS_HELPER | |
| select DRM_SCHED | |
| select DRM_TTM | |
| select DRM_TTM_HELPER | |
| select POWER_SUPPLY | |
| select HWMON | |
| select BACKLIGHT_CLASS_DEVICE | |
| select INTERVAL_TREE | |
| select DRM_BUDDY | |
| help | |
| Choose this option if you have a recent AMD Radeon graphics card. | |
| If M 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" | |
| source "drivers/gpu/drm/kmb/Kconfig" | |
| config DRM_VGEM | |
| tristate "Virtual GEM provider" | |
| depends on DRM && MMU | |
| select DRM_GEM_SHMEM_HELPER | |
| help | |
| Choose this option to get a virtual graphics memory manager, | |
| as used by Mesa's software renderer for enhanced performance. | |
| If M is selected the module will be called vgem. | |
| config DRM_VKMS | |
| tristate "Virtual KMS (EXPERIMENTAL)" | |
| depends on DRM && MMU | |
| select DRM_KMS_HELPER | |
| select DRM_GEM_SHMEM_HELPER | |
| select CRC32 | |
| 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 M is selected the module will be called vkms. | |
| 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/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/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/hisilicon/Kconfig" | |
| source "drivers/gpu/drm/logicvc/Kconfig" | |
| source "drivers/gpu/drm/mediatek/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" | |
| source "drivers/gpu/drm/tidss/Kconfig" | |
| source "drivers/gpu/drm/xlnx/Kconfig" | |
| source "drivers/gpu/drm/gud/Kconfig" | |
| source "drivers/gpu/drm/solomon/Kconfig" | |
| source "drivers/gpu/drm/sprd/Kconfig" | |
| config DRM_HYPERV | |
| tristate "DRM Support for Hyper-V synthetic video device" | |
| depends on DRM && PCI && MMU && HYPERV | |
| select DRM_KMS_HELPER | |
| select DRM_GEM_SHMEM_HELPER | |
| help | |
| This is a KMS driver for Hyper-V synthetic video device. Choose this | |
| option if you would like to enable drm driver for Hyper-V virtual | |
| machine. Unselect Hyper-V framebuffer driver (CONFIG_FB_HYPERV) so | |
| that DRM driver is used by default. | |
| If M is selected the module will be called hyperv_drm. | |
| # Keep legacy drivers last | |
| menuconfig DRM_LEGACY | |
| bool "Enable legacy drivers (DANGEROUS)" | |
| depends on DRM && MMU | |
| 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 DRM_LEGACY | |
| config DRM_TDFX | |
| tristate "3dfx Banshee/Voodoo3+" | |
| depends on DRM && PCI | |
| help | |
| Choose this option if you have a 3dfx Banshee or Voodoo3 (or later), | |
| graphics card. If M is selected, the module will be called tdfx. | |
| config DRM_R128 | |
| tristate "ATI Rage 128" | |
| depends on DRM && PCI | |
| select FW_LOADER | |
| help | |
| Choose this option if you have an ATI Rage 128 graphics card. If M | |
| is selected, the module will be called r128. AGP support for | |
| this card is strongly suggested (unless you have a PCI version). | |
| config DRM_I810 | |
| tristate "Intel I810" | |
| # !PREEMPTION because of missing ioctl locking | |
| depends on DRM && AGP && AGP_INTEL && (!PREEMPTION || BROKEN) | |
| help | |
| Choose this option if you have an Intel I810 graphics card. If M is | |
| selected, the module will be called i810. AGP support is required | |
| for this driver to work. | |
| config DRM_MGA | |
| tristate "Matrox g200/g400" | |
| depends on DRM && PCI | |
| select FW_LOADER | |
| help | |
| Choose this option if you have a Matrox G200, G400 or G450 graphics | |
| card. If M is selected, the module will be called mga. AGP | |
| support is required for this driver to work. | |
| config DRM_SIS | |
| tristate "SiS video cards" | |
| depends on DRM && AGP | |
| depends on FB_SIS || FB_SIS=n | |
| help | |
| Choose this option if you have a SiS 630 or compatible video | |
| chipset. If M is selected the module will be called sis. AGP | |
| support is required for this driver to work. | |
| config DRM_VIA | |
| tristate "Via unichrome video cards" | |
| depends on DRM && PCI | |
| help | |
| Choose this option if you have a Via unichrome or compatible video | |
| chipset. If M is selected the module will be called via. | |
| config DRM_SAVAGE | |
| tristate "Savage video cards" | |
| depends on DRM && PCI | |
| help | |
| Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister | |
| chipset. If M is selected the module will be called savage. | |
| endif # DRM_LEGACY | |
| config DRM_EXPORT_FOR_TESTS | |
| bool | |
| # Separate option because drm_panel_orientation_quirks.c is shared with fbdev | |
| config DRM_PANEL_ORIENTATION_QUIRKS | |
| tristate | |
| # Separate option because nomodeset parameter is global and expected built-in | |
| config DRM_NOMODESET | |
| bool | |
| default n | |
| config DRM_LIB_RANDOM | |
| bool | |
| default n | |
| config DRM_PRIVACY_SCREEN | |
| bool | |
| default n |