module-nvidia340 rebuild
This commit is contained in:
@@ -34,6 +34,8 @@ def setup():
|
||||
#shelltools.system("patch -p1 < unfuck-340.108-build-fix.patch")
|
||||
shelltools.system("patch -p1 < kernel-5.7.patch")
|
||||
shelltools.system("patch -p1 < kernel-5.8.patch")
|
||||
shelltools.system("patch -p1 < kernel-5.9.patch")
|
||||
shelltools.system("patch -p1 < kernel-5.10.patch")
|
||||
|
||||
|
||||
# Our libc is TLS enabled so use TLS library
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
From fea401df7500bfbead5a42b1e74560dbddf2f5a3 Mon Sep 17 00:00:00 2001
|
||||
From: graysky <graysky@archlinux.us>
|
||||
Date: Thu, 22 Oct 2020 07:00:35 -0400
|
||||
Subject: [PATCH 3/3] kernel-5.9
|
||||
|
||||
credit: https://github.com/warpme/minimyth2/blob/master/script/nvidia/nvidia-340.108/files/nvidia-340.108-fix-5.9-kernel-compile.patch
|
||||
---
|
||||
kernel/nv-drm.c | 8 ++++++++
|
||||
kernel/nv-linux.h | 9 +++++++--
|
||||
kernel/nv.c | 4 ++++
|
||||
kernel/uvm/nvidia_uvm_linux.h | 2 ++
|
||||
4 files changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/kernel/nv-drm.c b/kernel/nv-drm.c
|
||||
index 85db07e..f0c1299 100644
|
||||
--- a/kernel/nv-drm.c
|
||||
+++ b/kernel/nv-drm.c
|
||||
@@ -415,7 +415,11 @@ static struct drm_driver nv_drm_driver = {
|
||||
.set_busid = drm_pci_set_busid,
|
||||
#endif
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
|
||||
+ .gem_free_object_unlocked = nv_gem_free,
|
||||
+#else
|
||||
.gem_free_object = nv_gem_free,
|
||||
+#endif
|
||||
|
||||
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
|
||||
.gem_prime_export = drm_gem_prime_export,
|
||||
@@ -511,8 +515,12 @@ RM_STATUS NV_API_CALL nv_alloc_os_descriptor_handle(
|
||||
|
||||
#if defined(NV_DRM_GEM_OBJECT_PUT_UNLOCKED_PRESENT)
|
||||
drm_gem_object_put_unlocked(&nv_obj->base);
|
||||
+#else
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
|
||||
+ drm_gem_object_put_locked(&nv_obj->base);
|
||||
#else
|
||||
drm_gem_object_unreference_unlocked(&nv_obj->base);
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
status = RM_OK;
|
||||
diff --git a/kernel/nv-linux.h b/kernel/nv-linux.h
|
||||
index d055552..524a8fe 100644
|
||||
--- a/kernel/nv-linux.h
|
||||
+++ b/kernel/nv-linux.h
|
||||
@@ -136,8 +136,10 @@
|
||||
|
||||
#if defined(NVCPU_X86_64) && !defined(HAVE_COMPAT_IOCTL)
|
||||
#include <linux/syscalls.h> /* sys_ioctl() */
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0)
|
||||
#include <linux/ioctl32.h> /* register_ioctl32_conversion() */
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#if !defined(NV_FILE_OPERATIONS_HAS_IOCTL) && \
|
||||
!defined(NV_FILE_OPERATIONS_HAS_UNLOCKED_IOCTL)
|
||||
@@ -2249,10 +2251,13 @@ static inline NvU64 nv_node_end_pfn(int nid)
|
||||
pages, vmas, NULL);
|
||||
|
||||
#else
|
||||
-
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
|
||||
+ return get_user_pages_remote(mm, start, nr_pages, flags,
|
||||
+ pages, vmas, NULL);
|
||||
+#else
|
||||
return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
|
||||
pages, vmas);
|
||||
-
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
}
|
||||
diff --git a/kernel/nv.c b/kernel/nv.c
|
||||
index a218f83..be4e0f8 100644
|
||||
--- a/kernel/nv.c
|
||||
+++ b/kernel/nv.c
|
||||
@@ -2785,7 +2785,11 @@ nvidia_probe
|
||||
|
||||
#if defined(CONFIG_VGA_ARB)
|
||||
#if defined(VGA_DEFAULT_DEVICE)
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
|
||||
+ vga_get(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK, 0);
|
||||
+#else
|
||||
vga_tryget(VGA_DEFAULT_DEVICE, VGA_RSRC_LEGACY_MASK);
|
||||
+#endif
|
||||
#endif
|
||||
vga_set_legacy_decoding(dev, VGA_RSRC_NONE);
|
||||
#endif
|
||||
diff --git a/kernel/uvm/nvidia_uvm_linux.h b/kernel/uvm/nvidia_uvm_linux.h
|
||||
index 1625209..efc181f 100644
|
||||
--- a/kernel/uvm/nvidia_uvm_linux.h
|
||||
+++ b/kernel/uvm/nvidia_uvm_linux.h
|
||||
@@ -158,8 +158,10 @@
|
||||
|
||||
#if defined(NVCPU_X86_64) && !defined(HAVE_COMPAT_IOCTL)
|
||||
#include <linux/syscalls.h> /* sys_ioctl() */
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0)
|
||||
#include <linux/ioctl32.h> /* register_ioctl32_conversion() */
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#if !defined(NV_FILE_OPERATIONS_HAS_IOCTL) && \
|
||||
!defined(NV_FILE_OPERATIONS_HAS_UNLOCKED_IOCTL)
|
||||
--
|
||||
2.29.0
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
https://github.com/warpme/minimyth2/tree/master/script/nvidia/nvidia-340.108/files
|
||||
|
||||
diff -Naur NVIDIA-Linux-x86_64-340.108-old/kernel/nv-drm.c NVIDIA-Linux-x86_64-340.108-new/kernel/nv-drm.c
|
||||
--- NVIDIA-Linux-x86_64-340.108-old/kernel/nv-drm.c 2020-12-13 19:10:56.759999937 +0100
|
||||
+++ NVIDIA-Linux-x86_64-340.108-new/kernel/nv-drm.c 2020-12-13 19:09:02.039999925 +0100
|
||||
@@ -322,8 +322,11 @@
|
||||
{
|
||||
struct nv_gem_object *nv_obj = container_of(obj, struct nv_gem_object, base);
|
||||
int page_count = obj->size >> PAGE_SHIFT;
|
||||
-
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)
|
||||
+ return drm_prime_pages_to_sg(obj->dev, nv_obj->pages, page_count);
|
||||
+#else
|
||||
return drm_prime_pages_to_sg(nv_obj->pages, page_count);
|
||||
+#endif
|
||||
}
|
||||
|
||||
static void* nv_gem_prime_vmap(
|
||||
@@ -20,6 +20,8 @@
|
||||
<AdditionalFile owner="root" permission="0644" target="unfuck-340.108-build-fix.patch">unfuck-340.108-build-fix.patch</AdditionalFile>
|
||||
<AdditionalFile owner="root" permission="0644" target="kernel-5.7.patch">NVIDIA-Linux-x86_64-340.108-kernel-5.7.patch</AdditionalFile>
|
||||
<AdditionalFile owner="root" permission="0644" target="kernel-5.8.patch">NVIDIA-Linux-x86_64-340.108-kernel-5.8.patch</AdditionalFile>
|
||||
<AdditionalFile owner="root" permission="0644" target="kernel-5.9.patch">0003-kernel-5.9.patch</AdditionalFile>
|
||||
<AdditionalFile owner="root" permission="0644" target="kernel-5.10.patch">0004-kernel-5.10.patch</AdditionalFile>
|
||||
</AdditionalFiles>
|
||||
<BuildDependencies>
|
||||
<Dependency version="5.10.11">kernel-module-headers</Dependency>
|
||||
|
||||
Reference in New Issue
Block a user