]>
Commit | Line | Data |
---|---|---|
1 | diff --git a/.manifest b/.manifest | |
2 | index a53265d..bc46234 100644 | |
3 | --- a/.manifest | |
4 | +++ b/.manifest | |
5 | @@ -36,6 +36,7 @@ kernel/nvidia/nv-rsync.c 0644 KERNEL_MODULE_SRC INHERIT_PATH_DEPTH:1 MODULE:resm | |
6 | kernel/nvidia/nv-msi.c 0644 KERNEL_MODULE_SRC INHERIT_PATH_DEPTH:1 MODULE:resman | |
7 | kernel/conftest.sh 0644 KERNEL_MODULE_SRC INHERIT_PATH_DEPTH:1 MODULE:resman | |
8 | kernel/common/inc/nv.h 0644 KERNEL_MODULE_SRC INHERIT_PATH_DEPTH:1 MODULE:resman | |
9 | +kernel/common/inc/nv-drm.h 0644 KERNEL_MODULE_SRC INHERIT_PATH_DEPTH:1 MODULE:resman | |
10 | kernel/common/inc/nv-pci.h 0644 KERNEL_MODULE_SRC INHERIT_PATH_DEPTH:1 MODULE:resman | |
11 | kernel/common/inc/nv-pgprot.h 0644 KERNEL_MODULE_SRC INHERIT_PATH_DEPTH:1 MODULE:resman | |
12 | kernel/common/inc/nv-mm.h 0644 KERNEL_MODULE_SRC INHERIT_PATH_DEPTH:1 MODULE:resman | |
13 | diff --git a/kernel/common/inc/nv-drm.h b/kernel/common/inc/nv-drm.h | |
14 | new file mode 100644 | |
15 | index 0000000..07e9f3c | |
16 | --- /dev/null | |
17 | +++ b/kernel/common/inc/nv-drm.h | |
18 | @@ -0,0 +1,36 @@ | |
19 | +#ifndef _NV_DRM_H_ | |
20 | +#define _NV_DRM_H_ | |
21 | + | |
22 | +#include "conftest.h" | |
23 | + | |
24 | +#if defined(NV_DRM_DRMP_H_PRESENT) | |
25 | +#include <drm/drmP.h> | |
26 | +#else | |
27 | +#include <linux/agp_backend.h> | |
28 | +#include <linux/file.h> | |
29 | +#include <linux/init.h> | |
30 | +#include <linux/jiffies.h> | |
31 | +#include <linux/kernel.h> | |
32 | +#include <linux/mutex.h> | |
33 | +#include <linux/slab.h> | |
34 | +#include <linux/types.h> | |
35 | +#include <asm/pgalloc.h> | |
36 | +#include <linux/uaccess.h> | |
37 | + | |
38 | +#include <uapi/drm/drm.h> | |
39 | +#include <uapi/drm/drm_mode.h> | |
40 | + | |
41 | +#include <drm/drm_agpsupport.h> | |
42 | +#include <drm/drm_crtc.h> | |
43 | +#include <drm/drm_drv.h> | |
44 | +#include <drm/drm_prime.h> | |
45 | +#include <drm/drm_pci.h> | |
46 | +#include <drm/drm_ioctl.h> | |
47 | +#include <drm/drm_sysfs.h> | |
48 | +#include <drm/drm_vblank.h> | |
49 | +#include <drm/drm_device.h> | |
50 | + | |
51 | +#include <drm/drm_gem.h> | |
52 | +#endif | |
53 | + | |
54 | +#endif | |
55 | diff --git a/kernel/conftest.sh b/kernel/conftest.sh | |
56 | index c9c2db3..dd22bb0 100755 | |
57 | --- a/kernel/conftest.sh | |
58 | +++ b/kernel/conftest.sh | |
59 | @@ -1150,6 +1150,9 @@ compile_test() { | |
60 | CODE=" | |
61 | #if defined(NV_DRM_DRMP_H_PRESENT) | |
62 | #include <drm/drmP.h> | |
63 | + #else | |
64 | + #include <drm/drm_drv.h> | |
65 | + #include <drm/drm_prime.h> | |
66 | #endif | |
67 | #if !defined(CONFIG_DRM) && !defined(CONFIG_DRM_MODULE) | |
68 | #error DRM not enabled | |
69 | @@ -1781,6 +1784,8 @@ compile_test() { | |
70 | echo "$CONFTEST_PREAMBLE | |
71 | #if defined(NV_DRM_DRMP_H_PRESENT) | |
72 | #include <drm/drmP.h> | |
73 | + #else | |
74 | + #include <drm/drm_drv.h> | |
75 | #endif | |
76 | #include <drm/drm_atomic.h> | |
77 | #if !defined(CONFIG_DRM) && !defined(CONFIG_DRM_MODULE) | |
78 | @@ -1909,7 +1914,11 @@ compile_test() { | |
79 | # attached drivers") in v3.14 (2013-12-11) | |
80 | # | |
81 | CODE=" | |
82 | + #if defined(NV_DRM_DRMP_H_PRESENT) | |
83 | #include <drm/drmP.h> | |
84 | + #else | |
85 | + #include <drm/drm_drv.h> | |
86 | + #endif | |
87 | int conftest_drm_driver_has_legacy_dev_list(void) { | |
88 | return offsetof(struct drm_driver, legacy_dev_list); | |
89 | }" | |
90 | @@ -1933,7 +1942,11 @@ compile_test() { | |
91 | # 2017-07-23 e6fc3b68558e4c6d8d160b5daf2511b99afa8814 | |
92 | # | |
93 | CODE=" | |
94 | + #if defined(NV_DRM_DRMP_H_PRESENT) | |
95 | #include <drm/drmP.h> | |
96 | + #else | |
97 | + #include <drm/drm_crtc.h> | |
98 | + #endif | |
99 | ||
100 | int conftest_drm_crtc_init_with_planes_has_name_arg(void) { | |
101 | return | |
102 | @@ -1949,7 +1962,11 @@ compile_test() { | |
103 | compile_check_conftest "$CODE" "NV_DRM_CRTC_INIT_WITH_PLANES_HAS_NAME_ARG" "" "types" | |
104 | ||
105 | CODE=" | |
106 | + #if defined(NV_DRM_DRMP_H_PRESENT) | |
107 | #include <drm/drmP.h> | |
108 | + #else | |
109 | + #include <drm/drm_encoder.h> | |
110 | + #endif | |
111 | ||
112 | int conftest_drm_encoder_init_has_name_arg(void) { | |
113 | return | |
114 | @@ -1964,7 +1981,11 @@ compile_test() { | |
115 | compile_check_conftest "$CODE" "NV_DRM_ENCODER_INIT_HAS_NAME_ARG" "" "types" | |
116 | ||
117 | echo "$CONFTEST_PREAMBLE | |
118 | + #if defined(NV_DRM_DRMP_H_PRESENT) | |
119 | #include <drm/drmP.h> | |
120 | + #else | |
121 | + #include <drm/drm_plane.h> | |
122 | + #endif | |
123 | ||
124 | int conftest_drm_universal_plane_init_has_format_modifiers_arg(void) { | |
125 | return | |
126 | @@ -1991,7 +2012,11 @@ compile_test() { | |
127 | echo "#undef NV_DRM_UNIVERSAL_PLANE_INIT_HAS_FORMAT_MODIFIERS_ARG" | append_conftest "types" | |
128 | ||
129 | echo "$CONFTEST_PREAMBLE | |
130 | + #if defined(NV_DRM_DRMP_H_PRESENT) | |
131 | #include <drm/drmP.h> | |
132 | + #else | |
133 | + #include <drm/drm_plane.h> | |
134 | + #endif | |
135 | ||
136 | int conftest_drm_universal_plane_init_has_name_arg(void) { | |
137 | return | |
138 | @@ -3084,7 +3109,9 @@ compile_test() { | |
139 | # drm_framebuffer_{get,put}()") in v4.12 (2017-02-28). | |
140 | # | |
141 | CODE=" | |
142 | + #if defined(NV_DRM_DRMP_H_PRESENT) | |
143 | #include <drm/drmP.h> | |
144 | + #endif | |
145 | #if defined(NV_DRM_DRM_FRAMEBUFFER_H_PRESENT) | |
146 | #include <drm/drm_framebuffer.h> | |
147 | #endif | |
148 | @@ -3103,7 +3130,9 @@ compile_test() { | |
149 | # drm_gem_object_{get,put}()") in v4.12 (2017-02-28). | |
150 | # | |
151 | CODE=" | |
152 | + #if defined(NV_DRM_DRMP_H_PRESENT) | |
153 | #include <drm/drmP.h> | |
154 | + #endif | |
155 | #if defined(NV_DRM_DRM_GEM_H_PRESENT) | |
156 | #include <drm/drm_gem.h> | |
157 | #endif | |
158 | @@ -3122,7 +3151,9 @@ compile_test() { | |
159 | # functions") in v4.15 (2017-09-26). | |
160 | # | |
161 | CODE=" | |
162 | + #if defined(NV_DRM_DRMP_H_PRESENT) | |
163 | #include <drm/drmP.h> | |
164 | + #endif | |
165 | #if defined(NV_DRM_DRM_DRV_H_PRESENT) | |
166 | #include <drm/drm_drv.h> | |
167 | #endif | |
168 | diff --git a/kernel/nvidia-drm/nvidia-drm-connector.c b/kernel/nvidia-drm/nvidia-drm-connector.c | |
169 | index 1553ebc..f851561 100644 | |
170 | --- a/kernel/nvidia-drm/nvidia-drm-connector.c | |
171 | +++ b/kernel/nvidia-drm/nvidia-drm-connector.c | |
172 | @@ -20,6 +20,8 @@ | |
173 | * DEALINGS IN THE SOFTWARE. | |
174 | */ | |
175 | ||
176 | +#include <linux/version.h> | |
177 | + | |
178 | #include "nvidia-drm-conftest.h" /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ | |
179 | ||
180 | #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) | |
181 | @@ -71,7 +73,11 @@ static enum drm_connector_status __nv_drm_connector_detect_internal( | |
182 | struct nv_drm_encoder *nv_detected_encoder = NULL; | |
183 | ||
184 | struct NvKmsKapiDynamicDisplayParams *pDetectParams = NULL; | |
185 | +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 0) | |
186 | unsigned int i; | |
187 | +#else | |
188 | + struct drm_encoder *encoder = NULL; | |
189 | +#endif | |
190 | ||
191 | BUG_ON(!mutex_is_locked(&dev->mode_config.mutex)); | |
192 | ||
193 | @@ -87,11 +93,16 @@ static enum drm_connector_status __nv_drm_connector_detect_internal( | |
194 | goto done; | |
195 | } | |
196 | ||
197 | +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 0) | |
198 | for (i = 0; | |
199 | i < DRM_CONNECTOR_MAX_ENCODER && detected_encoder == NULL; i++) { | |
200 | struct drm_encoder *encoder; | |
201 | +#else | |
202 | + drm_connector_for_each_possible_encoder(connector, encoder) { | |
203 | +#endif | |
204 | struct nv_drm_encoder *nv_encoder; | |
205 | ||
206 | +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 5, 0) | |
207 | if (connector->encoder_ids[i] == 0) { | |
208 | break; | |
209 | } | |
210 | @@ -102,6 +113,7 @@ static enum drm_connector_status __nv_drm_connector_detect_internal( | |
211 | BUG_ON(encoder != NULL); | |
212 | continue; | |
213 | } | |
214 | +#endif | |
215 | ||
216 | /* | |
217 | * DVI-I connectors can drive both digital and analog | |
218 | @@ -169,6 +181,8 @@ static enum drm_connector_status __nv_drm_connector_detect_internal( | |
219 | } | |
220 | ||
221 | detected_encoder = encoder; | |
222 | + | |
223 | + break; | |
224 | } | |
225 | } | |
226 | ||
227 | diff --git a/kernel/nvidia-drm/nvidia-drm-connector.h b/kernel/nvidia-drm/nvidia-drm-connector.h | |
228 | index f74e22c..099390d 100644 | |
229 | --- a/kernel/nvidia-drm/nvidia-drm-connector.h | |
230 | +++ b/kernel/nvidia-drm/nvidia-drm-connector.h | |
231 | @@ -27,7 +27,7 @@ | |
232 | ||
233 | #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) | |
234 | ||
235 | -#include <drm/drmP.h> | |
236 | +#include "nv-drm.h" | |
237 | ||
238 | #include "nvtypes.h" | |
239 | #include "nvkms-api-types.h" | |
240 | diff --git a/kernel/nvidia-drm/nvidia-drm-crtc.h b/kernel/nvidia-drm/nvidia-drm-crtc.h | |
241 | index 31ef3b5..5de3a51 100644 | |
242 | --- a/kernel/nvidia-drm/nvidia-drm-crtc.h | |
243 | +++ b/kernel/nvidia-drm/nvidia-drm-crtc.h | |
244 | @@ -29,7 +29,7 @@ | |
245 | ||
246 | #include "nvidia-drm-helper.h" | |
247 | ||
248 | -#include <drm/drmP.h> | |
249 | +#include "nv-drm.h" | |
250 | #include "nvtypes.h" | |
251 | #include "nvkms-kapi.h" | |
252 | ||
253 | diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c | |
254 | index a66d3cc..06bf859 100644 | |
255 | --- a/kernel/nvidia-drm/nvidia-drm-drv.c | |
256 | +++ b/kernel/nvidia-drm/nvidia-drm-drv.c | |
257 | @@ -39,7 +39,7 @@ | |
258 | ||
259 | #include "nvidia-drm-ioctl.h" | |
260 | ||
261 | -#include <drm/drmP.h> | |
262 | +#include "nv-drm.h" | |
263 | ||
264 | /* | |
265 | * Commit fcd70cd36b9b ("drm: Split out drm_probe_helper.h") | |
266 | diff --git a/kernel/nvidia-drm/nvidia-drm-encoder.h b/kernel/nvidia-drm/nvidia-drm-encoder.h | |
267 | index bbaf986..af341a8 100644 | |
268 | --- a/kernel/nvidia-drm/nvidia-drm-encoder.h | |
269 | +++ b/kernel/nvidia-drm/nvidia-drm-encoder.h | |
270 | @@ -32,7 +32,7 @@ | |
271 | #if defined(NV_DRM_DRM_ENCODER_H_PRESENT) | |
272 | #include <drm/drm_encoder.h> | |
273 | #else | |
274 | -#include <drm/drmP.h> | |
275 | +#include "nv-drm.h" | |
276 | #endif | |
277 | ||
278 | #include "nvkms-kapi.h" | |
279 | diff --git a/kernel/nvidia-drm/nvidia-drm-fb.h b/kernel/nvidia-drm/nvidia-drm-fb.h | |
280 | index 7f292ce..d13bc4c 100644 | |
281 | --- a/kernel/nvidia-drm/nvidia-drm-fb.h | |
282 | +++ b/kernel/nvidia-drm/nvidia-drm-fb.h | |
283 | @@ -27,7 +27,7 @@ | |
284 | ||
285 | #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) | |
286 | ||
287 | -#include <drm/drmP.h> | |
288 | +#include "nv-drm.h" | |
289 | #include "nvidia-drm-gem-nvkms-memory.h" | |
290 | #include "nvkms-kapi.h" | |
291 | ||
292 | diff --git a/kernel/nvidia-drm/nvidia-drm-gem.h b/kernel/nvidia-drm/nvidia-drm-gem.h | |
293 | index b621969..326f810 100644 | |
294 | --- a/kernel/nvidia-drm/nvidia-drm-gem.h | |
295 | +++ b/kernel/nvidia-drm/nvidia-drm-gem.h | |
296 | @@ -29,7 +29,7 @@ | |
297 | ||
298 | #include "nvidia-drm-priv.h" | |
299 | ||
300 | -#include <drm/drmP.h> | |
301 | +#include "nv-drm.h" | |
302 | #include "nvkms-kapi.h" | |
303 | ||
304 | #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ) | |
305 | diff --git a/kernel/nvidia-drm/nvidia-drm-helper.c b/kernel/nvidia-drm/nvidia-drm-helper.c | |
306 | index da602ac..e5d6daa 100644 | |
307 | --- a/kernel/nvidia-drm/nvidia-drm-helper.c | |
308 | +++ b/kernel/nvidia-drm/nvidia-drm-helper.c | |
309 | @@ -31,7 +31,7 @@ | |
310 | ||
311 | #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) | |
312 | ||
313 | -#include <drm/drmP.h> | |
314 | +#include "nv-drm.h" | |
315 | #if defined(NV_DRM_DRM_ATOMIC_UAPI_H_PRESENT) | |
316 | #include <drm/drm_atomic_uapi.h> | |
317 | #endif | |
318 | diff --git a/kernel/nvidia-drm/nvidia-drm-helper.h b/kernel/nvidia-drm/nvidia-drm-helper.h | |
319 | index 8f050d8..71c4b90 100644 | |
320 | --- a/kernel/nvidia-drm/nvidia-drm-helper.h | |
321 | +++ b/kernel/nvidia-drm/nvidia-drm-helper.h | |
322 | @@ -27,7 +27,7 @@ | |
323 | ||
324 | #if defined(NV_DRM_AVAILABLE) | |
325 | ||
326 | -#include <drm/drmP.h> | |
327 | +#include "nv-drm.h" | |
328 | ||
329 | /* | |
330 | * drm_dev_put() is added by commit 9a96f55034e41b4e002b767e9218d55f03bdff7d | |
331 | diff --git a/kernel/nvidia-drm/nvidia-drm-modeset.h b/kernel/nvidia-drm/nvidia-drm-modeset.h | |
332 | index 06659c5..e9d7b70 100644 | |
333 | --- a/kernel/nvidia-drm/nvidia-drm-modeset.h | |
334 | +++ b/kernel/nvidia-drm/nvidia-drm-modeset.h | |
335 | @@ -27,7 +27,7 @@ | |
336 | ||
337 | #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) | |
338 | ||
339 | -#include <drm/drmP.h> | |
340 | +#include "nv-drm.h" | |
341 | ||
342 | struct drm_atomic_state *nv_drm_atomic_state_alloc(struct drm_device *dev); | |
343 | void nv_drm_atomic_state_clear(struct drm_atomic_state *state); | |
344 | diff --git a/kernel/nvidia-drm/nvidia-drm-os-interface.h b/kernel/nvidia-drm/nvidia-drm-os-interface.h | |
345 | index f43f851..7f4ff8b 100644 | |
346 | --- a/kernel/nvidia-drm/nvidia-drm-os-interface.h | |
347 | +++ b/kernel/nvidia-drm/nvidia-drm-os-interface.h | |
348 | @@ -29,7 +29,7 @@ | |
349 | ||
350 | #if defined(NV_DRM_AVAILABLE) | |
351 | ||
352 | -#include <drm/drmP.h> | |
353 | +#include "nv-drm.h" | |
354 | ||
355 | /* Set to true when the atomic modeset feature is enabled. */ | |
356 | extern bool nv_drm_modeset_module_param; | |
357 | diff --git a/kernel/nvidia-drm/nvidia-drm-prime-fence.h b/kernel/nvidia-drm/nvidia-drm-prime-fence.h | |
358 | index 20da923..f3cc2b4 100644 | |
359 | --- a/kernel/nvidia-drm/nvidia-drm-prime-fence.h | |
360 | +++ b/kernel/nvidia-drm/nvidia-drm-prime-fence.h | |
361 | @@ -27,7 +27,7 @@ | |
362 | ||
363 | #if defined(NV_DRM_AVAILABLE) | |
364 | ||
365 | -#include <drm/drmP.h> | |
366 | +#include "nv-drm.h" | |
367 | ||
368 | #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ) | |
369 | ||
370 | diff --git a/kernel/nvidia-drm/nvidia-drm-priv.h b/kernel/nvidia-drm/nvidia-drm-priv.h | |
371 | index 9076835..77a95f3 100644 | |
372 | --- a/kernel/nvidia-drm/nvidia-drm-priv.h | |
373 | +++ b/kernel/nvidia-drm/nvidia-drm-priv.h | |
374 | @@ -27,7 +27,7 @@ | |
375 | ||
376 | #if defined(NV_DRM_AVAILABLE) | |
377 | ||
378 | -#include <drm/drmP.h> | |
379 | +#include "nv-drm.h" | |
380 | ||
381 | #if defined(NV_DRM_DRM_GEM_H_PRESENT) | |
382 | #include <drm/drm_gem.h> | |
383 | diff --git a/kernel/nvidia-drm/nvidia-drm-utils.h b/kernel/nvidia-drm/nvidia-drm-utils.h | |
384 | index 6d24120..95190c4 100644 | |
385 | --- a/kernel/nvidia-drm/nvidia-drm-utils.h | |
386 | +++ b/kernel/nvidia-drm/nvidia-drm-utils.h | |
387 | @@ -27,7 +27,7 @@ | |
388 | ||
389 | #if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) | |
390 | ||
391 | -#include <drm/drmP.h> | |
392 | +#include "nv-drm.h" | |
393 | #include "nvkms-kapi.h" | |
394 | ||
395 | struct NvKmsKapiConnectorInfo* |