diff options
author | sirlucjan | 2017-05-21 15:49:29 +0200 |
---|---|---|
committer | sirlucjan | 2017-05-21 15:49:29 +0200 |
commit | 934314dcbafc9f0f9fa705f8307f500dc174bd81 (patch) | |
tree | 81de269d09b506e51cb039a86f7022d03676733f | |
parent | c7bcdd28b624596d93f92e71e40cd9d1ca59c836 (diff) | |
download | aur-934314dcbafc9f0f9fa705f8307f500dc174bd81.tar.gz |
Bump to 4.11.2-1
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | PKGBUILD | 35 | ||||
-rw-r--r-- | fs52243.patch | 14 | ||||
-rw-r--r-- | nvidia-340xx-lqx.install | 2 | ||||
-rw-r--r-- | unfuck_4.11_for_340xx.patch | 112 |
5 files changed, 158 insertions, 23 deletions
@@ -7,21 +7,25 @@ pkgbase = nvidia-340xx-lqx arch = i686 arch = x86_64 license = custom - makedepends = linux-lqx-headers>=4.10 - makedepends = linux-lqx-headers<4.11 - depends = linux-lqx>=4.10 - depends = linux-lqx<4.11 + makedepends = linux-lqx-headers>=4.11 + makedepends = linux-lqx-headers<4.12 + depends = linux-lqx>=4.11 + depends = linux-lqx<4.12 depends = nvidia-340xx-libgl depends = nvidia-340xx-utils=340.102 conflicts = nvidia-lqx conflicts = nvidia-304xx-lqx options = !strip source = 4.10.0_kernel.patch - sha512sums = 88a2b448c1e8445dc43820328e86d8f20eb7e3cb5774e704cd44191a9fa26064264510c1adc9ea938fa2c92075496f3a27bd52ae6e6f4ec5fa6d4a829dd961e8 + source = fs52243.patch + source = unfuck_4.11_for_340xx.patch + sha256sums = b47c308d486dd777617d4195fa928091b677e4fca421b487328fab9932bc6222 + sha256sums = d1741377218e512063434c52a62a4fe3cfb23ab0a0ebc9fc817567692541e73e + sha256sums = 72641410ba81af1dfbc8397434dc68a43a9f6ce9ac1b9dfe2beeacb6cbdc98bb source_i686 = http://us.download.nvidia.com/XFree86/Linux-x86/340.102/NVIDIA-Linux-x86-340.102.run - sha512sums_i686 = bea700c925a6044fcded40324bb389c5fa1aadc40831f685a76e7b0ded11161f492960950c201467e564d157dcbe0c330d13a2014f51d0073002c5a262a6f0ca + sha256sums_i686 = 61b13d5dae0f6f5d788a4d8c4c98e8d971d19cb90b606058060d007946248828 source_x86_64 = http://us.download.nvidia.com/XFree86/Linux-x86_64/340.102/NVIDIA-Linux-x86_64-340.102-no-compat32.run - sha512sums_x86_64 = 2a29e6418244ea384e4237d74057bd8e56247b1c503cf623dea34a3b1065d8783879aa7e6a802dd31f0a10cf81cfcab2a1b1a8269b97996f15fa1838c0a3a44b + sha256sums_x86_64 = 6a36bd9a0033769ecd11ce2aa60aeb41b50b20616c43fd19c55e027c451f585e pkgname = nvidia-340xx-lqx @@ -4,36 +4,41 @@ pkgname=nvidia-340xx-lqx pkgver=340.102 -_extramodules=extramodules-4.10-lqx +_extramodules=extramodules-4.11-lqx pkgrel=3 _pkgdesc="NVIDIA 340xx drivers for linux-lqx." pkgdesc="$_pkgdesc" arch=('i686' 'x86_64') url="http://www.nvidia.com/" -depends=('linux-lqx>=4.10' 'linux-lqx<4.11' "nvidia-340xx-libgl" "nvidia-340xx-utils=${pkgver}") -makedepends=('linux-lqx-headers>=4.10' 'linux-lqx-headers<4.11') +depends=('linux-lqx>=4.11' 'linux-lqx<4.12' "nvidia-340xx-libgl" "nvidia-340xx-utils=${pkgver}") +makedepends=('linux-lqx-headers>=4.11' 'linux-lqx-headers<4.12') conflicts=('nvidia-lqx' 'nvidia-304xx-lqx') license=('custom') install=nvidia-340xx-lqx.install options=(!strip) -source=('4.10.0_kernel.patch') +source=('4.10.0_kernel.patch' +'fs52243.patch' +'unfuck_4.11_for_340xx.patch') source_i686+=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run") source_x86_64+=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run") -sha512sums=('88a2b448c1e8445dc43820328e86d8f20eb7e3cb5774e704cd44191a9fa26064264510c1adc9ea938fa2c92075496f3a27bd52ae6e6f4ec5fa6d4a829dd961e8') -sha512sums_i686=('bea700c925a6044fcded40324bb389c5fa1aadc40831f685a76e7b0ded11161f492960950c201467e564d157dcbe0c330d13a2014f51d0073002c5a262a6f0ca') -sha512sums_x86_64=('2a29e6418244ea384e4237d74057bd8e56247b1c503cf623dea34a3b1065d8783879aa7e6a802dd31f0a10cf81cfcab2a1b1a8269b97996f15fa1838c0a3a44b') - +sha256sums=('b47c308d486dd777617d4195fa928091b677e4fca421b487328fab9932bc6222' + 'd1741377218e512063434c52a62a4fe3cfb23ab0a0ebc9fc817567692541e73e' + '72641410ba81af1dfbc8397434dc68a43a9f6ce9ac1b9dfe2beeacb6cbdc98bb') +sha256sums_i686=('61b13d5dae0f6f5d788a4d8c4c98e8d971d19cb90b606058060d007946248828') +sha256sums_x86_64=('6a36bd9a0033769ecd11ce2aa60aeb41b50b20616c43fd19c55e027c451f585e') [[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}" [[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32" prepare() { - sh "${_pkg}.run" --extract-only - cd "${_pkg}" - # patches here - - patch -Np1 < "${srcdir}"/4.10.0_kernel.patch - - cp -a kernel kernel-dkms + sh "${_pkg}.run" --extract-only + cd "${_pkg}" + + # patches here + patch -Np1 -i "${srcdir}"/unfuck_4.11_for_340xx.patch + patch -Np0 < "${srcdir}"/fs52243.patch + patch -Np1 < "${srcdir}"/4.10.0_kernel.patch + + cp -a kernel kernel-dkms } diff --git a/fs52243.patch b/fs52243.patch new file mode 100644 index 000000000000..b6dc35a2e7ff --- /dev/null +++ b/fs52243.patch @@ -0,0 +1,14 @@ +--- kernel/nv-drm.c 2016-12-15 12:41:26.000000000 +0100 ++++ kernel/nv-drm.c 2016-12-15 12:58:48.000000000 +0100 +@@ -115,7 +115,11 @@ + }; + + static struct drm_driver nv_drm_driver = { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) ++ .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY, ++#else + .driver_features = DRIVER_GEM | DRIVER_PRIME, ++#endif + .load = nv_drm_load, + .unload = nv_drm_unload, + .fops = &nv_drm_fops, diff --git a/nvidia-340xx-lqx.install b/nvidia-340xx-lqx.install index 609622529493..1fb0c284bae4 100644 --- a/nvidia-340xx-lqx.install +++ b/nvidia-340xx-lqx.install @@ -1,5 +1,5 @@ post_install() { - EXTRAMODULES='extramodules-4.10-lqx' + EXTRAMODULES='extramodules-4.11-lqx' depmod $(cat /usr/lib/modules/${EXTRAMODULES}/version) echo 'In order to use nvidia module, reboot the system.' } diff --git a/unfuck_4.11_for_340xx.patch b/unfuck_4.11_for_340xx.patch new file mode 100644 index 000000000000..5ee3e4f04b59 --- /dev/null +++ b/unfuck_4.11_for_340xx.patch @@ -0,0 +1,112 @@ +--- a/kernel/nv-drm.c ++++ b/kernel/nv-drm.c +@@ -22,6 +22,8 @@ + #include <drm/drm_gem.h> + #endif + ++#include <linux/version.h> ++ + extern nv_linux_state_t *nv_linux_devices; + + struct nv_gem_object { +@@ -48,7 +50,11 @@ + return -ENODEV; + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0) + static int nv_drm_unload( ++#else ++static void nv_drm_unload( ++#endif + struct drm_device *dev + ) + { +@@ -60,11 +66,19 @@ + { + BUG_ON(nvl->drm != dev); + nvl->drm = NULL; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0) + return 0; ++#else ++ return; ++#endif + } + } + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0) + return -ENODEV; ++#else ++ return; ++#endif + } + + static void nv_gem_free( + +--- a/kernel/uvm/nvidia_uvm_linux.h ++++ b/kernel/uvm/nvidia_uvm_linux.h +@@ -124,6 +124,9 @@ + #include <linux/delay.h> /* mdelay, udelay */ + + #include <linux/sched.h> /* suser(), capable() replacement */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) ++#include <linux/sched/signal.h> ++#endif + #include <linux/moduleparam.h> /* module_param() */ + #if !defined(NV_VMWARE) + #include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */ +@@ -362,6 +365,7 @@ + void address_space_init_once(struct address_space *mapping); + #endif + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0) + #if !defined(NV_FATAL_SIGNAL_PENDING_PRESENT) + static inline int __fatal_signal_pending(struct task_struct *p) + { +@@ -372,6 +376,7 @@ + { + return signal_pending(p) && __fatal_signal_pending(p); + } ++#endif + #endif + + // + +--- a/kernel/uvm/nvidia_uvm_lite.c ++++ b/kernel/uvm/nvidia_uvm_lite.c +@@ -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_fault *vmf) ++#else + int _fault(struct vm_area_struct *vma, struct vm_fault *vmf) ++#endif + { + #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0) + unsigned long vaddr = (unsigned long)vmf->virtual_address; +@@ -828,7 +832,11 @@ + struct page *page = NULL; + int retval; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) ++ retval = _fault_common(NULL, vaddr, &page, vmf->flags); ++#else + retval = _fault_common(vma, 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_fault *vmf) ++#else + int _sigbus_fault(struct vm_area_struct *vma, struct vm_fault *vmf) ++#endif + { + vmf->page = NULL; + return VM_FAULT_SIGBUS; + |