summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schlemmer <azarah@gentoo.org>2003-07-14 11:56:10 +0000
committerMartin Schlemmer <azarah@gentoo.org>2003-07-14 11:56:10 +0000
commitad8ca0fa665633e7123a07e5d42acda8b36dd1d7 (patch)
tree4144c1977bca7c9c35ab148f7f279837baaea108 /media-video/nvidia-kernel
parentupdate 2.5 patches; fixup highpmd stuff (diff)
downloadhistorical-ad8ca0fa665633e7123a07e5d42acda8b36dd1d7.tar.gz
historical-ad8ca0fa665633e7123a07e5d42acda8b36dd1d7.tar.bz2
historical-ad8ca0fa665633e7123a07e5d42acda8b36dd1d7.zip
update 2.5 patches; fixup highpmd stuff
Diffstat (limited to 'media-video/nvidia-kernel')
-rw-r--r--media-video/nvidia-kernel/Manifest4
-rw-r--r--media-video/nvidia-kernel/files/1.0.4363/NVIDIA_kernel-1.0-4363-highpmd-20030713.diff53
-rw-r--r--media-video/nvidia-kernel/files/digest-nvidia-kernel-1.0.4363-r31
-rw-r--r--media-video/nvidia-kernel/nvidia-kernel-1.0.4363-r3.ebuild158
4 files changed, 214 insertions, 2 deletions
diff --git a/media-video/nvidia-kernel/Manifest b/media-video/nvidia-kernel/Manifest
index bc3f95b4fe2d..ea3f2b2b0d36 100644
--- a/media-video/nvidia-kernel/Manifest
+++ b/media-video/nvidia-kernel/Manifest
@@ -1,7 +1,7 @@
MD5 04b1f361d40708ab81631bea5e46a632 nvidia-kernel-1.0.2880-r1.ebuild 1970
-MD5 0fab994fcc2ec417b5fd46d491b8e369 ChangeLog 7890
+MD5 0067738cc0705d9823ed5f5d622e260d ChangeLog 8367
MD5 5177ed76121fb4bc1aa220c62319d196 nvidia-kernel-1.0.2960-r1.ebuild 2081
-MD5 cbda0499dcc63e7006d39139a2b2071c nvidia-kernel-1.0.4363-r3.ebuild 4325
+MD5 47a622c47c5a073a5969ef9e56886091 nvidia-kernel-1.0.4363-r3.ebuild 4325
MD5 16a9003f79bea31eeec6f03ae64cd8ef nvidia-kernel-1.0.3123-r2.ebuild 3229
MD5 cdcf177830becdf3c2cb628e1d6a6749 nvidia-kernel-1.0.4363-r2.ebuild 4180
MD5 0646bd1f1f1109063862d1475aaccab4 nvidia-kernel-1.0.4349-r2.ebuild 3702
diff --git a/media-video/nvidia-kernel/files/1.0.4363/NVIDIA_kernel-1.0-4363-highpmd-20030713.diff b/media-video/nvidia-kernel/files/1.0.4363/NVIDIA_kernel-1.0-4363-highpmd-20030713.diff
new file mode 100644
index 000000000000..c24f7659e7ed
--- /dev/null
+++ b/media-video/nvidia-kernel/files/1.0.4363/NVIDIA_kernel-1.0-4363-highpmd-20030713.diff
@@ -0,0 +1,53 @@
+diff -urpN NVIDIA_kernel-1.0-4363/nv-linux.h NVIDIA_kernel-1.0-4363.highpmd-fixup/nv-linux.h
+--- NVIDIA_kernel-1.0-4363/nv-linux.h 2003-07-14 12:42:00.000000000 +0200
++++ NVIDIA_kernel-1.0-4363.highpmd-fixup/nv-linux.h 2003-07-14 13:38:02.000000000 +0200
+@@ -228,14 +228,14 @@
+
+ #if defined(pmd_offset_map)
+ #define NV_PMD_OFFSET(address, pgd, pmd) \
+- { \
+- pmd_t *pmd__ = pmd_offset_map(pgd, address); \
+- pmd = *pmd__; \
+- pmd_unmap(pgd__); \
+- }
++ pmd = pmd_offset_map(pgd, address)
++#define NV_PMD_UNMAP(pmd) \
++ pmd_unmap(pmd)
+ #else
+ #define NV_PMD_OFFSET(address, pgd, pmd) \
+- pmd = *pmd_offset(pgd, address)
++ pmd = pmd_offset(pgd, address)
++#define NV_PMD_UNMAP(pmd) \
++ ;
+ #endif
+
+ #define NV_PAGE_ALIGN(addr) ( ((addr) + PAGE_SIZE - 1) / PAGE_SIZE)
+diff -urpN NVIDIA_kernel-1.0-4363/nv.c NVIDIA_kernel-1.0-4363.highpmd-fixup/nv.c
+--- NVIDIA_kernel-1.0-4363/nv.c 2003-07-14 12:42:00.000000000 +0200
++++ NVIDIA_kernel-1.0-4363.highpmd-fixup/nv.c 2003-07-14 13:38:43.000000000 +0200
+@@ -2087,7 +2087,7 @@ unsigned long
+ nv_get_phys_address(unsigned long address)
+ {
+ pgd_t *pgd;
+- pmd_t pmd;
++ pmd_t *pmd;
+ pte_t pte;
+
+ #if defined(NVCPU_IA64)
+@@ -2110,10 +2110,14 @@ nv_get_phys_address(unsigned long addres
+
+ NV_PMD_OFFSET(address, pgd, pmd);
+
+- if (pmd_none(pmd))
++ if (pmd_none(*pmd)) {
++ NV_PMD_UNMAP(pmd);
+ goto failed;
++ }
++
++ NV_PTE_OFFSET(address, pmd, pte);
+
+- NV_PTE_OFFSET(address, &pmd, pte);
++ NV_PMD_UNMAP(pmd);
+
+ if (!pte_present(pte))
+ goto failed;
diff --git a/media-video/nvidia-kernel/files/digest-nvidia-kernel-1.0.4363-r3 b/media-video/nvidia-kernel/files/digest-nvidia-kernel-1.0.4363-r3
new file mode 100644
index 000000000000..b1f93afc2136
--- /dev/null
+++ b/media-video/nvidia-kernel/files/digest-nvidia-kernel-1.0.4363-r3
@@ -0,0 +1 @@
+MD5 29b4cfcff63f502787fd2f0ac7a105fd NVIDIA_kernel-1.0-4363.tar.gz 661447
diff --git a/media-video/nvidia-kernel/nvidia-kernel-1.0.4363-r3.ebuild b/media-video/nvidia-kernel/nvidia-kernel-1.0.4363-r3.ebuild
new file mode 100644
index 000000000000..40d4ec12a40d
--- /dev/null
+++ b/media-video/nvidia-kernel/nvidia-kernel-1.0.4363-r3.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/nvidia-kernel-1.0.4363-r3.ebuild,v 1.1 2003/07/14 11:54:42 azarah Exp $
+
+inherit eutils
+
+# Make sure Portage does _NOT_ strip symbols. Need both lines for
+# Portage 1.8.9+
+DEBUGBUILD="yes"
+RESTRICT="nostrip"
+
+NV_V="${PV/1.0./1.0-}"
+NV_PACKAGE="NVIDIA_kernel-${NV_V}"
+S="${WORKDIR}/${NV_PACKAGE}"
+DESCRIPTION="Linux kernel module for the NVIDIA's X driver"
+SRC_URI="ftp://download.nvidia.com/XFree86/Linux-x86/${NV_V}/${NV_PACKAGE}.tar.gz"
+HOMEPAGE="http://www.nvidia.com/"
+
+# The slow needs to be set to $KV to prevent unmerges of
+# modules for other kernels.
+LICENSE="NVIDIA"
+SLOT="${KV}"
+KEYWORDS="~x86 -ppc -sparc -alpha -hppa -mips -arm"
+
+DEPEND="virtual/linux-sources
+ >=sys-apps/portage-1.9.10"
+RDEPEND=${DEPEND}
+IUSE=""
+
+pkg_setup() {
+ if [ ! -f /proc/mtrr ]
+ then
+ eerror "This version needs MTRR support for most chipsets!"
+ eerror "Please enable MTRR support in your kernel config, found at:"
+ eerror
+ eerror " Processor type and features -> [*] MTRR (Memory Type Range Register) support"
+ eerror
+ eerror "and recompile your kernel ..."
+ die "MTRR support not detected!"
+ fi
+
+ check_version_h
+}
+
+check_version_h() {
+ if [ ! -f "${ROOT}/usr/src/linux/include/linux/version.h" ]
+ then
+ eerror "Please verify that your /usr/src/linux symlink is pointing"
+ eerror "to your current kernel sources, and that you did run:"
+ eerror
+ eerror " # make dep"
+ die "/usr/src/linux symlink not setup!"
+ fi
+}
+
+get_KV_info() {
+ check_version_h
+
+ # Get the kernel version of sources in /usr/src/linux ...
+ export KV_full="$(awk '/UTS_RELEASE/ { gsub("\"", "", $3); print $3 }' \
+ "${ROOT}/usr/src/linux/include/linux/version.h")"
+ export KV_major="$(echo "${KV_full}" | cut -d. -f1)"
+ export KV_minor="$(echo "${KV_full}" | cut -d. -f2)"
+ export KV_micro="$(echo "${KV_full}" | cut -d. -f3 | sed -e 's:[^0-9].*::')"
+}
+
+is_2_5_kernel() {
+ get_KV_info
+
+ if [ "${KV_major}" -eq 2 -a "${KV_minor}" -eq 5 ]
+ then
+ return 0
+ else
+ return 1
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+
+ # Next section applies patches for linux-2.5 kernel, and/or
+ # bugfixes for linux-2.4. All these are from:
+ #
+ # http://www.minion.de/nvidia/
+ #
+ # Many thanks to Christian Zander <zander@minion.de> for bringing
+ # these to us, and being so helpful to select which to use.
+
+ get_KV_info
+
+ cd ${S}
+ einfo "Linux kernel ${KV_major}.${KV_minor}.${KV_micro}"
+
+ if is_2_5_kernel
+ then
+ EPATCH_SINGLE_MSG="Applying tasklet patch for kernel 2.5..." \
+ epatch ${FILESDIR}/${PV}/${NV_PACKAGE}-2.5-20030713.diff
+
+ # As Andrew Morton pointed out, it is not good practice to
+ # unmap something and then use a copy of the structure that
+ # was unmapped.
+ EPATCH_SINGLE_MSG="Applying highpmd cleanup patch..." \
+ epatch ${FILESDIR}/${PV}/${NV_PACKAGE}-highpmd-20030713.diff
+
+ # Kbuild have issues currently (sandbox related).
+ ln -snf Makefile.nvidia Makefile
+ fi
+}
+
+src_compile() {
+ # Portage should determine the version of the kernel sources
+ check_KV
+
+ # IGNORE_CC_MISMATCH disables a sanity check that's needed when gcc has been
+ # updated but the running kernel is still compiled with an older gcc. This is
+ # needed for chrooted building, where the sanity check detects the gcc of the
+ # kernel outside the chroot rather than within.
+ make IGNORE_CC_MISMATCH="yes" KERNDIR="/usr/src/linux" \
+ clean nvidia.o || die
+}
+
+src_install() {
+ # The driver goes into the standard modules location
+ insinto /lib/modules/${KV}/video
+ doins nvidia.o
+
+ # Add the aliases
+ insinto /etc/modules.d
+ newins ${FILESDIR}/nvidia-1.1 nvidia
+
+ # Docs
+ dodoc ${S}/README
+
+ # The device creation script
+ into /
+ newsbin ${S}/makedevices.sh NVmakedevices.sh
+}
+
+pkg_postinst() {
+ if [ "${ROOT}" = "/" ]
+ then
+ # Update module dependency
+ [ -x /usr/sbin/update-modules ] && /usr/sbin/update-modules
+ if [ ! -e /dev/.devfsd ] && [ -x /sbin/NVmakedevices.sh ]
+ then
+ /sbin/NVmakedevices.sh >/dev/null 2>&1
+ fi
+ fi
+
+ echo
+ einfo "If you are not using devfs, loading the module automatically at"
+ einfo "boot up, you need to add \"nvidia\" to your /etc/modules.autoload."
+ echo
+ ewarn "Please note that the driver name changed from \"NVdriver\""
+ ewarn "to \"nvidia.o\"."
+ echo
+}
+