[arch-commits] Commit in nvidia-340xx/repos (4 files)
Jan Steffens
heftig at archlinux.org
Sun Dec 17 19:57:45 UTC 2017
Date: Sunday, December 17, 2017 @ 19:57:44
Author: heftig
Revision: 313271
archrelease: copy trunk to staging-x86_64
Added:
nvidia-340xx/repos/staging-x86_64/
nvidia-340xx/repos/staging-x86_64/PKGBUILD
(from rev 313270, nvidia-340xx/trunk/PKGBUILD)
nvidia-340xx/repos/staging-x86_64/kernel-4.11.patch
(from rev 313270, nvidia-340xx/trunk/kernel-4.11.patch)
nvidia-340xx/repos/staging-x86_64/kernel-4.14.patch
(from rev 313270, nvidia-340xx/trunk/kernel-4.14.patch)
-------------------+
PKGBUILD | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++
kernel-4.11.patch | 38 +++++++++++++++++++++++++++
kernel-4.14.patch | 29 ++++++++++++++++++++
3 files changed, 140 insertions(+)
Copied: nvidia-340xx/repos/staging-x86_64/PKGBUILD (from rev 313270, nvidia-340xx/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD (rev 0)
+++ staging-x86_64/PKGBUILD 2017-12-17 19:57:44 UTC (rev 313271)
@@ -0,0 +1,73 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Thomas Baechler <thomas at archlinux.org>
+
+pkgbase=nvidia-340xx
+pkgname=(nvidia-340xx nvidia-340xx-dkms)
+pkgver=340.104
+_extramodules=extramodules-4.14-ARCH
+pkgrel=15
+pkgdesc="NVIDIA drivers for linux, 340xx legacy branch"
+arch=('x86_64')
+url="http://www.nvidia.com/"
+makedepends=("nvidia-340xx-utils=${pkgver}" 'linux' 'linux-headers>=4.14' 'linux-headers<4.15')
+conflicts=('nvidia')
+license=('custom')
+options=('!strip')
+source=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run"
+ 'kernel-4.11.patch' 'kernel-4.14.patch')
+sha512sums=('e962494561728af5a911354bfb3560e414464f7858f30f9654eac5ca56175bc8498d1eee93a18248c63e9eee7d84807ef924fe9f53239644d7085b0f3502bf8c'
+ 'c25d90499e1deb26129a67dd7e953be8c1e31c5770e2b8b64d03af54cf1afec1a52636e74900f8ac468692207ab8a3765a12edd581142c4d2cfd2d6e66ac7ac2'
+ 'ccaa40e085d985ec4280003e36dd06e60958ed1408867379fd21a68a18d48aa4be311bf9ad1e804f7a7245c90be98e919d2ec30f45d290f1cdb19c866bdb8a8d')
+
+_pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
+
+prepare() {
+ sh "${_pkg}.run" --extract-only
+ cd "${_pkg}"
+ # patches here
+
+ patch -Np0 < "${srcdir}/kernel-4.11.patch"
+ patch -Np1 < "${srcdir}/kernel-4.14.patch"
+
+ cp -a kernel kernel-dkms
+}
+
+build() {
+ _kernver="$(cat /usr/lib/modules/${_extramodules}/version)"
+ cd "${_pkg}"/kernel
+ make SYSSRC=/usr/lib/modules/"${_kernver}/build" module
+
+ cd uvm
+ make SYSSRC=/usr/lib/modules/"${_kernver}/build" module
+}
+
+package_nvidia-340xx() {
+ pkgdesc="NVIDIA drivers for linux, 340xx legacy branch"
+ depends=('linux>=4.14' 'linux<4.15' "nvidia-340xx-utils=${pkgver}" 'libgl')
+
+ install -Dt "${pkgdir}/usr/lib/modules/${_extramodules}" -m644 \
+ "${srcdir}/${_pkg}/kernel"/{nvidia,uvm/nvidia-uvm}.ko
+
+ find "${pkgdir}" -name '*.ko' -exec gzip -n {} +
+
+ echo "blacklist nouveau" |
+ install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/nvidia.conf"
+}
+
+package_nvidia-340xx-dkms() {
+ pkgdesc="NVIDIA driver sources for linux, 340xx legacy branch"
+ depends=('dkms' "nvidia-340xx-utils=$pkgver" 'libgl')
+ optdepends=('linux-headers: Build the module for Arch kernel'
+ 'linux-lts-headers: Build the module for LTS Arch kernel')
+ conflicts+=('nvidia-340xx')
+
+ cd ${_pkg}
+
+ install -dm 755 "${pkgdir}"/usr/src
+ cp -dr --no-preserve='ownership' kernel-dkms "${pkgdir}/usr/src/nvidia-${pkgver}"
+ cat "${pkgdir}"/usr/src/nvidia-${pkgver}/uvm/dkms.conf.fragment >> "${pkgdir}"/usr/src/nvidia-${pkgver}/dkms.conf
+
+ echo "blacklist nouveau" |
+ install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modprobe.d/nvidia.conf"
+}
Copied: nvidia-340xx/repos/staging-x86_64/kernel-4.11.patch (from rev 313270, nvidia-340xx/trunk/kernel-4.11.patch)
===================================================================
--- staging-x86_64/kernel-4.11.patch (rev 0)
+++ staging-x86_64/kernel-4.11.patch 2017-12-17 19:57:44 UTC (rev 313271)
@@ -0,0 +1,38 @@
+--- kernel/uvm/nvidia_uvm_lite.c 2017-09-27 13:50:46.334075042 +0200
++++ kernel/uvm/nvidia_uvm_lite.c 2017-09-27 13:56:06.358041280 +0200
+@@ -818,7 +818,11 @@
+ }
+
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
++#else
++int _fault(struct vm_fault *vmf)
++#endif
+ {
+ #if defined(NV_VM_FAULT_HAS_ADDRESS)
+ unsigned long vaddr = vmf->address;
+@@ -828,7 +832,11 @@
+ struct page *page = NULL;
+ int retval;
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ retval = _fault_common(vma, vaddr, &page, vmf->flags);
++#else
++ retval = _fault_common(NULL, vaddr, &page, vmf->flags);
++#endif
+
+ vmf->page = page;
+
+@@ -866,7 +874,11 @@
+ // it's dealing with anonymous mapping (see handle_pte_fault).
+ //
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+ int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
++#else
++int _sigbus_fault(struct vm_fault *vmf)
++#endif
+ {
+ vmf->page = NULL;
+ return VM_FAULT_SIGBUS;
Copied: nvidia-340xx/repos/staging-x86_64/kernel-4.14.patch (from rev 313270, nvidia-340xx/trunk/kernel-4.14.patch)
===================================================================
--- staging-x86_64/kernel-4.14.patch (rev 0)
+++ staging-x86_64/kernel-4.14.patch 2017-12-17 19:57:44 UTC (rev 313271)
@@ -0,0 +1,29 @@
+diff -u -r NVIDIA-Linux-x86_64-340.104-no-compat32/kernel/nv-drm.c NVIDIA-Linux-x86_64-340.104-no-compat32-kernel4.14/kernel/nv-drm.c
+--- NVIDIA-Linux-x86_64-340.104-no-compat32/kernel/nv-drm.c 2017-09-15 01:16:51.000000000 +0200
++++ NVIDIA-Linux-x86_64-340.104-no-compat32-kernel4.14/kernel/nv-drm.c 2017-11-19 00:51:45.006654148 +0100
+@@ -173,8 +173,12 @@
+ {
+ int ret = 0;
+ #if defined(NV_DRM_AVAILABLE)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
++ ret = drm_legacy_pci_init(&nv_drm_driver, pci_driver);
++#else
+ ret = drm_pci_init(&nv_drm_driver, pci_driver);
+ #endif
++#endif
+ return ret;
+ }
+
+@@ -183,8 +187,12 @@
+ )
+ {
+ #if defined(NV_DRM_AVAILABLE)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0)
++ drm_legacy_pci_exit(&nv_drm_driver, pci_driver);
++#else
+ drm_pci_exit(&nv_drm_driver, pci_driver);
+ #endif
++#endif
+ }
+
+ RM_STATUS NV_API_CALL nv_alloc_os_descriptor_handle(
More information about the arch-commits
mailing list