From 523581f5193f53ebc8f931285106141775efd2b9 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 11 Sep 2021 19:25:38 +0100 Subject: sys-kernel/nvidia-drivers-legacy-dkms && x11-drivers/nvidia-drivers-legacy : add linux-5.14 compat --- .../files/kernel-5.14.patch | 82 ++++++++++++++++++++++ .../nvidia-drivers-legacy-dkms-390.144-r1.ebuild | 48 +++++++++++++ .../nvidia-drivers-legacy-dkms-390.144.ebuild | 47 ------------- 3 files changed, 130 insertions(+), 47 deletions(-) create mode 100644 sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.14.patch create mode 100644 sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144-r1.ebuild delete mode 100644 sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144.ebuild (limited to 'sys-kernel') diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.14.patch b/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.14.patch new file mode 100644 index 00000000..a4242ec7 --- /dev/null +++ b/sys-kernel/nvidia-drivers-legacy-dkms/files/kernel-5.14.patch @@ -0,0 +1,82 @@ +Taken from https://build.opensuse.org/package/view_file/X11:Drivers:Video/nvidia-gfxG04/kernel-5.14.patch?rev=233 +Credit to Stefan Dirsch + +diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/conftest.sh NVIDIA-Linux-x86_64-390.144/kernel/conftest.sh +--- NVIDIA-Linux-x86_64-390.144/kernel.orig/conftest.sh 2021-08-31 16:58:57.799629833 +0200 ++++ NVIDIA-Linux-x86_64-390.144/kernel/conftest.sh 2021-08-31 18:00:09.257825534 +0200 +@@ -4493,6 +4493,30 @@ compile_test() { + fi + ;; + ++ drm_device_has_pdev) ++ # ++ # Determine if the 'drm_device' structure has a 'pdev' field. ++ # ++ # Removed by commit b347e04452ff ("drm: Remove pdev field from ++ # struct drm_device") in v5.14-rc1. ++ # ++ CODE=" ++ #if defined(NV_DRM_DRMP_H_PRESENT) ++ #include ++ #endif ++ ++ #if defined(NV_DRM_DRM_DEVICE_H_PRESENT) ++ #include ++ #endif ++ ++ int conftest_drm_device_has_pdev(void) { ++ return offsetof(struct drm_device, pdev); ++ }" ++ ++ compile_check_conftest "$CODE" "NV_DRM_DEVICE_HAS_PDEV" "" "types" ++ ;; ++ ++ + esac + } + +diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/nvlink_linux.c NVIDIA-Linux-x86_64-390.144/kernel/nvidia/nvlink_linux.c +--- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/nvlink_linux.c 2021-08-31 16:58:57.787629590 +0200 ++++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia/nvlink_linux.c 2021-08-31 17:51:49.207744327 +0200 +@@ -597,7 +597,7 @@ void NVLINK_API_CALL nvlink_sleep(unsign + // the requested timeout has expired, loop until less + // than a jiffie of the desired delay remains. + // +- current->state = TASK_INTERRUPTIBLE; ++ set_current_state(TASK_INTERRUPTIBLE); + do + { + schedule_timeout(jiffies); +diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/os-interface.c NVIDIA-Linux-x86_64-390.144/kernel/nvidia/os-interface.c +--- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia/os-interface.c 2021-08-31 16:58:57.787629590 +0200 ++++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia/os-interface.c 2021-08-31 17:51:58.043922420 +0200 +@@ -580,7 +580,7 @@ NV_STATUS NV_API_CALL os_delay(NvU32 Mil + // the requested timeout has expired, loop until less + // than a jiffie of the desired delay remains. + // +- current->state = TASK_INTERRUPTIBLE; ++ set_current_state(TASK_INTERRUPTIBLE); + do + { + schedule_timeout(jiffies); +diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm-drv.c NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm-drv.c +--- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm-drv.c 2021-08-31 16:58:57.783629508 +0200 ++++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm-drv.c 2021-08-31 17:56:41.345633279 +0200 +@@ -811,7 +811,9 @@ static void nv_drm_register_drm_device(c + + dev->dev_private = nv_dev; + nv_dev->dev = dev; ++#if defined(NV_DRM_DEVICE_HAS_PDEV) + dev->pdev = pdev; ++#endif + + /* Register DRM device to DRM sub-system */ + +diff -u -p -r NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm.Kbuild NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm.Kbuild +--- NVIDIA-Linux-x86_64-390.144/kernel.orig/nvidia-drm/nvidia-drm.Kbuild 2021-08-31 16:58:57.783629508 +0200 ++++ NVIDIA-Linux-x86_64-390.144/kernel/nvidia-drm/nvidia-drm.Kbuild 2021-08-31 17:53:18.265539346 +0200 +@@ -102,3 +102,4 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_dr + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_crtc_atomic_check_has_atomic_state_arg + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_gem_object_vmap_has_map_arg + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_plane_atomic_check_has_atomic_state_arg ++NV_CONFTEST_TYPE_COMPILE_TESTS += drm_device_has_pdev diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144-r1.ebuild b/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144-r1.ebuild new file mode 100644 index 00000000..c56e28a6 --- /dev/null +++ b/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144-r1.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +inherit eutils + +NV_URI="http://us.download.nvidia.com/XFree86/" +AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" + +DESCRIPTION="NVIDIA driver sources for linux" +HOMEPAGE="http://www.nvidia.com/" +SRC_URI="amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )" + +LICENSE="GPL-2 NVIDIA-r2" +SLOT="0" +KEYWORDS="amd64" +IUSE="" + +DEPEND="sys-kernel/dkms" +RDEPEND="${DEPEND} + !!sys-kernel/nvidia-drivers-dkms" + +PATCHES=( + "${FILESDIR}"/dkms.patch + "${FILESDIR}"/kernel-5.14.patch +) + +S="${WORKDIR}/${AMD64_NV_PACKAGE}" + +src_unpack() { + sh ${DISTDIR}/${AMD64_NV_PACKAGE}.run --extract-only +} + +src_install() { + dodir usr/src/${P} + insinto usr/src/${P} + doins -r "${S}"/kernel/* +} + +pkg_postinst() { + dkms add ${PN}/${PV} +} + +pkg_prerm() { + dkms remove ${PN}/${PV} --all +} diff --git a/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144.ebuild b/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144.ebuild deleted file mode 100644 index e95877a1..00000000 --- a/sys-kernel/nvidia-drivers-legacy-dkms/nvidia-drivers-legacy-dkms-390.144.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI=6 - -inherit eutils - -NV_URI="http://us.download.nvidia.com/XFree86/" -AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" - -DESCRIPTION="NVIDIA driver sources for linux" -HOMEPAGE="http://www.nvidia.com/" -SRC_URI="amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )" - -LICENSE="GPL-2 NVIDIA-r2" -SLOT="0" -KEYWORDS="amd64" -IUSE="" - -DEPEND="sys-kernel/dkms" -RDEPEND="${DEPEND} - !!sys-kernel/nvidia-drivers-dkms" - -PATCHES=( - "${FILESDIR}"/dkms.patch -) - -S="${WORKDIR}/${AMD64_NV_PACKAGE}" - -src_unpack() { - sh ${DISTDIR}/${AMD64_NV_PACKAGE}.run --extract-only -} - -src_install() { - dodir usr/src/${P} - insinto usr/src/${P} - doins -r "${S}"/kernel/* -} - -pkg_postinst() { - dkms add ${PN}/${PV} -} - -pkg_prerm() { - dkms remove ${PN}/${PV} --all -} -- cgit v1.2.3