summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorgraysky2017-01-27 15:22:23 -0500
committergraysky2017-01-27 15:22:23 -0500
commitc443f5f1d9ad48ede3d2ec707670a29ea5abdaa2 (patch)
tree5f85d3d2110c769140b997db88939041bcf1eb79
parent84b9b1429fab5551f36cf67658e3847cb6b9f805 (diff)
downloadaur-c443f5f1d9ad48ede3d2ec707670a29ea5abdaa2.tar.gz
Update to 304.134-4
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD14
-rw-r--r--disable-mtrr.patch4
-rw-r--r--unfuck_kernel_4.9_series.patch20
4 files changed, 37 insertions, 9 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 6d857099247b..7c808e408b59 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Thu Jan 26 22:13:54 UTC 2017
+# Fri Jan 27 20:22:23 UTC 2017
pkgbase = nvidia-304xx-ck
pkgdesc = NVIDIA drivers for linux-ck, 304xx legacy branch.
pkgver = 304.134
- pkgrel = 3
+ pkgrel = 4
url = http://www.nvidia.com/
install = readme.install
arch = i686
@@ -20,7 +20,9 @@ pkgbase = nvidia-304xx-ck
conflicts = nvidia-ck
options = !strip
source = disable-mtrr.patch
- sha256sums = cbaa0c4e4f30d993958c079a22e0346970f99d4fda9d12379777bb16ab3306c9
+ source = unfuck_kernel_4.9_series.patch
+ sha256sums = 4263cf19e49acb33ad2641db674ea1eccb71a573300b345636fe99c87fcbdc71
+ sha256sums = c2e697e56ac1bf418052a24c16c77d5149474b661227c494ce9949d050c2d9c5
source_i686 = http://us.download.nvidia.com/XFree86/Linux-x86/304.134/NVIDIA-Linux-x86-304.134.run
sha256sums_i686 = 84f7891af131bb9f9a8a34401dfef4288218019406dfa4ae57b6d52b14e81c9d
source_x86_64 = http://us.download.nvidia.com/XFree86/Linux-x86_64/304.134/NVIDIA-Linux-x86_64-304.134-no-compat32.run
diff --git a/PKGBUILD b/PKGBUILD
index 77cc78c9af58..8facf69a6d65 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
pkgname=nvidia-304xx-ck
pkgver=304.134
_extramodules=extramodules-4.9-ck
-pkgrel=3
+pkgrel=4
_pkgdesc="NVIDIA drivers for linux-ck, 304xx legacy branch."
pkgdesc="$_pkgdesc"
arch=('i686' 'x86_64')
@@ -19,10 +19,12 @@ license=('custom')
install=readme.install
options=(!strip)
source=('disable-mtrr.patch'
+'unfuck_kernel_4.9_series.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")
-sha256sums=('cbaa0c4e4f30d993958c079a22e0346970f99d4fda9d12379777bb16ab3306c9')
+sha256sums=('4263cf19e49acb33ad2641db674ea1eccb71a573300b345636fe99c87fcbdc71'
+ 'c2e697e56ac1bf418052a24c16c77d5149474b661227c494ce9949d050c2d9c5')
sha256sums_i686=('84f7891af131bb9f9a8a34401dfef4288218019406dfa4ae57b6d52b14e81c9d')
sha256sums_x86_64=('42213765cd28078314657d3c1ba382584f09e5e57598240596021f4f76c0c443')
[[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
@@ -32,8 +34,12 @@ prepare() {
sh "${_pkg}.run" --extract-only
cd "${_pkg}"
- # FS#47092
- (cd kernel; patch -p1 --no-backup-if-mismatch -i "$srcdir"/disable-mtrr.patch)
+ # FS#47092
+ #(cd kernel; patch -p1 --no-backup-if-mismatch -i "$srcdir"/disable-mtrr.patch)
+ patch -Np1 -i "$srcdir/disable-mtrr.patch"
+
+ # FS#52734
+ patch -Np1 -i "$srcdir/unfuck_kernel_4.9_series.patch"
}
build() {
diff --git a/disable-mtrr.patch b/disable-mtrr.patch
index 9be9e2c86270..1a88fc75ece7 100644
--- a/disable-mtrr.patch
+++ b/disable-mtrr.patch
@@ -4,8 +4,8 @@ Description: Disable MTRR on kernel >= 4.3
longer exported. The Nvidia kernel shim still uses it as of 304.131, causing
the module to error out when loading. Disable MTRR if running on 4.3 or greater
until upstream fixes it.
---- a/nv-linux.h
-+++ b/nv-linux.h
+--- a/kernel/nv-linux.h
++++ b/kernel/nv-linux.h
@@ -256,6 +256,15 @@
#include <linux/seq_file.h>
#endif
diff --git a/unfuck_kernel_4.9_series.patch b/unfuck_kernel_4.9_series.patch
new file mode 100644
index 000000000000..bdacabc620dd
--- /dev/null
+++ b/unfuck_kernel_4.9_series.patch
@@ -0,0 +1,20 @@
+Author: Luca Boccassi <luca.boccassi@gmail.com>
+Description: Fix kernel module load on 4.9 and greater
+ From kernel 4.9 and newer (commit fa5386459f06) non-modesetting drivers have
+ to use the DRM flag DRIVER_LEGACY. Without this flag the kernel module does
+ not load correctly.
+
+--- a/kernel/nv-drm.c
++++ b/kernel/nv-drm.c
+@@ -71,7 +71,11 @@
+ };
+
+ static struct drm_driver nv_drm_driver = {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0)
+ .driver_features = 0,
++#else
++ .driver_features = DRIVER_LEGACY,
++#endif
+ .load = nv_drm_load,
+ .unload = nv_drm_unload,
+ .fops = &nv_drm_fops,