summaryrefslogtreecommitdiff
path: root/community-testing/catalyst
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-09-24 00:22:59 -0700
committerroot <root@rshg054.dnsready.net>2012-09-24 00:22:59 -0700
commit8f0a971364bf8fee254a13a94adf2bfa9173e804 (patch)
tree8b25f3fa8cb2e7b6b61d26a667d5f6e3ad967b70 /community-testing/catalyst
parenta7f8166c8968d3414378051d28dcfcc3e377837b (diff)
Mon Sep 24 00:22:58 PDT 2012
Diffstat (limited to 'community-testing/catalyst')
-rw-r--r--community-testing/catalyst/3.5-do_mmap.patch50
-rw-r--r--community-testing/catalyst/PKGBUILD63
-rw-r--r--community-testing/catalyst/catalyst.install16
3 files changed, 129 insertions, 0 deletions
diff --git a/community-testing/catalyst/3.5-do_mmap.patch b/community-testing/catalyst/3.5-do_mmap.patch
new file mode 100644
index 000000000..04248eb7b
--- /dev/null
+++ b/community-testing/catalyst/3.5-do_mmap.patch
@@ -0,0 +1,50 @@
+--- a/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-06-15 18:30:13.483762070 +0200
++++ b/common/lib/modules/fglrx/build_mod/firegl_public.c 2012-06-17 17:47:36.543041869 +0200
+@@ -2106,6 +2106,12 @@
+ }
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
++# define NO_DO_MMAP
++# define do_mmap(a,b,c,d,e,f) vm_mmap(a, b, c, d, e, f)
++# define do_munmap(a,b,c) vm_munmap(b, c)
++#endif
++
+ unsigned long ATI_API_CALL KCL_MEM_AllocLinearAddrInterval(
+ KCL_IO_FILE_Handle file,
+ unsigned long addr,
+@@ -2117,10 +2123,13 @@
+
+ flags = MAP_SHARED;
+ prot = PROT_READ|PROT_WRITE;
+-
++#ifdef NO_DO_MMAP
++ vaddr = (void *) vm_mmap(file, 0, len, prot, flags, pgoff);
++#else
+ down_write(&current->mm->mmap_sem);
+ vaddr = (void *) do_mmap(file, 0, len, prot, flags, pgoff);
+ up_write(&current->mm->mmap_sem);
++#endif
+ if (IS_ERR(vaddr))
+ return 0;
+ else
+@@ -2131,7 +2140,9 @@
+ {
+ int retcode = 0;
+
++#ifndef NO_DO_MMAP
+ down_write(&current->mm->mmap_sem);
++#endif
+ #ifdef FGL_LINUX_RHEL_MUNMAP_API
+ retcode = do_munmap(current->mm,
+ addr,
+@@ -2142,7 +2153,9 @@
+ addr,
+ len);
+ #endif
++#ifndef NO_DO_MMAP
+ up_write(&current->mm->mmap_sem);
++#endif
+ return retcode;
+ }
+
diff --git a/community-testing/catalyst/PKGBUILD b/community-testing/catalyst/PKGBUILD
new file mode 100644
index 000000000..80652f726
--- /dev/null
+++ b/community-testing/catalyst/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 76561 2012-09-23 08:26:49Z lcarlier $
+# Maintainer: idontknow
+# Contributor: to fill with a lot of people
+
+pkgname=catalyst
+pkgver=12.8
+pkgrel=0.1
+_extramodules=extramodules-3.5-ARCH
+pkgdesc="AMD proprietary gpu drivers"
+arch=('i686' 'x86_64')
+url="http://www.amd.com"
+license=('custom')
+depends=('linux>=3.5' 'linux<3.6')
+makedepends=('linux-headers>=3.5' 'linux-headers<3.6')
+#conflicts=('nvidia' 'xf86-video-ati' 'ati-dri')
+source=(http://www2.ati.com/drivers/linux/amd-driver-installer-${pkgver/./-}-x86.x86_64.zip
+ 3.5-do_mmap.patch)
+md5sums=('41c5478322b13be6909eeb46412a3aa0'
+ 'a450e2e3db61994b09e9d99d95bee837')
+install=catalyst.install
+
+build() {
+ cd ${srcdir}
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ BUILDARCH=x86_64
+ _archdir=x86_64
+ else
+ BUILDARCH=i386
+ _archdir=x86
+ fi
+
+ _kernver="$(cat /usr/lib/modules/${_extramodules}/version)"
+ sh ./amd-driver-installer*.run --extract fglrx-install
+
+ cd fglrx-install
+ patch -Np1 -i ../3.5-do_mmap.patch
+
+ cd common/lib/modules/fglrx/build_mod
+ ln -s "${srcdir}/fglrx-install/arch/${_archdir}"/lib/modules/fglrx/build_mod/libfglrx_ip.a
+ ln -s 2.6.x/Makefile
+
+ CFLAGS_MODULE="-DMODULE -DATI -DFGL -DPAGE_ATTR_FIX=0 -DCOMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space -D__SMP__ -DMODVERSIONS"
+
+ make -C /usr/lib/modules/${_kernver}/build SUBDIRS="`pwd`" ARCH=${BUILDARCH} \
+ MODFLAGS="$CFLAGS_MODULE" CFLAGS_MODULE="$CFLAGS_MODULE" \
+ KVER=${_kernver} PAGE_ATTR_FIX=0 modules
+}
+
+package() {
+ depends=(${depends[@]} "catalyst-utils=${pkgver}")
+
+ cd ${srcdir}/fglrx-install/common/lib/modules/fglrx/build_mod
+
+ install -Dm644 fglrx.ko "${pkgdir}/usr/lib/modules/${_extramodules}/fglrx.ko"
+ install -dm755 "${pkgdir}/usr/lib/modprobe.d"
+ echo "blacklist radeon" >> "${pkgdir}/usr/lib/modprobe.d/catalyst.conf"
+ sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "${startdir}/catalyst.install"
+ gzip "${pkgdir}/usr/lib/modules/${_extramodules}/fglrx.ko"
+
+ # license
+ install -Dm644 "${srcdir}/fglrx-install/LICENSE.TXT" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.TXT"
+}
diff --git a/community-testing/catalyst/catalyst.install b/community-testing/catalyst/catalyst.install
new file mode 100644
index 000000000..22b72ea84
--- /dev/null
+++ b/community-testing/catalyst/catalyst.install
@@ -0,0 +1,16 @@
+post_install() {
+ EXTRAMODULES='extramodules-3.5-ARCH'
+ depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
+ echo 'In order to use the catalyst module, reboot the system.'
+}
+
+post_upgrade() {
+ EXTRAMODULES='extramodules-3.5-ARCH'
+ depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
+}
+
+post_remove() {
+ EXTRAMODULES='extramodules-3.5-ARCH'
+ depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
+}
+