diff options
Diffstat (limited to 'system/nvidia-legacy340-kernel/patches/0003-kernel-5.9.patch')
-rw-r--r-- | system/nvidia-legacy340-kernel/patches/0003-kernel-5.9.patch | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/system/nvidia-legacy340-kernel/patches/0003-kernel-5.9.patch b/system/nvidia-legacy340-kernel/patches/0003-kernel-5.9.patch new file mode 100644 index 0000000000000..d8584314f240d --- /dev/null +++ b/system/nvidia-legacy340-kernel/patches/0003-kernel-5.9.patch @@ -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 + |