summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathon Fernyhough2022-10-15 12:50:51 +0100
committerJonathon Fernyhough2022-10-15 12:50:51 +0100
commit37b526faf6c1b270c730a473279e5b5955c40326 (patch)
tree670a80abc29abf3c7b794cd6c553dc2d8b019ab9
parentbb62bd82e69702029808da473f757c36f2ba43e7 (diff)
downloadaur-37b526faf6c1b270c730a473279e5b5955c40326.tar.gz
Partial fix for kernel 6.0, ACPI may be broken
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD7
-rw-r--r--kernel-6.0.patch60
3 files changed, 69 insertions, 2 deletions
diff --git a/.SRCINFO b/.SRCINFO
index e348147f1249..a87526d77332 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = nvidia-470xx-utils
pkgver = 470.141.03
- pkgrel = 1
+ pkgrel = 2
url = http://www.nvidia.com/
arch = x86_64
license = custom
@@ -8,10 +8,12 @@ pkgbase = nvidia-470xx-utils
source = nvidia-drm-outputclass.conf
source = nvidia-470xx-utils.sysusers
source = nvidia-470xx.rules
+ source = kernel-6.0.patch
source = https://us.download.nvidia.com/XFree86/Linux-x86_64/470.141.03/NVIDIA-Linux-x86_64-470.141.03.run
sha512sums = de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770
sha512sums = 4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499
sha512sums = a0ceb0a6c240cf97b21a2e46c5c212250d3ee24fecef16aca3dffb04b8350c445b9f4398274abccdb745dd0ba5132a17942c9508ce165d4f97f41ece02b0b989
+ sha512sums = fac1ed6d07e0ad5cb4591321653cd570729552ff13e4b15a45a556c29edc2904367c463648743ef45788a718cc7aba95446308a99fa17ba97da44467df031915
sha512sums = 07aca8ea6aac5592060b4177ef43e9a3a5b2e3bc1a2d5959bf2ae349763fc62ed80b987af5607bf2d9a48e25c4e38e64970bca0177d63bd57a703d47debf5e18
pkgname = nvidia-470xx-utils
diff --git a/PKGBUILD b/PKGBUILD
index 1b6d392acd32..e2590823e946 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
pkgbase=nvidia-470xx-utils
pkgname=('nvidia-470xx-utils' 'opencl-nvidia-470xx' 'nvidia-470xx-dkms')
pkgver=470.141.03
-pkgrel=1
+pkgrel=2
arch=('x86_64')
url="http://www.nvidia.com/"
license=('custom')
@@ -15,10 +15,12 @@ _pkg="NVIDIA-Linux-x86_64-${pkgver}"
source=('nvidia-drm-outputclass.conf'
'nvidia-470xx-utils.sysusers'
'nvidia-470xx.rules'
+ 'kernel-6.0.patch'
"https://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/${_pkg}.run")
sha512sums=('de7116c09f282a27920a1382df84aa86f559e537664bb30689605177ce37dc5067748acf9afd66a3269a6e323461356592fdfc624c86523bf105ff8fe47d3770'
'4b3ad73f5076ba90fe0b3a2e712ac9cde76f469cd8070280f960c3ce7dc502d1927f525ae18d008075c8f08ea432f7be0a6c3a7a6b49c361126dcf42f97ec499'
'a0ceb0a6c240cf97b21a2e46c5c212250d3ee24fecef16aca3dffb04b8350c445b9f4398274abccdb745dd0ba5132a17942c9508ce165d4f97f41ece02b0b989'
+ 'fac1ed6d07e0ad5cb4591321653cd570729552ff13e4b15a45a556c29edc2904367c463648743ef45788a718cc7aba95446308a99fa17ba97da44467df031915'
'07aca8ea6aac5592060b4177ef43e9a3a5b2e3bc1a2d5959bf2ae349763fc62ed80b987af5607bf2d9a48e25c4e38e64970bca0177d63bd57a703d47debf5e18')
@@ -54,6 +56,9 @@ DEST_MODULE_LOCATION[4]="/kernel/drivers/video"' dkms.conf
# Gift for linux-rt guys
sed -i 's/NV_EXCLUDE_BUILD_MODULES/IGNORE_PREEMPT_RT_PRESENCE=1 NV_EXCLUDE_BUILD_MODULES/' dkms.conf
+
+ # Incomplete fix for kernel 6.0; patch has ACPI issues, YMMV.
+ patch -Np1 -i ../../kernel-6.0.patch
}
package_opencl-nvidia-470xx() {
diff --git a/kernel-6.0.patch b/kernel-6.0.patch
new file mode 100644
index 000000000000..3ad376a2acc0
--- /dev/null
+++ b/kernel-6.0.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
+