summaryrefslogtreecommitdiff
path: root/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.14.patch
blob: a4242ec77f93a945f5084aa81852032ce3ec1db9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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