summaryrefslogtreecommitdiff
path: root/sys-kernel
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel')
-rw-r--r--sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.14.patch82
-rw-r--r--sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144-r1.ebuild (renamed from sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144.ebuild)1
2 files changed, 83 insertions, 0 deletions
diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.14.patch b/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.14.patch
new file mode 100644
index 00000000..a4242ec7
--- /dev/null
+++ b/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.14.patch
@@ -0,0 +1,82 @@
+Taken from https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.14.patch?rev=233
+Credit to Stefan Dirsch <sndirsch@suse.com>
+
+diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/conftest.sh NVIDIA-Linux-x86_64-390.144/kernel/conftest.sh
+--- NVIDIA-Linux-x86_64-390.144/kernel.orig/conftest.sh 2021-08-31 16:58:57.799629833 +0200
++++ NVIDIA-Linux-x86_64-390.144/kernel/conftest.sh 2021-08-31 18:00:09.257825534 +0200
+@@ -4493,6 +4493,30 @@ compile_test() {
+ fi
+ ;;
+
++ drm_device_has_pdev)
++ #
++ # Determine if the 'drm_device' structure has a 'pdev' field.
++ #
++ # Removed by commit b347e04452ff ("drm: Remove pdev field from
++ # struct drm_device") in v5.14-rc1.
++ #
++ CODE="
++ #if defined(NV_DRM_DRMP_H_PRESENT)
++ #include <drm/drmP.h>
++ #endif
++
++ #if defined(NV_DRM_DRM_DEVICE_H_PRESENT)
++ #include <drm/drm_device.h>
++ #endif
++
++ int conftest_drm_device_has_pdev(void) {
++ return offsetof(struct drm_device, pdev);
++ }"
++
++ compile_check_conftest "$CODE" "NV_DRM_DEVICE_HAS_PDEV" "" "types"
++ ;;
++
++
+ esac
+ }
+
+diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/nvlink_linux.c NVIDIA-Linux-x86_64-390.144/kernel/nvidia/nvlink_linux.c
+--- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/nvlink_linux.c 2021-08-31 16:58:57.787629590 +0200
++++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia/nvlink_linux.c 2021-08-31 17:51:49.207744327 +0200
+@@ -597,7 +597,7 @@ void NVLINK_API_CALL nvlink_sleep(unsign
+ // the requested timeout has expired, loop until less
+ // than a jiffie of the desired delay remains.
+ //
+- current->state = TASK_INTERRUPTIBLE;
++ set_current_state(TASK_INTERRUPTIBLE);
+ do
+ {
+ schedule_timeout(jiffies);
+diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/os-interface.c NVIDIA-Linux-x86_64-390.144/kernel/nvidia/os-interface.c
+--- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/os-interface.c 2021-08-31 16:58:57.787629590 +0200
++++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia/os-interface.c 2021-08-31 17:51:58.043922420 +0200
+@@ -580,7 +580,7 @@ NV_STATUS NV_API_CALL os_delay(NvU32 Mil
+ // the requested timeout has expired, loop until less
+ // than a jiffie of the desired delay remains.
+ //
+- current->state = TASK_INTERRUPTIBLE;
++ set_current_state(TASK_INTERRUPTIBLE);
+ do
+ {
+ schedule_timeout(jiffies);
+diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm-drv.c NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm-drv.c
+--- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm-drv.c 2021-08-31 16:58:57.783629508 +0200
++++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm-drv.c 2021-08-31 17:56:41.345633279 +0200
+@@ -811,7 +811,9 @@ static void nv_drm_register_drm_device(c
+
+ dev->dev_private = nv_dev;
+ nv_dev->dev = dev;
++#if defined(NV_DRM_DEVICE_HAS_PDEV)
+ dev->pdev = pdev;
++#endif
+
+ /* Register DRM device to DRM sub-system */
+
+diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm.Kbuild NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm.Kbuild
+--- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm.Kbuild 2021-08-31 16:58:57.783629508 +0200
++++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm.Kbuild 2021-08-31 17:53:18.265539346 +0200
+@@ -102,3 +102,4 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_dr
+ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_crtc_atomic_check_has_atomic_state_arg
+ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_gem_object_vmap_has_map_arg
+ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_plane_atomic_check_has_atomic_state_arg
++NV_CONFTEST_TYPE_COMPILE_TESTS += drm_device_has_pdev
diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144.ebuild b/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144-r1.ebuild
index e95877a1..c56e28a6 100644
--- a/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144.ebuild
+++ b/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144-r1.ebuild
@@ -24,6 +24,7 @@ RDEPEND="${DEPEND}
PATCHES=(
"${FILESDIR}"/dkms.patch
+ "${FILESDIR}"/kernel-5.14.patch
)
S="${WORKDIR}/${AMD64_NV_PACKAGE}"