Split main kernel 5.9 and GPL "condom" patches, and apply the latter to both 450 and 455 series.
This fixes CUDA and nvenc functionalities on kernel 5.9. Fixes https://github.com/Frogging-Family/nvidia-all/issues/11
This commit is contained in:
16
PKGBUILD
16
PKGBUILD
@@ -155,7 +155,7 @@ fi
|
||||
|
||||
pkgname=("${_pkgname_array[@]}")
|
||||
pkgver=$_driver_version
|
||||
pkgrel=131
|
||||
pkgrel=132
|
||||
arch=('x86_64')
|
||||
url="http://www.nvidia.com/"
|
||||
license=('custom:NVIDIA')
|
||||
@@ -202,6 +202,7 @@ source=($_source_name
|
||||
'kernel-5.8.patch' # 5.8 workaround
|
||||
'5.8-legacy.diff' # 5.8 additional vmalloc workaround (<450.57)
|
||||
'kernel-5.9.patch' # 5.9 workaround
|
||||
'5.9-gpl.diff' # 5.9 cuda/nvenc workaround
|
||||
)
|
||||
|
||||
msg2 "Selected driver integrity check behavior (md5sum or SKIP): $_md5sum" # If the driver is "known", return md5sum. If it isn't, return SKIP
|
||||
@@ -229,7 +230,8 @@ md5sums=("$_md5sum"
|
||||
'd911a0531c6f270926cacabd1dd80f02'
|
||||
'589dfc0c801605018b7ccd690f06141a'
|
||||
'd67bf0a9aa5c19f07edbaf6bd157d661'
|
||||
'4e418ef3c3da73039830576c6da01725')
|
||||
'888d12b9aea711e6a025835b8ad063e2'
|
||||
'0758046ed7c50463fd0ec378e9e34f95')
|
||||
|
||||
if [ "$_autoaddpatch" = "true" ]; then
|
||||
# Auto-add *.patch files from $startdir to source=()
|
||||
@@ -465,6 +467,12 @@ DEST_MODULE_LOCATION[3]="/kernel/drivers/video"' dkms.conf
|
||||
if (( $(vercmp "$_kernel" "5.9") >= 0 )); then
|
||||
_kernel59="1"
|
||||
_whitelist59=( 450* )
|
||||
if [[ $pkgver = 450* ]] || [[ $pkgver = 455* ]]; then
|
||||
cd "$srcdir"/"$_pkg"/kernel-$_kernel
|
||||
msg2 "Applying 5.9-gpl.diff for $_kernel..."
|
||||
patch -Np2 -i "$srcdir"/5.9-gpl.diff
|
||||
cd ..
|
||||
fi
|
||||
fi
|
||||
|
||||
# Loop patches (linux-4.15.patch, lol.patch, ...)
|
||||
@@ -732,6 +740,10 @@ DEST_MODULE_LOCATION[3]="/kernel/drivers/video"' dkms.conf
|
||||
else
|
||||
msg2 "Skipping kernel-5.9.patch as it doesn't apply to this driver version..."
|
||||
fi
|
||||
if [[ $pkgver = 450* ]] || [[ $pkgver = 455* ]]; then
|
||||
msg2 "Applying 5.9-gpl.diff for dkms..."
|
||||
patch -Np1 -i "$srcdir"/5.9-gpl.diff
|
||||
fi
|
||||
fi
|
||||
|
||||
# Legacy quirks
|
||||
|
34
patches/5.9-gpl.diff
Normal file
34
patches/5.9-gpl.diff
Normal file
@@ -0,0 +1,34 @@
|
||||
diff --git a/kernel-dkms/nvidia-modeset/nvidia-modeset-linux.c b/kernel-dkms/nvidia-modeset/nvidia-modeset-linux.c
|
||||
index ffbbeb9..60c9787 100644
|
||||
--- a/kernel-dkms/nvidia-modeset/nvidia-modeset-linux.c
|
||||
+++ b/kernel-dkms/nvidia-modeset/nvidia-modeset-linux.c
|
||||
@@ -1401,11 +1401,11 @@ restart:
|
||||
|
||||
module_init(nvkms_init);
|
||||
module_exit(nvkms_exit);
|
||||
|
||||
#if defined(MODULE_LICENSE)
|
||||
- MODULE_LICENSE("NVIDIA");
|
||||
+ MODULE_LICENSE("GPL");
|
||||
#endif
|
||||
#if defined(MODULE_INFO)
|
||||
MODULE_INFO(supported, "external");
|
||||
#endif
|
||||
#if defined(MODULE_VERSION)
|
||||
diff --git a/kernel-dkms/nvidia/nv-frontend.c b/kernel-dkms/nvidia/nv-frontend.c
|
||||
index 45d91b3..244a7a8 100644
|
||||
--- a/kernel-dkms/nvidia/nv-frontend.c
|
||||
+++ b/kernel-dkms/nvidia/nv-frontend.c
|
||||
@@ -13,11 +13,11 @@
|
||||
#include "nv-linux.h"
|
||||
#include "nv-reg.h"
|
||||
#include "nv-frontend.h"
|
||||
|
||||
#if defined(MODULE_LICENSE)
|
||||
-MODULE_LICENSE("NVIDIA");
|
||||
+MODULE_LICENSE("GPL");
|
||||
#endif
|
||||
#if defined(MODULE_INFO)
|
||||
MODULE_INFO(supported, "external");
|
||||
#endif
|
||||
#if defined(MODULE_VERSION)
|
@@ -421,37 +421,3 @@ index 424f6e6..ce8114a 100644
|
||||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += ktime_get_raw_ts64
|
||||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += ktime_get_real_ts64
|
||||
|
||||
diff --git a/kernel-dkms/nvidia-modeset/nvidia-modeset-linux.c b/kernel-dkms/nvidia-modeset/nvidia-modeset-linux.c
|
||||
index ffbbeb9..60c9787 100644
|
||||
--- a/kernel-dkms/nvidia-modeset/nvidia-modeset-linux.c
|
||||
+++ b/kernel-dkms/nvidia-modeset/nvidia-modeset-linux.c
|
||||
@@ -1401,11 +1401,11 @@ restart:
|
||||
|
||||
module_init(nvkms_init);
|
||||
module_exit(nvkms_exit);
|
||||
|
||||
#if defined(MODULE_LICENSE)
|
||||
- MODULE_LICENSE("NVIDIA");
|
||||
+ MODULE_LICENSE("GPL");
|
||||
#endif
|
||||
#if defined(MODULE_INFO)
|
||||
MODULE_INFO(supported, "external");
|
||||
#endif
|
||||
#if defined(MODULE_VERSION)
|
||||
diff --git a/kernel-dkms/nvidia/nv-frontend.c b/kernel-dkms/nvidia/nv-frontend.c
|
||||
index 45d91b3..244a7a8 100644
|
||||
--- a/kernel-dkms/nvidia/nv-frontend.c
|
||||
+++ b/kernel-dkms/nvidia/nv-frontend.c
|
||||
@@ -13,11 +13,11 @@
|
||||
#include "nv-linux.h"
|
||||
#include "nv-reg.h"
|
||||
#include "nv-frontend.h"
|
||||
|
||||
#if defined(MODULE_LICENSE)
|
||||
-MODULE_LICENSE("NVIDIA");
|
||||
+MODULE_LICENSE("GPL");
|
||||
#endif
|
||||
#if defined(MODULE_INFO)
|
||||
MODULE_INFO(supported, "external");
|
||||
#endif
|
||||
#if defined(MODULE_VERSION)
|
||||
|
Reference in New Issue
Block a user