Created
August 15, 2022 01:41
-
-
Save joanbm/9f5e8150723912b3809f4de536974155 to your computer and use it in GitHub Desktop.
Tentative fix for NVIDIA 470.141.03 driver for Linux 6.0-rc1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment