diff options
6 files changed, 110 insertions, 2 deletions
diff --git a/metadata/md5-cache/sys-kernel/nvidia-drivers-dkms-390.154 b/metadata/md5-cache/sys-kernel/nvidia-drivers-dkms-390.154 index 695d816f..1988bcf1 100644 --- a/metadata/md5-cache/sys-kernel/nvidia-drivers-dkms-390.154 +++ b/metadata/md5-cache/sys-kernel/nvidia-drivers-dkms-390.154 @@ -10,4 +10,4 @@ RDEPEND=sys-kernel/dkms !!sys-kernel/nvidia-drivers-dkms:470 !!sys-kernel/nvidia SLOT=390 SRC_URI=amd64? ( http://us.download.nvidia.com/XFree86/Linux-x86_64/390.154/NVIDIA-Linux-x86_64-390.154.run ) _eclasses_=desktop 22952d8f27cac191d75529d4c38e6bfa edos2unix 33e347e171066657f91f8b0c72ec8773 epatch 447396341f5f896d722e435a06f87a4f eqawarn c9847c43b3253a276ae2eabddedab3d7 estack 055c42df72f76a4f45ec92b35e83cd56 eutils 8f942ebdcf04334697649d4a0bf65a32 ltprune 97143780d341cc8d8f1d4c6187a36d29 multilib 5ca4e49abed8e3a2f7b56920eadee157 preserve-libs a8e50acee31b5759b4df1f7707cae54b strip-linguas ac3ee41ee2d31d8c41a77c0838320cc7 toolchain-funcs 441f754fd75cd4fd1fa06fbc17da6144 vcs-clean d271b7bc7e6a009758d7d4ef749174e3 wrapper 4a1902f969e5718126434fc35f3a0d9c -_md5_=8071db473cea8442c9d93a090435b9f0 +_md5_=43de09a538a8e91266e93b2ad418a8c7 diff --git a/metadata/md5-cache/sys-kernel/nvidia-drivers-dkms-470.141.03-r2 b/metadata/md5-cache/sys-kernel/nvidia-drivers-dkms-470.141.03-r2 index c011758c..544dd6c6 100644 --- a/metadata/md5-cache/sys-kernel/nvidia-drivers-dkms-470.141.03-r2 +++ b/metadata/md5-cache/sys-kernel/nvidia-drivers-dkms-470.141.03-r2 @@ -10,4 +10,4 @@ RDEPEND=sys-kernel/dkms !!sys-kernel/nvidia-drivers-dkms:390 !!sys-kernel/nvidia SLOT=470 SRC_URI=amd64? ( http://us.download.nvidia.com/XFree86/Linux-x86_64/470.141.03/NVIDIA-Linux-x86_64-470.141.03.run ) _eclasses_=desktop 22952d8f27cac191d75529d4c38e6bfa edos2unix 33e347e171066657f91f8b0c72ec8773 epatch 447396341f5f896d722e435a06f87a4f eqawarn c9847c43b3253a276ae2eabddedab3d7 estack 055c42df72f76a4f45ec92b35e83cd56 eutils 8f942ebdcf04334697649d4a0bf65a32 ltprune 97143780d341cc8d8f1d4c6187a36d29 multilib 5ca4e49abed8e3a2f7b56920eadee157 preserve-libs a8e50acee31b5759b4df1f7707cae54b strip-linguas ac3ee41ee2d31d8c41a77c0838320cc7 toolchain-funcs 441f754fd75cd4fd1fa06fbc17da6144 vcs-clean d271b7bc7e6a009758d7d4ef749174e3 wrapper 4a1902f969e5718126434fc35f3a0d9c -_md5_=d047fc7093d854a91575a3b6e63192c6 +_md5_=6da5eec811d43e5b37e358b2d560a256 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 ) |