summaryrefslogtreecommitdiff
path: root/sys-kernel/nvidia-drivers-dkms
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-10-16 18:54:50 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-10-16 18:54:50 +0100
commit08c8d3968b00333f5be61b47e1ce1e562d2fd2e0 (patch)
treea9c599f84f073cb9681042163d63f5ee9de5726c /sys-kernel/nvidia-drivers-dkms
parent6c770dd070f3207e3bb4e7f758a0c59138efe78b (diff)
x11-drivers/nvidia-drivers-dkms (390 && 470) : add kernel 6.0 compat
Diffstat (limited to 'sys-kernel/nvidia-drivers-dkms')
-rw-r--r--sys-kernel/nvidia-drivers-dkms/files/390-kernel6.patch46
-rw-r--r--sys-kernel/nvidia-drivers-dkms/files/470-kernel6.patch60
-rw-r--r--sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-390.154.ebuild1
-rw-r--r--sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r2.ebuild1
4 files changed, 108 insertions, 0 deletions
diff --git a/sys-kernel/nvidia-drivers-dkms/files/390-kernel6.patch b/sys-kernel/nvidia-drivers-dkms/files/390-kernel6.patch
new file mode 100644
index 00000000..a8cf8d7c
--- /dev/null
+++ b/sys-kernel/nvidia-drivers-dkms/files/390-kernel6.patch
@@ -0,0 +1,46 @@
+From 17bed78791d6f311c83ff1794d085b18c9f89730 Mon Sep 17 00:00:00 2001
+From: Joan Bruguera <joanbrugueram@gmail.com>
+Date: Wed, 3 Aug 2022 00:56:57 +0200
+Subject: [PATCH] Tentative fix for NVIDIA 470.141.03 driver for Linux 6.0-rc1
+
+---
+ nvidia-drm/nvidia-drm-helper.c | 5 +++++
+ nvidia/nv-acpi.c | 5 ++++-
+ nvidia/nv.c | 3 ++-
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/nvidia-drm/nvidia-drm-helper.c b/nvidia-drm/nvidia-drm-helper.c
+index 3831180..fa03d51 100644
+--- a/nvidia-drm/nvidia-drm-helper.c
++++ b/nvidia-drm/nvidia-drm-helper.c
+@@ -41,6 +41,11 @@
+ #include <drm/drm_atomic_uapi.h>
+ #endif
+
++// Add header which is no longer indirectly referenced as of Linux 6.0-rc1
++#if defined(NV_DRM_DRM_FRAMEBUFFER_H_PRESENT)
++#include <drm/drm_framebuffer.h>
++#endif
++
+ static void __nv_drm_framebuffer_put(struct drm_framebuffer *fb)
+ {
+ #if defined(NV_DRM_FRAMEBUFFER_GET_PRESENT)
+diff --git a/nvidia/nv-acpi.c b/nvidia/nv-acpi.c
+index 2b7b988..76c36fa 100644
+--- a/nvidia/nv-acpi.c
++++ b/nvidia/nv-acpi.c
+@@ -16,7 +16,10 @@
+
+ #include <linux/acpi.h>
+
+-#if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED)
++#include <linux/version.h>
++// Rel.commit "ACPI: bus: Drop unused list heads from struct acpi_device" (Rafael J. Wysocki, 4 Jun 2022)
++// Disable ACPI support due to more GPL stuff (acpi_dev_for_each_child is only GPL-exported)
++#if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0))
+ static NV_STATUS nv_acpi_extract_integer (const union acpi_object *, void *, NvU32, NvU32 *);
+ static NV_STATUS nv_acpi_extract_buffer (const union acpi_object *, void *, NvU32, NvU32 *);
+ static NV_STATUS nv_acpi_extract_package (const union acpi_object *, void *, NvU32, NvU32 *);
+--
+2.37.1
+
diff --git a/sys-kernel/nvidia-drivers-dkms/files/470-kernel6.patch b/sys-kernel/nvidia-drivers-dkms/files/470-kernel6.patch
new file mode 100644
index 00000000..3ad376a2
--- /dev/null
+++ b/sys-kernel/nvidia-drivers-dkms/files/470-kernel6.patch
@@ -0,0 +1,60 @@
+From 17bed78791d6f311c83ff1794d085b18c9f89730 Mon Sep 17 00:00:00 2001
+From: Joan Bruguera <joanbrugueram@gmail.com>
+Date: Wed, 3 Aug 2022 00:56:57 +0200
+Subject: [PATCH] Tentative fix for NVIDIA 470.141.03 driver for Linux 6.0-rc1
+
+---
+ nvidia-drm/nvidia-drm-helper.c | 5 +++++
+ nvidia/nv-acpi.c | 5 ++++-
+ nvidia/nv.c | 3 ++-
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/nvidia-drm/nvidia-drm-helper.c b/nvidia-drm/nvidia-drm-helper.c
+index 3831180..fa03d51 100644
+--- a/nvidia-drm/nvidia-drm-helper.c
++++ b/nvidia-drm/nvidia-drm-helper.c
+@@ -41,6 +41,11 @@
+ #include <drm/drm_atomic_uapi.h>
+ #endif
+
++// Add header which is no longer indirectly referenced as of Linux 6.0-rc1
++#if defined(NV_DRM_DRM_FRAMEBUFFER_H_PRESENT)
++#include <drm/drm_framebuffer.h>
++#endif
++
+ static void __nv_drm_framebuffer_put(struct drm_framebuffer *fb)
+ {
+ #if defined(NV_DRM_FRAMEBUFFER_GET_PRESENT)
+diff --git a/nvidia/nv-acpi.c b/nvidia/nv-acpi.c
+index 2b7b988..76c36fa 100644
+--- a/nvidia/nv-acpi.c
++++ b/nvidia/nv-acpi.c
+@@ -16,7 +16,10 @@
+
+ #include <linux/acpi.h>
+
+-#if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED)
++#include <linux/version.h>
++// Rel.commit "ACPI: bus: Drop unused list heads from struct acpi_device" (Rafael J. Wysocki, 4 Jun 2022)
++// Disable ACPI support due to more GPL stuff (acpi_dev_for_each_child is only GPL-exported)
++#if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0))
+ static NV_STATUS nv_acpi_extract_integer (const union acpi_object *, void *, NvU32, NvU32 *);
+ static NV_STATUS nv_acpi_extract_buffer (const union acpi_object *, void *, NvU32, NvU32 *);
+ static NV_STATUS nv_acpi_extract_package (const union acpi_object *, void *, NvU32, NvU32 *);
+diff --git a/nvidia/nv.c b/nvidia/nv.c
+index ab7d17c..e313e2e 100644
+--- a/nvidia/nv.c
++++ b/nvidia/nv.c
+@@ -5423,7 +5423,8 @@ NvBool NV_API_CALL nv_s2idle_pm_configured(void)
+ {
+ NvU8 buf[8];
+
+-#if defined(NV_SEQ_READ_ITER_PRESENT)
++// FIXME: Avoid this code path because on Linux 6.0-rc1, init_sync_kiocb references a GPL symbol
++#if defined(NV_SEQ_READ_ITER_PRESENT) && (LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0))
+ struct file *file;
+ ssize_t num_read;
+ struct kiocb kiocb;
+--
+2.37.1
+
diff --git a/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-390.154.ebuild b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-390.154.ebuild
index 5f6d75ec..b8616d1f 100644
--- a/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-390.154.ebuild
+++ b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-390.154.ebuild
@@ -24,6 +24,7 @@ RDEPEND="${DEPEND}
!!sys-kernel/nvidia-drivers-dkms:515"
PATCHES=(
+ "${FILESDIR}"/390-kernel6.patch
"${FILESDIR}"/dkms390.patch
)
diff --git a/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r2.ebuild b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r2.ebuild
index a6b908d0..3ccc9ca9 100644
--- a/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r2.ebuild
+++ b/sys-kernel/nvidia-drivers-dkms/nvidia-drivers-dkms-470.141.03-r2.ebuild
@@ -24,6 +24,7 @@ RDEPEND="${DEPEND}
!!sys-kernel/nvidia-drivers-dkms:515"
PATCHES=(
+ "${FILESDIR}"/470-kernel6.patch
"${FILESDIR}"/dkms470.patch
)