summarylogtreecommitdiffstats
path: root/4.15-FS57305.patch
blob: 723c9c37836fc490f885eae07247cbf8787f4e09 (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
diff --git a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/conftest.sh b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/conftest.sh
index 292d7da..5f254e1 100755
--- a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/conftest.sh
+++ b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/conftest.sh
@@ -2123,6 +2123,7 @@ compile_test() {
             #endif
             #include <drm/drm_atomic.h>
             #include <drm/drm_atomic_helper.h>
+            #include <linux/version.h>
             #if !defined(CONFIG_DRM) && !defined(CONFIG_DRM_MODULE)
             #error DRM not enabled
             #endif
@@ -2146,8 +2147,12 @@ compile_test() {
                 /* 2014-12-18 88a48e297b3a3bac6022c03babfb038f1a886cea */
                 i = DRIVER_ATOMIC;
 
+                #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
                 /* 2015-04-10 df63b9994eaf942afcdb946d27a28661d7dfbf2a */
                 for_each_crtc_in_state(s, c, cs, i) { }
+                #else
+                for_each_new_crtc_in_state(s, c, cs, i) {}
+                #endif
 
                 /* 2015-05-18 036ef5733ba433760a3512bb5f7a155946e2df05 */
                 a = offsetof(struct drm_mode_config_funcs, atomic_state_alloc);
diff --git a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-connector.c b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-connector.c
index cf16b6f..a66ae5a 100644
--- a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-connector.c
+++ b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-connector.c
@@ -33,6 +33,7 @@
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
+#include <linux/version.h>
 
 static void nv_drm_connector_destroy(struct drm_connector *connector)
 {
@@ -87,7 +88,11 @@ static enum drm_connector_status __nv_drm_connector_detect_internal(
             break;
         }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
         encoder = drm_encoder_find(dev, connector->encoder_ids[i]);
+#else
+        encoder = drm_encoder_find(dev, NULL, connector->encoder_ids[i]);
+#endif
 
         if (encoder == NULL) {
             BUG_ON(encoder != NULL);
diff --git a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-crtc.c b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-crtc.c
index b54128a..d820dc2 100644
--- a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-crtc.c
+++ b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-crtc.c
@@ -37,6 +37,7 @@
 
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
+#include <linux/version.h>
 
 static const u32 nv_default_supported_plane_drm_formats[] = {
     DRM_FORMAT_ARGB1555,
@@ -141,7 +142,11 @@ static int nv_drm_plane_atomic_check(struct drm_plane *plane,
         goto done;
     }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
     for_each_crtc_in_state(plane_state->state, crtc, crtc_state, i) {
+#else
+    for_each_new_crtc_in_state(plane_state->state, crtc, crtc_state, i) {
+#endif
         struct nv_drm_crtc_state *nv_crtc_state = to_nv_crtc_state(crtc_state);
         struct NvKmsKapiHeadRequestedConfig *head_req_config =
             &nv_crtc_state->req_config;
@@ -365,7 +370,11 @@ static int nv_drm_crtc_atomic_check(struct drm_crtc *crtc,
 
         req_config->flags.displaysChanged = NV_TRUE;
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
         for_each_connector_in_state(crtc_state->state,
+#else
+        for_each_new_connector_in_state(crtc_state->state,
+#endif
                                     connector, connector_state, j) {
             if (connector_state->crtc != crtc) {
                 continue;
@@ -613,7 +622,11 @@ int nv_drm_get_crtc_crc32_ioctl(struct drm_device *dev,
         goto done;
     }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
     crtc = drm_crtc_find(dev, params->crtc_id);
+#else
+    crtc = drm_crtc_find(dev, NULL, params->crtc_id);
+#endif
     if (!crtc) {
         ret = -ENOENT;
         goto done;
diff --git a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-modeset.c b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-modeset.c
index da15d89..91f64ea 100644
--- a/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-modeset.c
+++ b/NVIDIA-Linux-x86_64-390.25-no-compat32/kernel/nvidia-drm/nvidia-drm-modeset.c
@@ -33,6 +33,7 @@
 #include <drm/drm_atomic.h>
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_crtc.h>
+#include <linux/version.h>
 
 struct nv_drm_atomic_state {
     struct NvKmsKapiRequestedModeSetConfig config;
@@ -110,7 +111,11 @@ nv_drm_atomic_apply_modeset_config(struct drm_device *dev,
     memset(requested_config, 0, sizeof(*requested_config));
 
     /* Loop over affected crtcs and construct NvKmsKapiRequestedModeSetConfig */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
     for_each_crtc_in_state(state, crtc, crtc_state, i) {
+#else
+    for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
+#endif
         /*
          * When commiting a state, the new state is already stored in
          * crtc->state. When checking a proposed state, the proposed state is
@@ -178,7 +183,11 @@ void nv_drm_atomic_helper_commit_tail(struct drm_atomic_state *state)
          nv_drm_write_combine_flush();
     }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
     for_each_crtc_in_state(state, crtc, crtc_state, i) {
+#else
+    for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
+#endif
         struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
         struct nv_drm_crtc_state *nv_crtc_state = to_nv_crtc_state(crtc->state);
         struct nv_drm_flip *nv_flip = nv_crtc_state->nv_flip;
@@ -282,7 +291,11 @@ static void nv_drm_atomic_commit_task_callback(struct work_struct *work)
             ret);
     }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
     for_each_crtc_in_state(state, crtc, crtc_state, i) {
+#else
+    for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
+#endif
         struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
 
         if (wait_event_timeout(
@@ -351,7 +364,11 @@ static int nv_drm_atomic_commit_internal(
          * condition between two/more nvKms->applyModeSetConfig() on single
          * crtc and generate flip events in correct order.
          */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
         for_each_crtc_in_state(state, crtc, crtc_state, i) {
+#else
+        for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
+#endif
             struct nv_drm_device *nv_dev = to_nv_device(dev);
             struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
 
@@ -372,7 +389,11 @@ static int nv_drm_atomic_commit_internal(
             }
         }
     } else {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
         for_each_crtc_in_state(state, crtc, crtc_state, i) {
+#else
+        for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
+#endif
             struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
 
             if (atomic_read(&nv_crtc->has_pending_commit) ||
@@ -388,7 +409,11 @@ static int nv_drm_atomic_commit_internal(
      * flip events.
      */
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
     for_each_crtc_in_state(state, crtc, crtc_state, i) {
+#else
+    for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
+#endif
         struct nv_drm_crtc *nv_crtc = to_nv_crtc(crtc);
 
         atomic_set(&nv_crtc->has_pending_commit, true);