summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorsirlucjan2017-05-21 15:49:29 +0200
committersirlucjan2017-05-21 15:49:29 +0200
commit934314dcbafc9f0f9fa705f8307f500dc174bd81 (patch)
tree81de269d09b506e51cb039a86f7022d03676733f
parentc7bcdd28b624596d93f92e71e40cd9d1ca59c836 (diff)
downloadaur-934314dcbafc9f0f9fa705f8307f500dc174bd81.tar.gz
Bump to 4.11.2-1
-rw-r--r--.SRCINFO18
-rw-r--r--PKGBUILD35
-rw-r--r--fs52243.patch14
-rw-r--r--nvidia-340xx-lqx.install2
-rw-r--r--unfuck_4.11_for_340xx.patch112
5 files changed, 158 insertions, 23 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 1977519595e9..0ced03aa7ac9 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index d1d974b2289e..08e0c77c6758 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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;
+