diff --git a/.SRCINFO b/.SRCINFO index f8b2824902526..edcbf30b3bcae 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,6 +1,6 @@ pkgbase = nvidia-390xx-utils pkgver = 390.143 - pkgrel = 3 + pkgrel = 4 url = https://www.nvidia.com/ arch = x86_64 license = custom @@ -10,11 +10,13 @@ pkgbase = nvidia-390xx-utils source = https://us.download.nvidia.com/XFree86/Linux-x86_64/390.143/NVIDIA-Linux-x86_64-390.143-no-compat32.run source = kernel-4.16.patch source = kernel-5.12.patch + source = kernel-5.13.patch b2sums = 8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1aa5c66b8d033fc9d5e0cfffed456a87298bd93a3afbbc30b8dc48c4e9 b2sums = c1da4ce5784e43385465913a95053a3e54f800aac6f1b49f33e2a77504d76da5e6db6ec7074fbe7ba5f52dcef9e1ebaa620942c33ff825a56caba5c9c8b0d1be b2sums = d1871a27b1df73b4daea26f45c5cc33fa7582dea538ac2acfbb5ed23c0254fe5261d6be60cdb7ce8643ee77b0259195acb2ba2a3784b74c404e79d960005b83d b2sums = a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05 b2sums = 7db8a62a47e382445e1e61c6e1f58c4641df60b642ec5662e5b094510873d94f1c73b3801c81c26c1f110cff92cf5af882fd95d8f759df8c159769b76906e642 + b2sums = f2d37280bd336dbbf223e71e7bb376aefad70a1e5c389bceb61424b69ed76cdb2c5657fbb384d63219ecdeb5cbef374bd6772719cc9e4f304d6760054a3935f5 pkgname = nvidia-390xx-utils pkgdesc = NVIDIA drivers utilities @@ -49,4 +51,3 @@ pkgname = nvidia-390xx-dkms depends = nvidia-390xx-utils=390.143 depends = libglvnd provides = NVIDIA-MODULE - diff --git a/PKGBUILD b/PKGBUILD index 93249300115d7..8d0ac4d05ff08 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -7,7 +7,7 @@ pkgbase=nvidia-390xx-utils pkgname=('nvidia-390xx-utils' 'opencl-nvidia-390xx' 'nvidia-390xx-dkms') pkgver=390.143 -pkgrel=3 +pkgrel=4 arch=('x86_64') url="https://www.nvidia.com/" license=('custom') @@ -17,12 +17,14 @@ source=('nvidia-drm-outputclass.conf' 'nvidia-390xx-utils.sysusers' "https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run" kernel-4.16.patch - kernel-5.12.patch) + kernel-5.12.patch + kernel-5.13.patch) b2sums=('8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1aa5c66b8d033fc9d5e0cfffed456a87298bd93a3afbbc30b8dc48c4e9' 'c1da4ce5784e43385465913a95053a3e54f800aac6f1b49f33e2a77504d76da5e6db6ec7074fbe7ba5f52dcef9e1ebaa620942c33ff825a56caba5c9c8b0d1be' 'd1871a27b1df73b4daea26f45c5cc33fa7582dea538ac2acfbb5ed23c0254fe5261d6be60cdb7ce8643ee77b0259195acb2ba2a3784b74c404e79d960005b83d' 'a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05' - '7db8a62a47e382445e1e61c6e1f58c4641df60b642ec5662e5b094510873d94f1c73b3801c81c26c1f110cff92cf5af882fd95d8f759df8c159769b76906e642') + '7db8a62a47e382445e1e61c6e1f58c4641df60b642ec5662e5b094510873d94f1c73b3801c81c26c1f110cff92cf5af882fd95d8f759df8c159769b76906e642' + 'f2d37280bd336dbbf223e71e7bb376aefad70a1e5c389bceb61424b69ed76cdb2c5657fbb384d63219ecdeb5cbef374bd6772719cc9e4f304d6760054a3935f5') create_links() { # create soname links @@ -49,6 +51,10 @@ prepare() { # https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.12.patch?expand=1 patch -Np1 -i ../kernel-5.12.patch + # From Alberto Milone, adapted by JF + # http://launchpadlibrarian.net/540714527/nvidia-graphics-drivers-390_390.143-0ubuntu1_390.143-0ubuntu2.diff.gz + patch -Np1 -i ../kernel-5.13.patch + cd kernel sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf sed -i 's/__JOBS/`nproc`/' dkms.conf diff --git a/kernel-5.13.patch b/kernel-5.13.patch new file mode 100644 index 0000000000000..db3e4cc2ec548 --- /dev/null +++ b/kernel-5.13.patch @@ -0,0 +1,114 @@ +From 69cc75c9918dbb7d50670f1379021229fb159a34 Mon Sep 17 00:00:00 2001 +From: Alberto Milone +Date: Wed, 26 May 2021 12:47:54 +0200 +Subject: [PATCH 1/1] Add support for Linux 5.13 + +--- + conftest.sh | 32 ++++++++++++++++++++++++++++++++ + nvidia-drm/nvidia-drm-crtc.c | 16 ++++++++++++++++ + nvidia-drm/nvidia-drm.Kbuild | 1 + + 3 files changed, 49 insertions(+) + +diff --git a/kernel/conftest.sh b/kernel/conftest.sh +index 4b6a9ed..25a8afa 100755 +--- a/kernel/conftest.sh ++++ b/kernel/conftest.sh +@@ -4426,6 +4426,38 @@ compile_test() { + fi + ;; + ++ drm_plane_atomic_update_has_atomic_state_arg) ++ # ++ # Determine if drm_plane_helper_funcs::atomic_update takes 'state' ++ # argument of 'struct drm_atomic_state' type. ++ # ++ # The commit 977697e20b3d ("drm/atomic: Pass the full state to ++ # planes atomic disable and update") passed the full atomic state to ++ # drm_crtc_helper_funcs::atomic_update() and atomic_disable(). ++ # ++ echo "$CONFTEST_PREAMBLE ++ #include ++ #include ++ #include ++ #include ++ #include ++ void conftest_drm_plane_helper_atomic_update_has_atomic_state_arg( ++ struct drm_plane *plane, struct drm_atomic_state *state) { ++ const struct drm_plane_helper_funcs *funcs = plane->helper_private; ++ funcs->atomic_update(plane, state); ++ }" > conftest$$.c ++ ++ $CC $CFLAGS -Werror=incompatible-pointer-types -c conftest$$.c > /dev/null 2>&1 ++ rm -f conftest$$.c ++ ++ if [ -f conftest$$.o ]; then ++ rm -f conftest$$.o ++ echo "#define NV_DRM_PLANE_ATOMIC_UPDATE_HAS_ATOMIC_STATE_ARG" | append_conftest "types" ++ else ++ echo "#undef NV_DRM_PLANE_ATOMIC_UPDATE_HAS_ATOMIC_STATE_ARG" | append_conftest "types" ++ fi ++ ;; ++ + drm_gem_object_vmap_has_map_arg) + # + # Determine if drm_gem_object_funcs::vmap takes 'map' +diff --git a/kernel/nvidia-drm/nvidia-drm-crtc.c b/kernel/nvidia-drm/nvidia-drm-crtc.c +index 8abd1f3..d5e5cfd 100644 +--- a/kernel/nvidia-drm/nvidia-drm-crtc.c ++++ b/kernel/nvidia-drm/nvidia-drm-crtc.c +@@ -131,13 +131,21 @@ plane_req_config_update(struct drm_plane_state *plane_state, + } + + static int nv_drm_plane_atomic_check(struct drm_plane *plane, ++#if defined(NV_DRM_PLANE_ATOMIC_UPDATE_HAS_ATOMIC_STATE_ARG) ++ struct drm_atomic_state *state) ++#else + struct drm_plane_state *plane_state) ++#endif + { + int i; + struct drm_crtc *crtc; + struct drm_crtc_state *crtc_state; + NvKmsKapiPlaneType type; + ++#if defined(NV_DRM_PLANE_ATOMIC_UPDATE_HAS_ATOMIC_STATE_ARG) ++ struct drm_plane_state *plane_state = drm_atomic_get_new_plane_state(state, ++ plane); ++#endif + if (NV_DRM_WARN(!drm_plane_type_to_nvkms_plane_type(plane->type, &type))) { + goto done; + } +@@ -166,12 +174,20 @@ done: + } + + static void nv_drm_plane_atomic_update(struct drm_plane *plane, ++#if defined(NV_DRM_PLANE_ATOMIC_UPDATE_HAS_ATOMIC_STATE_ARG) ++ struct drm_atomic_state *old_state) ++#else + struct drm_plane_state *old_state) ++#endif + { + } + + static void nv_drm_plane_atomic_disable(struct drm_plane *plane, ++#if defined(NV_DRM_PLANE_ATOMIC_UPDATE_HAS_ATOMIC_STATE_ARG) ++ struct drm_atomic_state *old_state) ++#else + struct drm_plane_state *old_state) ++#endif + { + } + +diff --git a/kernel/nvidia-drm/nvidia-drm.Kbuild b/kernel/nvidia-drm/nvidia-drm.Kbuild +index 885ab49..2cb0f9f 100644 +--- a/kernel/nvidia-drm/nvidia-drm.Kbuild ++++ b/kernel/nvidia-drm/nvidia-drm.Kbuild +@@ -100,4 +100,5 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_gem_free_object + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_prime_pages_to_sg_has_drm_device_arg + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_gem_prime_callbacks + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_crtc_atomic_check_has_atomic_state_arg ++NV_CONFTEST_TYPE_COMPILE_TESTS += drm_plane_atomic_update_has_atomic_state_arg + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_gem_object_vmap_has_map_arg +-- +2.30.2 +