# 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_PANEL_ORIENTATION_QUIRKS select HDMI select I2C 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 select VIDEO 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. menu "DRM debugging options" depends on DRM source "drivers/gpu/drm/Kconfig.debug" endmenu if DRM config DRM_MIPI_DBI tristate depends on DRM select DRM_KMS_HELPER config DRM_MIPI_DSI bool depends on DRM config DRM_KMS_HELPER tristate depends on DRM select FB_CORE if DRM_FBDEV_EMULATION help CRTC helpers for KMS drivers. config DRM_DRAW bool depends on DRM config DRM_PANIC bool "Display a user-friendly message when a kernel panic occurs" depends on DRM select FONT_SUPPORT select DRM_DRAW help Enable a drm panic handler, which will display a user-friendly message when a kernel panic occurs. It's useful when using a user-space console instead of fbcon. It will only work if your graphic driver supports this feature. To support Hi-DPI Display, you can enable bigger fonts like FONT_TER16x32 config DRM_PANIC_FOREGROUND_COLOR hex "Drm panic screen foreground color, in RGB" depends on DRM_PANIC default 0xffffff config DRM_PANIC_BACKGROUND_COLOR hex "Drm panic screen background color, in RGB" depends on DRM_PANIC default 0x000000 config DRM_PANIC_DEBUG bool "Add a debug fs entry to trigger drm_panic" depends on DRM_PANIC && DEBUG_FS help Add dri/[device]/drm_panic_plane_x in the kernel debugfs, to force the panic handler to write the panic message to this plane scanout buffer. This is unsafe and should not be enabled on a production build. If in doubt, say "N". config DRM_PANIC_SCREEN string "Panic screen formatter" default "user" depends on DRM_PANIC help This option enable to choose what will be displayed when a kernel panic occurs. You can choose between "user", a short message telling the user to reboot the system, or "kmsg" which will display the last lines of kmsg. This can also be overridden by drm.panic_screen=xxxx kernel parameter or by writing to /sys/module/drm/parameters/panic_screen sysfs entry Default is "user" config DRM_PANIC_SCREEN_QR_CODE bool "Add a panic screen with a QR code" depends on DRM_PANIC && RUST select ZLIB_DEFLATE help This option adds a QR code generator, and a panic screen with a QR code. The QR code will contain the last lines of kmsg and other debug information. This should be easier for the user to report a kernel panic, with all debug information available. To use this panic screen, also set DRM_PANIC_SCREEN to "qr_code" config DRM_PANIC_SCREEN_QR_CODE_URL string "Base URL of the QR code in the panic screen" depends on DRM_PANIC_SCREEN_QR_CODE help This option sets the base URL to report the kernel panic. If it's set the QR code will contain the URL and the kmsg compressed with zlib as a URL parameter. If it's empty, the QR code will contain the kmsg as uncompressed text only. There is a demo code in javascript, to decode and uncompress the kmsg data from the URL parameter at https://github.com/kdj0c/panic_report config DRM_PANIC_SCREEN_QR_VERSION int "Maximum version (size) of the QR code." depends on DRM_PANIC_SCREEN_QR_CODE default 40 help This option limits the version (or size) of the QR code. QR code version ranges from Version 1 (21x21) to Version 40 (177x177). Smaller QR code are easier to read, but will contain less debugging data. Default is 40. config DRM_DEBUG_DP_MST_TOPOLOGY_REFS bool "Enable refcount backtrace history in the DP MST helpers" depends on STACKTRACE_SUPPORT select STACKDEPOT select 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_CLIENT bool depends on DRM help Enables support for DRM clients. DRM drivers that need struct drm_client_dev and its interfaces should select this option. Drivers that support the default clients should select DRM_CLIENT_SELECTION instead. source "drivers/gpu/drm/clients/Kconfig" 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 select SHMEM help GPU memory management subsystem for devices with multiple GPU memory types. Will be enabled automatically if a device driver uses it. config DRM_EXEC tristate depends on DRM help Execution context for command submissions config DRM_GPUVM tristate depends on DRM select DRM_EXEC help GPU-VM representation providing helpers to manage a GPUs virtual address space config DRM_GPUSVM tristate depends on DRM && DEVICE_PRIVATE select HMM_MIRROR select MMU_NOTIFIER help GPU-SVM representation providing helpers to manage a GPUs shared virtual memory 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 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION select FB_CORE if DRM_FBDEV_EMULATION select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION help Helpers for ttm-based gem objects config DRM_GEM_DMA_HELPER tristate depends on DRM select DRM_KMS_HELPER if DRM_FBDEV_EMULATION select FB_CORE if DRM_FBDEV_EMULATION select FB_DMAMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION help Choose this if you need the GEM DMA helper functions config DRM_GEM_SHMEM_HELPER tristate depends on DRM && MMU select DRM_KMS_HELPER if DRM_FBDEV_EMULATION select FB_CORE if DRM_FBDEV_EMULATION select FB_SYSMEM_HELPERS_DEFERRED if DRM_FBDEV_EMULATION help Choose this if you need the GEM shmem helper functions config DRM_SUBALLOC_HELPER tristate depends on DRM config DRM_SCHED tristate depends on DRM source "drivers/gpu/drm/sysfb/Kconfig" source "drivers/gpu/drm/arm/Kconfig" source "drivers/gpu/drm/radeon/Kconfig" source "drivers/gpu/drm/amd/amdgpu/Kconfig" source "drivers/gpu/drm/nouveau/Kconfig" source "drivers/gpu/drm/nova/Kconfig" source "drivers/gpu/drm/i915/Kconfig" source "drivers/gpu/drm/xe/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. source "drivers/gpu/drm/vkms/Kconfig" 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/renesas/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/loongson/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/panthor/Kconfig" source "drivers/gpu/drm/aspeed/Kconfig" source "drivers/gpu/drm/mcde/Kconfig" source "drivers/gpu/drm/tidss/Kconfig" source "drivers/gpu/drm/adp/Kconfig" source "drivers/gpu/drm/xlnx/Kconfig" source "drivers/gpu/drm/gud/Kconfig" source "drivers/gpu/drm/sitronix/Kconfig" source "drivers/gpu/drm/solomon/Kconfig" source "drivers/gpu/drm/sprd/Kconfig" source "drivers/gpu/drm/imagination/Kconfig" config DRM_HYPERV tristate "DRM Support for Hyper-V synthetic video device" depends on DRM && PCI && HYPERV select DRM_CLIENT_SELECTION 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. # Separate option as not all DRM drivers use it config DRM_PANEL_BACKLIGHT_QUIRKS tristate config DRM_LIB_RANDOM bool default n config DRM_PRIVACY_SCREEN bool default n endif # Separate option because drm_panel_orientation_quirks.c is shared with fbdev config DRM_PANEL_ORIENTATION_QUIRKS tristate