mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-25 19:42:19 +00:00
This commit provides the implementation for the new uapi motivated by the Vulkan API. It allows user mode drivers (UMDs) to: 1) Initialize a GPU virtual address (VA) space via the new DRM_IOCTL_NOUVEAU_VM_INIT ioctl for UMDs to specify the portion of VA space managed by the kernel and userspace, respectively. 2) Allocate and free a VA space region as well as bind and unbind memory to the GPUs VA space via the new DRM_IOCTL_NOUVEAU_VM_BIND ioctl. UMDs can request the named operations to be processed either synchronously or asynchronously. It supports DRM syncobjs (incl. timelines) as synchronization mechanism. The management of the GPU VA mappings is implemented with the DRM GPU VA manager. 3) Execute push buffers with the new DRM_IOCTL_NOUVEAU_EXEC ioctl. The execution happens asynchronously. It supports DRM syncobj (incl. timelines) as synchronization mechanism. DRM GEM object locking is handled with drm_exec. Both, DRM_IOCTL_NOUVEAU_VM_BIND and DRM_IOCTL_NOUVEAU_EXEC, use the DRM GPU scheduler for the asynchronous paths. Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Danilo Krummrich <dakr@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230804182406.5222-12-dakr@redhat.com
102 lines
2.5 KiB
Plaintext
102 lines
2.5 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config DRM_NOUVEAU
|
|
tristate "Nouveau (NVIDIA) cards"
|
|
depends on DRM && PCI && MMU
|
|
select IOMMU_API
|
|
select FW_LOADER
|
|
select DRM_DISPLAY_DP_HELPER
|
|
select DRM_DISPLAY_HDMI_HELPER
|
|
select DRM_DISPLAY_HELPER
|
|
select DRM_KMS_HELPER
|
|
select DRM_TTM
|
|
select DRM_TTM_HELPER
|
|
select DRM_EXEC
|
|
select DRM_SCHED
|
|
select I2C
|
|
select I2C_ALGOBIT
|
|
select BACKLIGHT_CLASS_DEVICE if DRM_NOUVEAU_BACKLIGHT
|
|
select X86_PLATFORM_DEVICES if ACPI && X86
|
|
select ACPI_WMI if ACPI && X86
|
|
select MXM_WMI if ACPI && X86
|
|
select POWER_SUPPLY
|
|
# Similar to i915, we need to select ACPI_VIDEO and it's dependencies
|
|
select BACKLIGHT_CLASS_DEVICE if ACPI && X86
|
|
select INPUT if ACPI && X86
|
|
select THERMAL if ACPI && X86
|
|
select ACPI_VIDEO if ACPI && X86
|
|
select SND_HDA_COMPONENT if SND_HDA_CORE
|
|
help
|
|
Choose this option for open-source NVIDIA support.
|
|
|
|
config NOUVEAU_PLATFORM_DRIVER
|
|
bool "Nouveau (NVIDIA) SoC GPUs"
|
|
depends on DRM_NOUVEAU && ARCH_TEGRA
|
|
default y
|
|
help
|
|
Support for Nouveau platform driver, used for SoC GPUs as found
|
|
on NVIDIA Tegra K1.
|
|
|
|
config NOUVEAU_DEBUG
|
|
int "Maximum debug level"
|
|
depends on DRM_NOUVEAU
|
|
range 0 7
|
|
default 5
|
|
help
|
|
Selects the maximum debug level to compile support for.
|
|
|
|
0 - fatal
|
|
1 - error
|
|
2 - warning
|
|
3 - info
|
|
4 - debug
|
|
5 - trace (recommended)
|
|
6 - paranoia
|
|
7 - spam
|
|
|
|
The paranoia and spam levels will add a lot of extra checks which
|
|
may potentially slow down driver operation.
|
|
|
|
config NOUVEAU_DEBUG_DEFAULT
|
|
int "Default debug level"
|
|
depends on DRM_NOUVEAU
|
|
range 0 7
|
|
default 3
|
|
help
|
|
Selects the default debug level
|
|
|
|
config NOUVEAU_DEBUG_MMU
|
|
bool "Enable additional MMU debugging"
|
|
depends on DRM_NOUVEAU
|
|
default n
|
|
help
|
|
Say Y here if you want to enable verbose MMU debug output.
|
|
|
|
config NOUVEAU_DEBUG_PUSH
|
|
bool "Enable additional push buffer debugging"
|
|
depends on DRM_NOUVEAU
|
|
default n
|
|
help
|
|
Say Y here if you want to enable verbose push buffer debug output
|
|
and sanity checks.
|
|
|
|
config DRM_NOUVEAU_BACKLIGHT
|
|
bool "Support for backlight control"
|
|
depends on DRM_NOUVEAU
|
|
default y
|
|
help
|
|
Say Y here if you want to control the backlight of your display
|
|
(e.g. a laptop panel).
|
|
|
|
config DRM_NOUVEAU_SVM
|
|
bool "(EXPERIMENTAL) Enable SVM (Shared Virtual Memory) support"
|
|
depends on DEVICE_PRIVATE
|
|
depends on DRM_NOUVEAU
|
|
depends on MMU
|
|
depends on STAGING
|
|
select HMM_MIRROR
|
|
select MMU_NOTIFIER
|
|
default n
|
|
help
|
|
Say Y here if you want to enable experimental support for
|
|
Shared Virtual Memory (SVM).
|