mirror of
https://github.com/archlinux/aur.git
synced 2026-03-14 23:16:48 +01:00
linux-5.14.patch from Stefan Dirsch via OpenSUSE
This commit is contained in:
parent
d3098090fe
commit
77894ec993
5 changed files with 92 additions and 167 deletions
8
.SRCINFO
8
.SRCINFO
|
|
@ -1,6 +1,6 @@
|
|||
pkgbase = nvidia-390xx-utils
|
||||
pkgver = 390.144
|
||||
pkgrel = 1
|
||||
pkgrel = 2
|
||||
url = https://www.nvidia.com/
|
||||
arch = x86_64
|
||||
license = custom
|
||||
|
|
@ -8,15 +8,13 @@ pkgbase = nvidia-390xx-utils
|
|||
source = nvidia-drm-outputclass.conf
|
||||
source = nvidia-390xx-utils.sysusers
|
||||
source = https://us.download.nvidia.com/XFree86/Linux-x86_64/390.144/NVIDIA-Linux-x86_64-390.144-no-compat32.run
|
||||
source = kernel-5.14.patch
|
||||
source = kernel-4.16.patch
|
||||
source = kernel-5.12.patch
|
||||
source = kernel-5.13.patch
|
||||
b2sums = 8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1aa5c66b8d033fc9d5e0cfffed456a87298bd93a3afbbc30b8dc48c4e9
|
||||
b2sums = c1da4ce5784e43385465913a95053a3e54f800aac6f1b49f33e2a77504d76da5e6db6ec7074fbe7ba5f52dcef9e1ebaa620942c33ff825a56caba5c9c8b0d1be
|
||||
b2sums = 093d3f4779a904a9bbbc0d10e1c2b150665d6515bc9bba9fdaeb06c09be4f1029aa742058635f9309d4dca7f5e8e3fcdbe49f74ed6035075315ed3555b648404
|
||||
b2sums = 6aa23c223bf46c1fb792574489c169b0a2855c812bed10021d2bb2adedd8c8d82f5ce36402b10782a515457307ec6d434a1af7d1d9ae7c9765aab4a8f127f0f9
|
||||
b2sums = a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05
|
||||
b2sums = 7db8a62a47e382445e1e61c6e1f58c4641df60b642ec5662e5b094510873d94f1c73b3801c81c26c1f110cff92cf5af882fd95d8f759df8c159769b76906e642
|
||||
b2sums = f2d37280bd336dbbf223e71e7bb376aefad70a1e5c389bceb61424b69ed76cdb2c5657fbb384d63219ecdeb5cbef374bd6772719cc9e4f304d6760054a3935f5
|
||||
|
||||
pkgname = nvidia-390xx-utils
|
||||
pkgdesc = NVIDIA drivers utilities
|
||||
|
|
|
|||
8
PKGBUILD
8
PKGBUILD
|
|
@ -7,7 +7,7 @@
|
|||
pkgbase=nvidia-390xx-utils
|
||||
pkgname=('nvidia-390xx-utils' 'opencl-nvidia-390xx' 'nvidia-390xx-dkms')
|
||||
pkgver=390.144
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
arch=('x86_64')
|
||||
url="https://www.nvidia.com/"
|
||||
license=('custom')
|
||||
|
|
@ -16,10 +16,12 @@ _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
|
|||
source=('nvidia-drm-outputclass.conf'
|
||||
'nvidia-390xx-utils.sysusers'
|
||||
"https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run"
|
||||
kernel-5.14.patch
|
||||
kernel-4.16.patch)
|
||||
b2sums=('8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1aa5c66b8d033fc9d5e0cfffed456a87298bd93a3afbbc30b8dc48c4e9'
|
||||
'c1da4ce5784e43385465913a95053a3e54f800aac6f1b49f33e2a77504d76da5e6db6ec7074fbe7ba5f52dcef9e1ebaa620942c33ff825a56caba5c9c8b0d1be'
|
||||
'093d3f4779a904a9bbbc0d10e1c2b150665d6515bc9bba9fdaeb06c09be4f1029aa742058635f9309d4dca7f5e8e3fcdbe49f74ed6035075315ed3555b648404'
|
||||
'6aa23c223bf46c1fb792574489c169b0a2855c812bed10021d2bb2adedd8c8d82f5ce36402b10782a515457307ec6d434a1af7d1d9ae7c9765aab4a8f127f0f9'
|
||||
'a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05')
|
||||
|
||||
create_links() {
|
||||
|
|
@ -43,6 +45,10 @@ prepare() {
|
|||
# From loqs via https://bugs.archlinux.org/task/58074
|
||||
patch -Np1 -i ../kernel-4.16.patch
|
||||
|
||||
# From Stefan Dirsch
|
||||
# https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.14.patch?rev=233
|
||||
patch -Np1 -i ../kernel-5.14.patch
|
||||
|
||||
cd kernel
|
||||
sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf
|
||||
sed -i 's/__JOBS/`nproc`/' dkms.conf
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
Taken from https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.12.patch
|
||||
Credit to Larry Finger <Larry.Finger@lwfinger.net>
|
||||
390.143 refresh and version check by JF
|
||||
|
||||
Index: NVIDIA-Linux-x86_64-390.143-no-compat32/kernel/nvidia-drm/nvidia-drm-drv.c
|
||||
===================================================================
|
||||
--- NVIDIA-Linux-x86_64-390.143-no-compat32.orig/kernel/nvidia-drm/nvidia-drm-drv.c
|
||||
+++ NVIDIA-Linux-x86_64-390.143-no-compat32/kernel/nvidia-drm/nvidia-drm-drv.c
|
||||
@@ -20,6 +20,8 @@
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
#include "nvidia-drm-conftest.h" /* NV_DRM_AVAILABLE and NV_DRM_DRM_GEM_H_PRESENT */
|
||||
|
||||
#include "nvidia-drm-priv.h"
|
||||
@@ -737,6 +737,17 @@ static struct drm_driver nv_drm_driver =
|
||||
#endif
|
||||
};
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0)
|
||||
+/* Starting with kernel 5.12, drm_gem_dumb_destroy() is no longer exported.
|
||||
+ * For that reason, we need to supply a replacement version.
|
||||
+ */
|
||||
+int replace_dumb_destroy(struct drm_file *file,
|
||||
+ struct drm_device *dev,
|
||||
+ u32 handle)
|
||||
+{
|
||||
+ return drm_gem_handle_delete(file, handle);
|
||||
+}
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Update the global nv_drm_driver for the intended features.
|
||||
@@ -760,7 +767,11 @@ static void nv_drm_update_drm_driver_fea
|
||||
|
||||
nv_drm_driver.dumb_create = nv_drm_dumb_create;
|
||||
nv_drm_driver.dumb_map_offset = nv_drm_dumb_map_offset;
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 12, 0)
|
||||
nv_drm_driver.dumb_destroy = nv_drm_dumb_destroy;
|
||||
+#else
|
||||
+ nv_drm_driver.dumb_destroy = replace_dumb_destroy;
|
||||
+#endif
|
||||
|
||||
#if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_CALLBACKS)
|
||||
nv_drm_driver.gem_vm_ops = &nv_drm_gem_vma_ops;
|
||||
|
|
@ -1,114 +0,0 @@
|
|||
From 69cc75c9918dbb7d50670f1379021229fb159a34 Mon Sep 17 00:00:00 2001
|
||||
From: Alberto Milone <alberto.milone@canonical.com>
|
||||
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 <drm/drm_modeset_helper_vtables.h>
|
||||
+ #include <drm/drm_crtc_helper.h>
|
||||
+ #include <drm/drm_plane_helper.h>
|
||||
+ #include <drm/drm_atomic.h>
|
||||
+ #include <drm/drm_atomic_helper.h>
|
||||
+ 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
|
||||
|
||||
82
kernel-5.14.patch
Normal file
82
kernel-5.14.patch
Normal file
|
|
@ -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
|
||||
Loading…
Add table
Reference in a new issue