summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/nvidia-71xx
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core-testing/nvidia-71xx')
-rw-r--r--abs/core-testing/nvidia-71xx/NVIDIA_173.14.12_2.6.27.patch87
-rw-r--r--abs/core-testing/nvidia-71xx/PKGBUILD45
-rw-r--r--abs/core-testing/nvidia-71xx/nvidia-71xx.install23
3 files changed, 155 insertions, 0 deletions
diff --git a/abs/core-testing/nvidia-71xx/NVIDIA_173.14.12_2.6.27.patch b/abs/core-testing/nvidia-71xx/NVIDIA_173.14.12_2.6.27.patch
new file mode 100644
index 0000000..1ba936b
--- /dev/null
+++ b/abs/core-testing/nvidia-71xx/NVIDIA_173.14.12_2.6.27.patch
@@ -0,0 +1,87 @@
+diff -Nru NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/nv.c NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv.c
+--- usr/src/nv/nv.c 2008-07-18 03:42:50.000000000 +0200
++++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv.c 2008-08-12 00:35:45.000000000 +0200
+@@ -1296,14 +1296,22 @@
+ if (get_cpu() == cpu)
+ __nv_setup_pat_entries(NULL);
+ else
++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++ smp_call_function(__nv_setup_pat_entries, hcpu, 1);
++ #else
+ smp_call_function(__nv_setup_pat_entries, hcpu, 1, 1);
++ #endif
+ put_cpu();
+ break;
+ case CPU_DOWN_PREPARE:
+ if (get_cpu() == cpu)
+ __nv_restore_pat_entries(NULL);
+ else
++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++ smp_call_function(__nv_restore_pat_entries, hcpu, 1);
++ #else
+ smp_call_function(__nv_restore_pat_entries, hcpu, 1, 1);
++ #endif
+ put_cpu();
+ break;
+ }
+diff -Nru NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/nv-linux.h NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv-linux.h
+--- usr/src/nv/nv-linux.h 2008-07-18 03:42:51.000000000 +0200
++++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv-linux.h 2008-08-12 00:44:27.000000000 +0200
+@@ -104,7 +104,10 @@
+ #endif
+
+ #include <linux/spinlock.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++#else
+ #include <asm/semaphore.h>
++#endif
+ #include <linux/completion.h>
+ #include <linux/highmem.h>
+
+@@ -665,13 +668,21 @@
+ #if defined(preempt_disable)
+ preempt_disable();
+ #endif
++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++ ret = smp_call_function(func, info, 1);
++ #else
+ ret = smp_call_function(func, info, 1, 1);
++ #endif
+ func(info);
+ #if defined(preempt_enable)
+ preempt_enable();
+ #endif
+ #else
++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++ ret = on_each_cpu(func, info, 1);
++ #else
+ ret = on_each_cpu(func, info, 1, 1);
++ #endif
+ #endif
+ return ret;
+ }
+diff -Nru NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/os-interface.c NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/os-interface.c
+--- usr/src/nv/os-interface.c 2008-07-18 03:42:50.000000000 +0200
++++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/os-interface.c 2008-08-12 00:48:07.000000000 +0200
+@@ -48,7 +48,11 @@
+ #endif
+ local_bh_disable();
+ atomic_set(&os_smp_barrier, 1);
++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++ ret = smp_call_function(ipi_handler, NULL, 0);
++ #else
+ ret = smp_call_function(ipi_handler, NULL, 1, 0);
++ #endif
+ #endif
+ return (ret == 0) ? RM_OK : RM_ERROR;
+ }
+@@ -704,7 +708,9 @@
+ U032 sig
+ )
+ {
++ #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26)
+ return kill_proc(pid, sig, 1) ? RM_ERR_OPERATING_SYSTEM : RM_OK;
++ #endif
+ }
+
+ /*******************************************************************************/
diff --git a/abs/core-testing/nvidia-71xx/PKGBUILD b/abs/core-testing/nvidia-71xx/PKGBUILD
new file mode 100644
index 0000000..e879abe
--- /dev/null
+++ b/abs/core-testing/nvidia-71xx/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 14777 2008-10-10 15:34:50Z thomas $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=nvidia-71xx
+pkgver=71.86.06
+_kernver='2.6.26-ARCH'
+pkgrel=3
+pkgdesc="NVIDIA legacy drivers for kernel26, 71xx branch"
+arch=(i686 x86_64)
+[ "$CARCH" = "i686" ] && ARCH=x86
+[ "$CARCH" = "x86_64" ] && ARCH=x86_64
+url="http://www.nvidia.com/"
+depends=('nvidia-71xx-utils' 'kernel26>=2.6.26' 'kernel26<2.6.28')
+conflicts=('nvidia' 'nvidia-96xx' 'nvidia-legacy')
+replaces=('nvidia-legacy')
+license=('custom')
+source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run
+ NVIDIA_173.14.12_2.6.27.patch)
+install="nvidia-71xx.install"
+md5sums=('61e4511d1bbb2962ca139091210b61ea'
+ 'cd4a68b5a88be6976b90cd0df6bfe89e')
+[ "$CARCH" = "x86_64" ] && md5sums=('205599549ddd6fadecfbc1adb090dfe2'
+ 'cd4a68b5a88be6976b90cd0df6bfe89e')
+
+build() {
+ cd $startdir/src
+
+ # Extract
+ cd $startdir/src/
+ sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run --extract-only
+ cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg0
+
+ # Any extra patches are applied in here...
+ patch -Np1 -i ../NVIDIA_173.14.12_2.6.27.patch || return 1
+
+ cd usr/src/nv/
+ ln -s Makefile.kbuild Makefile
+ make SYSSRC=/lib/modules/$_kernver/build module || return 1
+
+ # install kernel module
+ mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/
+ install -m644 nvidia.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/ || return 1
+
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
+}
diff --git a/abs/core-testing/nvidia-71xx/nvidia-71xx.install b/abs/core-testing/nvidia-71xx/nvidia-71xx.install
new file mode 100644
index 0000000..18b7435
--- /dev/null
+++ b/abs/core-testing/nvidia-71xx/nvidia-71xx.install
@@ -0,0 +1,23 @@
+# arg 1: the new package version
+post_install() {
+ KERNEL_VERSION='2.6.26-ARCH'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+ rmmod nvidia >/dev/null 2>&1 || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.'
+}
+
+# arg 1: the old package version
+post_remove() {
+ KERNEL_VERSION='2.6.26-ARCH'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ rmmod nvidia >/dev/null 2>&1
+}
+
+op=$1
+shift
+$op $*