summaryrefslogtreecommitdiff
path: root/x11-misc/afbinit/files
diff options
context:
space:
mode:
Diffstat (limited to 'x11-misc/afbinit/files')
-rw-r--r--x11-misc/afbinit/files/afbinit-mmap-1.0.1.patch20
-rw-r--r--x11-misc/afbinit/files/afbinit.init13
-rw-r--r--x11-misc/afbinit/files/rc.afb-1.0.1-r7.patch62
3 files changed, 95 insertions, 0 deletions
diff --git a/x11-misc/afbinit/files/afbinit-mmap-1.0.1.patch b/x11-misc/afbinit/files/afbinit-mmap-1.0.1.patch
new file mode 100644
index 000000000000..43a16c0cbf49
--- /dev/null
+++ b/x11-misc/afbinit/files/afbinit-mmap-1.0.1.patch
@@ -0,0 +1,20 @@
+--- afbinit.c- 2006-01-31 15:21:31.000000000 +0000
++++ afbinit.c 2006-01-31 15:22:23.000000000 +0000
+@@ -236,7 +236,7 @@
+ /* MMAP the registers. */
+ uregs = mmap(0, 0x2000,
+ PROT_READ | PROT_WRITE,
+- MAP_PRIVATE,
++ MAP_SHARED,
+ afb_fd,
+ 0x04000000);
+ if (uregs == (void *)-1L) {
+@@ -246,7 +246,7 @@
+
+ kregs = mmap(0, 0x2000,
+ PROT_READ | PROT_WRITE,
+- MAP_PRIVATE,
++ MAP_SHARED,
+ afb_fd,
+ 0x0bc04000);
+ if (kregs == (void *)-1L) {
diff --git a/x11-misc/afbinit/files/afbinit.init b/x11-misc/afbinit/files/afbinit.init
new file mode 100644
index 000000000000..eb77118e7e01
--- /dev/null
+++ b/x11-misc/afbinit/files/afbinit.init
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ before xdm
+}
+
+start() {
+ ebegin "Loading afbinit"
+ /usr/sbin/rc.afb
+ eend $? "Failed to load afbinit"
+}
diff --git a/x11-misc/afbinit/files/rc.afb-1.0.1-r7.patch b/x11-misc/afbinit/files/rc.afb-1.0.1-r7.patch
new file mode 100644
index 000000000000..37f5f40d1a6a
--- /dev/null
+++ b/x11-misc/afbinit/files/rc.afb-1.0.1-r7.patch
@@ -0,0 +1,62 @@
+--- rc.afb- 1999-09-08 06:42:36.000000000 +0000
++++ rc.afb 2008-03-18 17:55:11.000000000 +0000
+@@ -10,11 +10,6 @@
+ exit 0
+ fi
+
+-if [ `/bin/dmesg | /bin/grep -c "Elite 3D"` -eq 0 ]
+-then
+- exit 0
+-fi
+-
+ # The microcode loader binary and the microcode
+ # itself must exist.
+ if [ ! -x /usr/sbin/afbinit -o ! -f /usr/lib/afb.ucode ]
+@@ -22,13 +17,38 @@
+ exit 0
+ fi
+
+-# Make FB device list.
+-afb_devs=`/bin/dmesg | /bin/egrep -i "Elite 3D" | /bin/sed 's/\:.*//'`
++# Make FB device list, depending on which kind of kernel we have.
++# First, try kernel 2.4.x
++
++if [ `/bin/dmesg | /bin/grep -c "Elite 3D"` -gt 0 ]
++then
++
++ afb_devs=`/bin/dmesg | /bin/egrep -i "Elite 3D" | /bin/sed 's/\:.*//'`
++
++ # Load microcode onto each card.
++ for AFB in ${afb_devs}
++ do
++ echo -n "${AFB}: Loading Elite3D microcode... "
++ /usr/sbin/afbinit /dev/${AFB} /usr/lib/afb.ucode
++ echo "done."
++ done
++ exit 0
++else
++##
++# OK, we're not kernel 2.4.x
++# try kernel 2.6.x
++
++## if [ `/bin/dmesg | /bin/grep -c "AFB"` -gt 0 ]
++## then
+
+-# Load microcode onto each card.
+-for AFB in ${afb_devs}
+-do
+- echo -n "${AFB}: Loading Elite3D microcode... "
+- /usr/sbin/afbinit /dev/${AFB} /usr/lib/afb.ucode
+- echo "done."
+-done
++ [[ -e /proc/fb ]] || exit 0
++ afb_devs=`/bin/more -s /proc/fb | /bin/egrep -i "Elite 3D" | /bin/sed 's/\ .*//'`
++ # Load microcode onto each card.
++ for AFB in ${afb_devs}
++ do
++ echo -n "/dev/fb${AFB}: Loading Elite3D microcode... "
++ /usr/sbin/afbinit /dev/fb${AFB} /usr/lib/afb.ucode
++ echo "done."
++ done
++ exit 0
++fi