
auxiliary: - bus abstractions - implementation for driver registration - add sample driver drm: - implement __drm_dev_alloc() - DRM core infrastructure Rust abstractions - device, driver and registration - DRM IOCTL - DRM File - GEM object - IntoGEMObject rework - generically implement AlwaysRefCounted through IntoGEMObject - refactor unsound from_gem_obj() into as_ref() - refactor into_gem_obj() into as_raw() driver-core: - merge topic/device-context-2025-04-17 from driver-core tree - implement Devres::access() - fix: doctest build under `!CONFIG_PCI` - accessor for Device::parent() - fix: conditionally expect `dead_code` for `parent()` - impl TryFrom<&Device> bus devices (PCI, platform) nova-core: - remove completed Vec extentions from task list - register auxiliary device for nova-drm - derive useful traits for Chipset - add missing GA100 chipset - take &Device<Bound> in Gpu::new() - infrastructure to generate register definitions - fix register layout of NV_PMC_BOOT_0 - move Firmware into own (Rust) module - fix: select AUXILIARY_BUS nova-drm: - initial driver skeleton (depends on drm and auxiliary bus abstractions) - fix: select AUXILIARY_BUS Rust (dependencies): - implement Opaque::zeroed() - implement Revocable::try_access_with() - implement Revocable::access() -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQS2q/xV6QjXAdC7k+1FlHeO1qrKLgUCaCw8MQAKCRBFlHeO1qrK LjWvAP9kg3wJuJtO5KT7RsEk/fsPXoHy0QuB45v/R7yWdehsrwEA7WPoR/3TfDqN Ydq1JMMHw9lrDqaSNcMMw5K8zYs4oQQ= =FRbl -----END PGP SIGNATURE----- Merge tag 'nova-next-v6.16-2025-05-20' of https://gitlab.freedesktop.org/drm/nova into drm-next Nova changes for v6.16 auxiliary: - bus abstractions - implementation for driver registration - add sample driver drm: - implement __drm_dev_alloc() - DRM core infrastructure Rust abstractions - device, driver and registration - DRM IOCTL - DRM File - GEM object - IntoGEMObject rework - generically implement AlwaysRefCounted through IntoGEMObject - refactor unsound from_gem_obj() into as_ref() - refactor into_gem_obj() into as_raw() driver-core: - merge topic/device-context-2025-04-17 from driver-core tree - implement Devres::access() - fix: doctest build under `!CONFIG_PCI` - accessor for Device::parent() - fix: conditionally expect `dead_code` for `parent()` - impl TryFrom<&Device> bus devices (PCI, platform) nova-core: - remove completed Vec extentions from task list - register auxiliary device for nova-drm - derive useful traits for Chipset - add missing GA100 chipset - take &Device<Bound> in Gpu::new() - infrastructure to generate register definitions - fix register layout of NV_PMC_BOOT_0 - move Firmware into own (Rust) module - fix: select AUXILIARY_BUS nova-drm: - initial driver skeleton (depends on drm and auxiliary bus abstractions) - fix: select AUXILIARY_BUS Rust (dependencies): - implement Opaque::zeroed() - implement Revocable::try_access_with() - implement Revocable::access() From: Danilo Krummrich <dakr@kernel.org> Link: https://lore.kernel.org/r/aCxAf3RqQAXLDhAj@cassiopeiae
11 KiB
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 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 && MMU && 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