-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Peter Jung <[email protected]>
- Loading branch information
Showing
9 changed files
with
608 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
pkgbase = nvidia-535xx-utils | ||
pkgdesc = NVIDIA drivers for Linux, 535 branch, dkms | ||
pkgver = 535.183.01 | ||
pkgrel = 3 | ||
url = http://www.nvidia.com/ | ||
arch = x86_64 | ||
license = custom | ||
makedepends = patchelf | ||
options = !strip | ||
source = nvidia-drm-outputclass.conf | ||
source = nvidia-utils.sysusers | ||
source = nvidia.rules | ||
source = linux-6.10.patch | ||
source = 6.11-fbdev.patch | ||
source = https://us.download.nvidia.com/XFree86/Linux-x86_64/535.183.01/NVIDIA-Linux-x86_64-535.183.01.run | ||
sha512sums = de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770 | ||
sha512sums = 4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499 | ||
sha512sums = a0ceb0a6c240cf97b21a2e46c5c212250d3ee24fecef16aca3dffb04b8350c445b9f4398274abccdb745dd0ba5132a17942c9508ce165d4f97f41ece02b0b989 | ||
sha512sums = 29b156ee3504f11216e462d69c219f1c144a36f19b6756301e3db133c4c471d0b94483fd2809a32909c43f9cbaadd4016988b55354e77204f7d8a0033e735a8e | ||
sha512sums = d37aa56ed937c596340106138a80c38ef5cc703cdc270dea6189fda20bcf369b11badd662bd0c0799ec1282428ca64d3dc137289fa1951905a10fd4cba6dd9b0 | ||
sha512sums = 02b6b679f4fc1d5305f32fca8ce0875eef04cb99f5611d0bb85ac7607ecdd5b2aa4d60b51bf47546477464531a07fffa5bf3db3859868648bd5e86565d85afbb | ||
|
||
pkgname = nvidia-535xx-utils | ||
pkgdesc = NVIDIA drivers utilities, 535 branch | ||
install = nvidia-535xx-utils.install | ||
depends = libglvnd | ||
depends = egl-wayland | ||
optdepends = nvidia-settings: configuration tool | ||
optdepends = xorg-server: Xorg support | ||
optdepends = xorg-server-devel: nvidia-xconfig | ||
optdepends = opencl-nvidia: OpenCL support | ||
provides = nvidia-utils=535.183.01 | ||
provides = vulkan-driver | ||
provides = opengl-driver | ||
provides = nvidia-libgl | ||
conflicts = nvidia-utils | ||
conflicts = nvidia-libgl | ||
|
||
pkgname = opencl-nvidia-535xx | ||
pkgdesc = OpenCL implemention for NVIDIA, 535 branch | ||
depends = zlib | ||
optdepends = opencl-headers: headers necessary for OpenCL development | ||
provides = opencl-nvidia | ||
provides = opencl-driver | ||
conflicts = opencl-nvidia | ||
|
||
pkgname = nvidia-535xx-dkms | ||
pkgdesc = NVIDIA drivers - module sources, 535 branch | ||
depends = dkms | ||
depends = nvidia-utils=535.183.01 | ||
depends = libglvnd | ||
provides = nvidia-dkms=535.183.01 | ||
provides = NVIDIA-MODULE | ||
provides = nvidia | ||
conflicts = nvidia-dkms | ||
conflicts = NVIDIA-MODULE | ||
conflicts = nvidia |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
*.run | ||
*.pkg.tar.zst | ||
*.log | ||
/pkg/ | ||
/src/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,199 @@ | ||
From 772eaa91e1e79fb0a4a7e9d80abd99db7a0c0b61 Mon Sep 17 00:00:00 2001 | ||
From: Peter Jung <[email protected]> | ||
Date: Thu, 26 Sep 2024 14:52:57 +0200 | ||
Subject: [PATCH 4/5] 6.11: Add fix for fbdev | ||
|
||
--- | ||
kernel/conftest.sh | 23 ++++++++++++++++++- | ||
kernel/header-presence-tests.mk | 1 + | ||
kernel/nvidia-drm/nvidia-drm-drv.c | 22 +++++++++++------- | ||
kernel/nvidia-drm/nvidia-drm-linux.c | 2 +- | ||
.../nvidia-drm/nvidia-drm-os-interface.h | 8 ++++++- | ||
kernel/nvidia-drm/nvidia-drm-sources.mk | 1 + | ||
6 files changed, 46 insertions(+), 11 deletions(-) | ||
|
||
diff --git a/kernel/conftest.sh b/kernel/conftest.sh | ||
index 1226cea2..4a239e63 100755 | ||
--- a/kernel/conftest.sh | ||
+++ b/kernel/conftest.sh | ||
@@ -6596,7 +6596,9 @@ compile_test() { | ||
# Determine whether drm_fbdev_generic_setup is present. | ||
# | ||
# Added by commit 9060d7f49376 ("drm/fb-helper: Finish the | ||
- # generic fbdev emulation") in v4.19. | ||
+ # generic fbdev emulation") in v4.19. Removed by commit | ||
+ # aae4682e5d66 ("drm/fbdev-generic: Convert to fbdev-ttm") | ||
+ # in v6.11. | ||
# | ||
CODE=" | ||
#include <drm/drm_fb_helper.h> | ||
@@ -6610,6 +6612,25 @@ compile_test() { | ||
compile_check_conftest "$CODE" "NV_DRM_FBDEV_GENERIC_SETUP_PRESENT" "" "functions" | ||
;; | ||
|
||
+ drm_fbdev_ttm_setup) | ||
+ # | ||
+ # Determine whether drm_fbdev_ttm_setup is present. | ||
+ # | ||
+ # Added by commit aae4682e5d66 ("drm/fbdev-generic: | ||
+ # Convert to fbdev-ttm") in v6.11. | ||
+ # | ||
+ CODE=" | ||
+ #include <drm/drm_fb_helper.h> | ||
+ #if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT) | ||
+ #include <drm/drm_fbdev_ttm.h> | ||
+ #endif | ||
+ void conftest_drm_fbdev_ttm_setup(void) { | ||
+ drm_fbdev_ttm_setup(); | ||
+ }" | ||
+ | ||
+ compile_check_conftest "$CODE" "NV_DRM_FBDEV_TTM_SETUP_PRESENT" "" "functions" | ||
+ ;; | ||
+ | ||
drm_aperture_remove_conflicting_pci_framebuffers) | ||
# | ||
# Determine whether drm_aperture_remove_conflicting_pci_framebuffers is present. | ||
diff --git a/kernel/header-presence-tests.mk b/kernel/header-presence-tests.mk | ||
index e8d2e02b..40204ae4 100644 | ||
--- a/kernel/header-presence-tests.mk | ||
+++ b/kernel/header-presence-tests.mk | ||
@@ -15,6 +15,7 @@ NV_HEADER_PRESENCE_TESTS = \ | ||
drm/drm_atomic_uapi.h \ | ||
drm/drm_drv.h \ | ||
drm/drm_fbdev_generic.h \ | ||
+ drm/drm_fbdev_ttm.h \ | ||
drm/drm_framebuffer.h \ | ||
drm/drm_connector.h \ | ||
drm/drm_probe_helper.h \ | ||
diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c | ||
index 359ff0c4..50028c26 100644 | ||
--- a/kernel/nvidia-drm/nvidia-drm-drv.c | ||
+++ b/kernel/nvidia-drm/nvidia-drm-drv.c | ||
@@ -64,12 +64,14 @@ | ||
#include <drm/drm_ioctl.h> | ||
#endif | ||
|
||
-#if defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) | ||
+#if defined(NV_DRM_FBDEV_AVAILABLE) | ||
#include <drm/drm_aperture.h> | ||
#include <drm/drm_fb_helper.h> | ||
#endif | ||
|
||
-#if defined(NV_DRM_DRM_FBDEV_GENERIC_H_PRESENT) | ||
+#if defined(NV_DRM_DRM_FBDEV_TTM_H_PRESENT) | ||
+#include <drm/drm_fbdev_ttm.h> | ||
+#elif defined(NV_DRM_DRM_FBDEV_GENERIC_H_PRESENT) | ||
#include <drm/drm_fbdev_generic.h> | ||
#endif | ||
|
||
@@ -476,7 +478,7 @@ static int nv_drm_load(struct drm_device *dev, unsigned long flags) | ||
return -ENODEV; | ||
} | ||
|
||
-#if defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) | ||
+#if defined(NV_DRM_FBDEV_AVAILABLE) | ||
/* | ||
* If fbdev is enabled, take modeset ownership now before other DRM clients | ||
* can take master (and thus NVKMS ownership). | ||
@@ -610,7 +612,7 @@ static void __nv_drm_unload(struct drm_device *dev) | ||
|
||
/* Release modeset ownership if fbdev is enabled */ | ||
|
||
-#if defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) | ||
+#if defined(NV_DRM_FBDEV_AVAILABLE) | ||
if (nv_dev->hasFramebufferConsole) { | ||
drm_atomic_helper_shutdown(dev); | ||
nvKms->releaseOwnership(nv_dev->pDevice); | ||
@@ -1838,7 +1840,7 @@ void nv_drm_register_drm_device(const nv_gpu_info_t *gpu_info) | ||
goto failed_drm_register; | ||
} | ||
|
||
-#if defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) | ||
+#if defined(NV_DRM_FBDEV_AVAILABLE) | ||
if (nv_drm_fbdev_module_param && | ||
drm_core_check_feature(dev, DRIVER_MODESET)) { | ||
|
||
@@ -1851,9 +1853,13 @@ void nv_drm_register_drm_device(const nv_gpu_info_t *gpu_info) | ||
drm_aperture_remove_conflicting_pci_framebuffers(pdev, nv_drm_driver.name); | ||
#endif | ||
} | ||
+ #if defined(NV_DRM_FBDEV_TTM_AVAILABLE) | ||
+ drm_fbdev_ttm_setup(dev, 32); | ||
+ #elif defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) | ||
drm_fbdev_generic_setup(dev, 32); | ||
+ #endif | ||
} | ||
-#endif /* defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) */ | ||
+#endif /* defined(NV_DRM_FBDEV_AVAILABLE) */ | ||
|
||
/* Add NVIDIA-DRM device into list */ | ||
|
||
@@ -1995,12 +2001,12 @@ void nv_drm_suspend_resume(NvBool suspend) | ||
|
||
if (suspend) { | ||
drm_kms_helper_poll_disable(dev); | ||
-#if defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) | ||
+#if defined(NV_DRM_FBDEV_AVAILABLE) | ||
drm_fb_helper_set_suspend_unlocked(dev->fb_helper, 1); | ||
#endif | ||
drm_mode_config_reset(dev); | ||
} else { | ||
-#if defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) | ||
+#if defined(NV_DRM_FBDEV_AVAILABLE) | ||
drm_fb_helper_set_suspend_unlocked(dev->fb_helper, 0); | ||
#endif | ||
drm_kms_helper_poll_enable(dev); | ||
diff --git a/kernel/nvidia-drm/nvidia-drm-linux.c b/kernel/nvidia-drm/nvidia-drm-linux.c | ||
index c7f4a239..83d40983 100644 | ||
--- a/kernel/nvidia-drm/nvidia-drm-linux.c | ||
+++ b/kernel/nvidia-drm/nvidia-drm-linux.c | ||
@@ -34,7 +34,7 @@ MODULE_PARM_DESC( | ||
"Enable atomic kernel modesetting (1 = enable (default), 0 = disable)"); | ||
module_param_named(modeset, nv_drm_modeset_module_param, bool, 0400); | ||
|
||
-#if defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) | ||
+#if defined(NV_DRM_FBDEV_AVAILABLE) | ||
MODULE_PARM_DESC( | ||
fbdev, | ||
"Create a framebuffer device (1 = enable (default), 0 = disable) (EXPERIMENTAL)"); | ||
diff --git a/kernel/nvidia-drm/nvidia-drm-os-interface.h b/kernel/nvidia-drm/nvidia-drm-os-interface.h | ||
index 6f8cfea9..a6b0f947 100644 | ||
--- a/kernel/nvidia-drm/nvidia-drm-os-interface.h | ||
+++ b/kernel/nvidia-drm/nvidia-drm-os-interface.h | ||
@@ -59,14 +59,20 @@ typedef struct nv_timer nv_drm_timer; | ||
#endif | ||
|
||
#if defined(NV_DRM_FBDEV_GENERIC_SETUP_PRESENT) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT) | ||
+#define NV_DRM_FBDEV_AVAILABLE | ||
#define NV_DRM_FBDEV_GENERIC_AVAILABLE | ||
#endif | ||
|
||
+#if defined(NV_DRM_FBDEV_TTM_SETUP_PRESENT) && defined(NV_DRM_APERTURE_REMOVE_CONFLICTING_PCI_FRAMEBUFFERS_PRESENT) | ||
+#define NV_DRM_FBDEV_AVAILABLE | ||
+#define NV_DRM_FBDEV_TTM_AVAILABLE | ||
+#endif | ||
+ | ||
struct page; | ||
|
||
/* Set to true when the atomic modeset feature is enabled. */ | ||
extern bool nv_drm_modeset_module_param; | ||
-#if defined(NV_DRM_FBDEV_GENERIC_AVAILABLE) | ||
+#if defined(NV_DRM_FBDEV_AVAILABLE) | ||
/* Set to true when the nvidia-drm driver should install a framebuffer device */ | ||
extern bool nv_drm_fbdev_module_param; | ||
#endif | ||
diff --git a/kernel/nvidia-drm/nvidia-drm-sources.mk b/kernel/nvidia-drm/nvidia-drm-sources.mk | ||
index 7ef0c5b8..247096b7 100644 | ||
--- a/kernel/nvidia-drm/nvidia-drm-sources.mk | ||
+++ b/kernel/nvidia-drm/nvidia-drm-sources.mk | ||
@@ -67,6 +67,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += fence_set_error | ||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += sync_file_get_fence | ||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_aperture_remove_conflicting_pci_framebuffers | ||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_generic_setup | ||
+NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fbdev_ttm_setup | ||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_connector_attach_hdr_output_metadata_property | ||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_helper_crtc_enable_color_mgmt | ||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_crtc_enable_color_mgmt | ||
-- | ||
2.46.2 | ||
|
Oops, something went wrong.