| # 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 && PRINTK | |
| 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_RAS | |
| bool "DRM RAS support" | |
| depends on DRM | |
| depends on NET | |
| help | |
| Enables the DRM RAS (Reliability, Availability and Serviceability) | |
| support for DRM drivers. This provides a Generic Netlink interface | |
| for error reporting and queries. | |
| If in doubt, say "N". | |
| 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 RUST_DRM_GPUVM | |
| bool | |
| depends on DRM | |
| select DRM_GPUVM | |
| help | |
| Choose this if you need GPUVM functions in Rust | |
| config DRM_GPUSVM | |
| tristate | |
| depends on DRM | |
| 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 | |
| select GPU_BUDDY | |
| 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 RUST_DRM_GEM_SHMEM_HELPER | |
| bool | |
| depends on DRM && MMU | |
| select DRM_GEM_SHMEM_HELPER | |
| help | |
| Choose this if you need the GEM shmem helper functions In Rust | |
| config DRM_SUBALLOC_HELPER | |
| tristate | |
| depends on DRM | |
| config DRM_SCHED | |
| tristate | |
| depends on DRM | |
| # Separate option as not all DRM drivers use it | |
| config DRM_PANEL_BACKLIGHT_QUIRKS | |
| tristate | |
| config DRM_PRIVACY_SCREEN | |
| bool | |
| default n | |
| # DRM driver Kconfig files, sorted | |
| source "drivers/gpu/drm/adp/Kconfig" | |
| source "drivers/gpu/drm/amd/amdgpu/Kconfig" | |
| source "drivers/gpu/drm/arm/Kconfig" | |
| source "drivers/gpu/drm/armada/Kconfig" | |
| source "drivers/gpu/drm/aspeed/Kconfig" | |
| source "drivers/gpu/drm/ast/Kconfig" | |
| source "drivers/gpu/drm/atmel-hlcdc/Kconfig" | |
| source "drivers/gpu/drm/bridge/Kconfig" | |
| source "drivers/gpu/drm/etnaviv/Kconfig" | |
| source "drivers/gpu/drm/exynos/Kconfig" | |
| source "drivers/gpu/drm/fsl-dcu/Kconfig" | |
| source "drivers/gpu/drm/gma500/Kconfig" | |
| source "drivers/gpu/drm/gud/Kconfig" | |
| source "drivers/gpu/drm/hisilicon/Kconfig" | |
| source "drivers/gpu/drm/hyperv/Kconfig" | |
| source "drivers/gpu/drm/i915/Kconfig" | |
| source "drivers/gpu/drm/imagination/Kconfig" | |
| source "drivers/gpu/drm/imx/Kconfig" | |
| source "drivers/gpu/drm/ingenic/Kconfig" | |
| source "drivers/gpu/drm/kmb/Kconfig" | |
| source "drivers/gpu/drm/lima/Kconfig" | |
| source "drivers/gpu/drm/logicvc/Kconfig" | |
| source "drivers/gpu/drm/loongson/Kconfig" | |
| source "drivers/gpu/drm/mcde/Kconfig" | |
| source "drivers/gpu/drm/mediatek/Kconfig" | |
| source "drivers/gpu/drm/meson/Kconfig" | |
| source "drivers/gpu/drm/mgag200/Kconfig" | |
| source "drivers/gpu/drm/msm/Kconfig" | |
| source "drivers/gpu/drm/mxsfb/Kconfig" | |
| source "drivers/gpu/drm/nouveau/Kconfig" | |
| source "drivers/gpu/drm/nova/Kconfig" | |
| source "drivers/gpu/drm/omapdrm/Kconfig" | |
| source "drivers/gpu/drm/panel/Kconfig" | |
| source "drivers/gpu/drm/panfrost/Kconfig" | |
| source "drivers/gpu/drm/panthor/Kconfig" | |
| source "drivers/gpu/drm/pl111/Kconfig" | |
| source "drivers/gpu/drm/qxl/Kconfig" | |
| source "drivers/gpu/drm/radeon/Kconfig" | |
| source "drivers/gpu/drm/renesas/Kconfig" | |
| source "drivers/gpu/drm/rockchip/Kconfig" | |
| source "drivers/gpu/drm/sitronix/Kconfig" | |
| source "drivers/gpu/drm/solomon/Kconfig" | |
| source "drivers/gpu/drm/sprd/Kconfig" | |
| source "drivers/gpu/drm/sti/Kconfig" | |
| source "drivers/gpu/drm/stm/Kconfig" | |
| source "drivers/gpu/drm/sun4i/Kconfig" | |
| source "drivers/gpu/drm/sysfb/Kconfig" | |
| source "drivers/gpu/drm/tegra/Kconfig" | |
| source "drivers/gpu/drm/tidss/Kconfig" | |
| source "drivers/gpu/drm/tilcdc/Kconfig" | |
| source "drivers/gpu/drm/tiny/Kconfig" | |
| source "drivers/gpu/drm/tve200/Kconfig" | |
| source "drivers/gpu/drm/tyr/Kconfig" | |
| source "drivers/gpu/drm/udl/Kconfig" | |
| source "drivers/gpu/drm/v3d/Kconfig" | |
| source "drivers/gpu/drm/vboxvideo/Kconfig" | |
| source "drivers/gpu/drm/vc4/Kconfig" | |
| source "drivers/gpu/drm/verisilicon/Kconfig" | |
| source "drivers/gpu/drm/vgem/Kconfig" | |
| source "drivers/gpu/drm/virtio/Kconfig" | |
| source "drivers/gpu/drm/vkms/Kconfig" | |
| source "drivers/gpu/drm/vmwgfx/Kconfig" | |
| source "drivers/gpu/drm/xe/Kconfig" | |
| source "drivers/gpu/drm/xen/Kconfig" | |
| source "drivers/gpu/drm/xlnx/Kconfig" | |
| endif | |
| # Separate option because drm_panel_orientation_quirks.c is shared with fbdev | |
| config DRM_PANEL_ORIENTATION_QUIRKS | |
| tristate |