[arch-commits] Commit in nvidia-340xx/repos (4 files)

Jan Steffens heftig at archlinux.org
Thu Mar 28 06:43:30 UTC 2019


    Date: Thursday, March 28, 2019 @ 06:43:29
  Author: heftig
Revision: 349316

archrelease: copy trunk to staging-x86_64

Added:
  nvidia-340xx/repos/staging-x86_64/
  nvidia-340xx/repos/staging-x86_64/PKGBUILD
    (from rev 349314, nvidia-340xx/trunk/PKGBUILD)
  nvidia-340xx/repos/staging-x86_64/kernel-4.11.patch
    (from rev 349314, nvidia-340xx/trunk/kernel-4.11.patch)
  nvidia-340xx/repos/staging-x86_64/kernel-5.0.patch
    (from rev 349314, nvidia-340xx/trunk/kernel-5.0.patch)

-------------------+
 PKGBUILD          |   74 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 kernel-4.11.patch |   38 ++++++++++++++++++++++++++
 kernel-5.0.patch  |   52 ++++++++++++++++++++++++++++++++++++
 3 files changed, 164 insertions(+)

Copied: nvidia-340xx/repos/staging-x86_64/PKGBUILD (from rev 349314, nvidia-340xx/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD	                        (rev 0)
+++ staging-x86_64/PKGBUILD	2019-03-28 06:43:29 UTC (rev 349316)
@@ -0,0 +1,74 @@
+# Maintainer: Giancarlo Razzolini <grazzolini at archlinux.org>
+# Contributor: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Thomas Baechler <thomas at archlinux.org>
+
+pkgbase=nvidia-340xx
+pkgname=(nvidia-340xx nvidia-340xx-dkms)
+pkgver=340.107
+_extramodules=extramodules-ARCH
+pkgrel=71
+pkgdesc="NVIDIA drivers for linux, 340xx legacy branch"
+arch=('x86_64')
+url="http://www.nvidia.com/"
+makedepends=("nvidia-340xx-utils=${pkgver}" 'linux' 'linux-headers')
+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-5.0.patch')
+sha512sums=('0de6f182d67bd322df7ae04e74c0cde6973c55bfea47a8f2503a29f8a899cd1b801ae4b52d066628df4a4f9c84e5e7547465bdc37d1b87df47af43fdab23466f'
+            'c25d90499e1deb26129a67dd7e953be8c1e31c5770e2b8b64d03af54cf1afec1a52636e74900f8ac468692207ab8a3765a12edd581142c4d2cfd2d6e66ac7ac2'
+            'ad60f9d09b6e8d5038375f9ddaab93341958f9400f40f5175857e44c7f7002d481121dc5d677703551c3cdf24069939ac6a1861920a455acf40e637f24234a56')
+
+_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 -Np0 < "${srcdir}/kernel-5.0.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' "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/${pkgname}.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')
+    provides=("nvidia-340xx=$pkgver")
+    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/${pkgname}.conf"
+}

Copied: nvidia-340xx/repos/staging-x86_64/kernel-4.11.patch (from rev 349314, nvidia-340xx/trunk/kernel-4.11.patch)
===================================================================
--- staging-x86_64/kernel-4.11.patch	                        (rev 0)
+++ staging-x86_64/kernel-4.11.patch	2019-03-28 06:43:29 UTC (rev 349316)
@@ -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-5.0.patch (from rev 349314, nvidia-340xx/trunk/kernel-5.0.patch)
===================================================================
--- staging-x86_64/kernel-5.0.patch	                        (rev 0)
+++ staging-x86_64/kernel-5.0.patch	2019-03-28 06:43:29 UTC (rev 349316)
@@ -0,0 +1,52 @@
+--- kernel/nv-drm.c	2018-05-25 04:16:20.000000000 +0000
++++ kernel/nv-drm.c	2019-03-04 20:57:40.065280734 +0000
+@@ -252,7 +252,11 @@
+         goto done;
+     }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)
+     drm_gem_object_unreference_unlocked(&nv_obj->base);
++#else
++    drm_gem_object_put_unlocked(&nv_obj->base);
++#endif
+ 
+     status = RM_OK;
+ 
+--- kernel/os-interface.c	2018-05-25 04:16:20.000000000 +0000
++++ kernel/os-interface.c	2019-03-04 21:03:03.815854982 +0000
+@@ -14,6 +14,16 @@
+ #include "os-interface.h"
+ #include "nv-linux.h"
+ 
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
++static inline void do_gettimeofday(struct timeval *tv)
++{
++    struct timespec64 now;
++    ktime_get_real_ts64(&now);
++    tv->tv_sec = now.tv_sec;
++    tv->tv_usec = now.tv_nsec/1000;
++}
++#endif
++
+ RM_STATUS NV_API_CALL os_disable_console_access(void)
+ {
+     NV_ACQUIRE_CONSOLE_SEM();
+--- kernel/uvm/nvidia_uvm_lite.c	2019-03-04 20:57:25.815255511 +0000
++++ kernel/uvm/nvidia_uvm_lite.c	2019-03-04 21:04:25.239333050 +0000
+@@ -30,6 +30,16 @@
+ #include "nvidia_uvm_lite_counters.h"
+ #include "ctrl2080mc.h"
+ 
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
++static inline void do_gettimeofday(struct timeval *tv)
++{
++    struct timespec64 now;
++    ktime_get_real_ts64(&now);
++    tv->tv_sec = now.tv_sec;
++    tv->tv_usec = now.tv_nsec/1000;
++}
++#endif
++
+ //
+ // nvidia_uvm_lite.c
+ // This file contains code that is specific to the UVM-Lite mode of operation.



More information about the arch-commits mailing list