From 65c73b332292cf97e537ae4c345cf352dc53fe5e Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 16 Oct 2022 15:52:07 +0100 Subject: x11-drivers/nvidia-drivers : reorganise things so we support multiple versions --- sys-kernel/nvidia-drivers-dkms/files/dkms.patch | 29 ----------- sys-kernel/nvidia-drivers-dkms/files/dkms390.patch | 28 +++++++++++ sys-kernel/nvidia-drivers-dkms/files/dkms470.patch | 30 +++++++++++ sys-kernel/nvidia-drivers-dkms/files/dkms515.patch | 58 ++++++++++++++++++++++ sys-kernel/nvidia-drivers-dkms/files/fs62142.patch | 13 ----- .../nvidia-drivers-dkms/files/kernel-6.0.patch | 43 ---------------- 6 files changed, 116 insertions(+), 85 deletions(-) delete mode 100644 sys-kernel/nvidia-drivers-dkms/files/dkms.patch create mode 100644 sys-kernel/nvidia-drivers-dkms/files/dkms390.patch create mode 100644 sys-kernel/nvidia-drivers-dkms/files/dkms470.patch create mode 100644 sys-kernel/nvidia-drivers-dkms/files/dkms515.patch delete mode 100644 sys-kernel/nvidia-drivers-dkms/files/fs62142.patch delete mode 100644 sys-kernel/nvidia-drivers-dkms/files/kernel-6.0.patch (limited to 'sys-kernel/nvidia-drivers-dkms/files') diff --git a/sys-kernel/nvidia-drivers-dkms/files/dkms.patch b/sys-kernel/nvidia-drivers-dkms/files/dkms.patch deleted file mode 100644 index 3e2a7cd9..00000000 --- a/sys-kernel/nvidia-drivers-dkms/files/dkms.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf ---- a/kernel/dkms.conf 2021-07-07 23:03:22.000000000 +0100 -+++ b/kernel/dkms.conf 2021-08-07 22:05:52.634341135 +0100 -@@ -1,12 +1,21 @@ --PACKAGE_NAME="nvidia" --PACKAGE_VERSION="__VERSION_STRING" -+PACKAGE_NAME="nvidia-drivers-dkms" -+PACKAGE_VERSION="470.141.03" - AUTOINSTALL="yes" - - # By default, DKMS will add KERNELRELEASE to the make command line; however, - # this will cause the kernel module build to infer that it was invoked via - # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting - # the 'make' command name to suppress this behavior. --MAKE[0]="'make' -j__JOBS NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" -+MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" - - # The list of kernel modules will be generated by nvidia-installer at runtime. --__DKMS_MODULES -+BUILT_MODULE_NAME[0]="nvidia" -+DEST_MODULE_LOCATION[0]="/extra/dkms" -+BUILT_MODULE_NAME[1]="nvidia-uvm" -+DEST_MODULE_LOCATION[1]="/extra/dkms" -+BUILT_MODULE_NAME[2]="nvidia-modeset" -+DEST_MODULE_LOCATION[2]="/extra/dkms" -+BUILT_MODULE_NAME[3]="nvidia-drm" -+DEST_MODULE_LOCATION[3]="/extra/dkms" -+BUILT_MODULE_NAME[4]="nvidia-peermem" -+DEST_MODULE_LOCATION[4]="/extra/dkms" diff --git a/sys-kernel/nvidia-drivers-dkms/files/dkms390.patch b/sys-kernel/nvidia-drivers-dkms/files/dkms390.patch new file mode 100644 index 00000000..19e98d8d --- /dev/null +++ b/sys-kernel/nvidia-drivers-dkms/files/dkms390.patch @@ -0,0 +1,28 @@ +diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf +--- a/kernel/dkms.conf 2021-11-02 06:16:12.000000000 +0000 ++++ b/kernel/dkms.conf 2022-10-16 15:03:27.841471738 +0100 +@@ -1,12 +1,20 @@ +-PACKAGE_NAME="nvidia" +-PACKAGE_VERSION="__VERSION_STRING" ++PACKAGE_NAME="nvidia-drivers-dkms" ++PACKAGE_VERSION="390.154" ++BUILD_EXCLUSIVE_KERNEL=""^5.*"" # only build for Kernel 5 + AUTOINSTALL="yes" + + # By default, DKMS will add KERNELRELEASE to the make command line; however, + # this will cause the kernel module build to infer that it was invoked via + # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting + # the 'make' command name to suppress this behavior. +-MAKE[0]="'make' -j__JOBS NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} modules" ++MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" + + # The list of kernel modules will be generated by nvidia-installer at runtime. +-__DKMS_MODULES ++BUILT_MODULE_NAME[0]="nvidia" ++DEST_MODULE_LOCATION[0]="/extra/dkms" ++BUILT_MODULE_NAME[1]="nvidia-uvm" ++DEST_MODULE_LOCATION[1]="/extra/dkms" ++BUILT_MODULE_NAME[2]="nvidia-modeset" ++DEST_MODULE_LOCATION[2]="/extra/dkms" ++BUILT_MODULE_NAME[3]="nvidia-drm" ++DEST_MODULE_LOCATION[3]="/extra/dkms" diff --git a/sys-kernel/nvidia-drivers-dkms/files/dkms470.patch b/sys-kernel/nvidia-drivers-dkms/files/dkms470.patch new file mode 100644 index 00000000..7ee395df --- /dev/null +++ b/sys-kernel/nvidia-drivers-dkms/files/dkms470.patch @@ -0,0 +1,30 @@ +diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf +--- a/kernel/dkms.conf 2022-06-30 19:31:05.000000000 +0100 ++++ b/kernel/dkms.conf 2022-10-16 15:06:33.644466229 +0100 +@@ -1,12 +1,22 @@ +-PACKAGE_NAME="nvidia" +-PACKAGE_VERSION="__VERSION_STRING" ++PACKAGE_NAME="nvidia-drivers-dkms" ++PACKAGE_VERSION="470.141.03" ++BUILD_EXCLUSIVE_KERNEL=""^5.*"" # Only build for kernel 5 + AUTOINSTALL="yes" + + # By default, DKMS will add KERNELRELEASE to the make command line; however, + # this will cause the kernel module build to infer that it was invoked via + # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting + # the 'make' command name to suppress this behavior. +-MAKE[0]="'make' -j__JOBS NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" ++MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" + + # The list of kernel modules will be generated by nvidia-installer at runtime. +-__DKMS_MODULES ++BUILT_MODULE_NAME[0]="nvidia" ++DEST_MODULE_LOCATION[0]="/extra/dkms" ++BUILT_MODULE_NAME[1]="nvidia-uvm" ++DEST_MODULE_LOCATION[1]="/extra/dkms" ++BUILT_MODULE_NAME[2]="nvidia-modeset" ++DEST_MODULE_LOCATION[2]="/extra/dkms" ++BUILT_MODULE_NAME[3]="nvidia-drm" ++DEST_MODULE_LOCATION[3]="/extra/dkms" ++BUILT_MODULE_NAME[4]="nvidia-peermem" ++DEST_MODULE_LOCATION[4]="/extra/dkms" diff --git a/sys-kernel/nvidia-drivers-dkms/files/dkms515.patch b/sys-kernel/nvidia-drivers-dkms/files/dkms515.patch new file mode 100644 index 00000000..fd79108e --- /dev/null +++ b/sys-kernel/nvidia-drivers-dkms/files/dkms515.patch @@ -0,0 +1,58 @@ +diff -Nur a/kernel/dkms.conf b/kernel/dkms.conf +--- a/kernel/dkms.conf 2022-07-20 14:40:39.000000000 +0100 ++++ b/kernel/dkms.conf 2022-10-16 14:05:53.921574151 +0100 +@@ -1,12 +1,22 @@ +-PACKAGE_NAME="nvidia" +-PACKAGE_VERSION="__VERSION_STRING" ++PACKAGE_NAME="nvidia-drivers-dkms" ++PACKAGE_VERSION="515.65.01" + AUTOINSTALL="yes" + + # By default, DKMS will add KERNELRELEASE to the make command line; however, + # this will cause the kernel module build to infer that it was invoked via + # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting + # the 'make' command name to suppress this behavior. +-MAKE[0]="'make' -j__JOBS NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} modules" ++MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" + + # The list of kernel modules will be generated by nvidia-installer at runtime. +-__DKMS_MODULES ++BUILT_MODULE_NAME[0]="nvidia" ++DEST_MODULE_LOCATION[0]="/extra/dkms" ++BUILT_MODULE_NAME[1]="nvidia-uvm" ++DEST_MODULE_LOCATION[1]="/extra/dkms" ++BUILT_MODULE_NAME[2]="nvidia-modeset" ++DEST_MODULE_LOCATION[2]="/extra/dkms" ++BUILT_MODULE_NAME[3]="nvidia-drm" ++DEST_MODULE_LOCATION[3]="/extra/dkms" ++BUILT_MODULE_NAME[4]="nvidia-peermem" ++DEST_MODULE_LOCATION[4]="/extra/dkms" +diff -Nur a/kernel-open/dkms.conf b/kernel-open/dkms.conf +--- a/kernel-open/dkms.conf 2022-07-20 14:40:39.000000000 +0100 ++++ b/kernel-open/dkms.conf 2022-10-16 14:07:17.596571670 +0100 +@@ -1,12 +1,22 @@ +-PACKAGE_NAME="nvidia" +-PACKAGE_VERSION="__VERSION_STRING" ++PACKAGE_NAME="nvidia-drivers-dkms" ++PACKAGE_VERSION="515.65.01" + AUTOINSTALL="yes" + + # By default, DKMS will add KERNELRELEASE to the make command line; however, + # this will cause the kernel module build to infer that it was invoked via + # Kbuild directly instead of DKMS. The dkms(8) manual page recommends quoting + # the 'make' command name to suppress this behavior. +-MAKE[0]="'make' -j__JOBS NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} modules" ++MAKE[0]="'make' -j`nproc` NV_EXCLUDE_BUILD_MODULES='__EXCLUDE_MODULES' KERNEL_UNAME=${kernelver} IGNORE_CC_MISMATCH='__IGNORE_CC_MISMATCH' modules" + + # The list of kernel modules will be generated by nvidia-installer at runtime. +-__DKMS_MODULES ++BUILT_MODULE_NAME[0]="nvidia" ++DEST_MODULE_LOCATION[0]="/extra/dkms" ++BUILT_MODULE_NAME[1]="nvidia-uvm" ++DEST_MODULE_LOCATION[1]="/extra/dkms" ++BUILT_MODULE_NAME[2]="nvidia-modeset" ++DEST_MODULE_LOCATION[2]="/extra/dkms" ++BUILT_MODULE_NAME[3]="nvidia-drm" ++DEST_MODULE_LOCATION[3]="/extra/dkms" ++BUILT_MODULE_NAME[4]="nvidia-peermem" ++DEST_MODULE_LOCATION[4]="/extra/dkms" diff --git a/sys-kernel/nvidia-drivers-dkms/files/fs62142.patch b/sys-kernel/nvidia-drivers-dkms/files/fs62142.patch deleted file mode 100644 index 04806bd8..00000000 --- a/sys-kernel/nvidia-drivers-dkms/files/fs62142.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/kernel/nvidia/nv-dma.c b/kernel/nvidia/nv-dma.c -index 73cdeed..e691014 100644 ---- a/kernel/nvidia/nv-dma.c -+++ b/kernel/nvidia/nv-dma.c -@@ -606,7 +606,7 @@ static NvBool nv_dma_is_map_resource_implemented - #if defined(NV_DMA_MAP_RESOURCE_PRESENT) - const struct dma_map_ops *ops = get_dma_ops(&nvl->dev->dev); - -- return (ops->map_resource != NULL); -+ return (ops && ops->map_resource); - #else - return NV_FALSE; - #endif diff --git a/sys-kernel/nvidia-drivers-dkms/files/kernel-6.0.patch b/sys-kernel/nvidia-drivers-dkms/files/kernel-6.0.patch deleted file mode 100644 index 372b6572..00000000 --- a/sys-kernel/nvidia-drivers-dkms/files/kernel-6.0.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff -Nur a/kernel/nvidia/nv-acpi.c b/kernel/nvidia/nv-acpi.c ---- a/kernel/nvidia/nv-acpi.c 2022-06-30 20:05:22.000000000 +0100 -+++ b/kernel/nvidia/nv-acpi.c 2022-10-13 23:34:09.841766070 +0100 -@@ -16,7 +16,10 @@ - - #include - --#if defined(NV_LINUX_ACPI_EVENTS_SUPPORTED) -+#include -+// 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 -Nur a/kernel/nvidia/nv.c b/kernel/nvidia/nv.c ---- a/kernel/nvidia/nv.c 2022-06-30 20:05:22.000000000 +0100 -+++ b/kernel/nvidia/nv.c 2022-10-13 23:34:09.841766070 +0100 -@@ -5423,7 +5423,8 @@ - { - 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; -diff -Nur a/kernel/nvidia-drm/nvidia-drm-helper.c b/kernel/nvidia-drm/nvidia-drm-helper.c ---- a/kernel/nvidia-drm/nvidia-drm-helper.c 2022-06-30 19:33:22.000000000 +0100 -+++ b/kernel/nvidia-drm/nvidia-drm-helper.c 2022-10-13 23:34:09.841766070 +0100 -@@ -41,6 +41,11 @@ - #include - #endif - -+// Add header which is no longer indirectly referenced as of Linux 6.0-rc1 -+#if defined(NV_DRM_DRM_FRAMEBUFFER_H_PRESENT) -+#include -+#endif -+ - static void __nv_drm_framebuffer_put(struct drm_framebuffer *fb) - { - #if defined(NV_DRM_FRAMEBUFFER_GET_PRESENT) -- cgit v1.2.3