ati: Updated 8.35.5 -> 8.37.6 (thanks to tilman)

This commit is contained in:
Jose V Beneyto 2007-06-07 16:00:07 +02:00
parent 39d38edfce
commit 31f9a0114d
8 changed files with 71 additions and 408 deletions

View File

@ -46,6 +46,8 @@ drwxr-xr-x root/root usr/lib/xorg/
drwxr-xr-x root/root usr/lib/xorg/modules/
drwxr-xr-x root/root usr/lib/xorg/modules/drivers/
-rwxr-xr-x root/root usr/lib/xorg/modules/drivers/fglrx_drv.so
-rw-r--r-- root/root usr/lib/xorg/modules/esut.a
-rwxr-xr-x root/root usr/lib/xorg/modules/glesx.so
drwxr-xr-x root/root usr/lib/xorg/modules/linux/
-rwxr-xr-x root/root usr/lib/xorg/modules/linux/libfglrxdrm.so
drwxr-xr-x root/root usr/man/

View File

@ -1,4 +1,2 @@
5c4e56501fc8a698cdfce8a475eb51ae ati-2.6.20.patch
0df9894e970fee8be2bfba4352bf0806 ati-8.35.5-2.6.20.patch
c580c83cbf99007a4256fd40368cb2d9 ati-driver-installer-8.35.5-x86.x86_64.run
e4d8a8b28ae298b673c492c34799d515 atieventsd.sh
ebad4685199a9b3704237bc165de00d4 ati-driver-installer-8.37.6-x86.x86_64.run
ff77a2be2912534c687b61f5e8888944 atieventsd

View File

@ -5,67 +5,51 @@
# Depends on: mesa3d, gl-select
name=ati
version=8.35.5
version=8.37.6
release=1
source=(http://www2.ati.com/drivers/linux/$name-driver-installer-$version-x86.x86_64.run \
ati-2.6.20.patch \
ati-$version-2.6.20.patch \
atieventsd.sh)
atieventsd)
build() {
march=x86
# xorg-server 1.1 and its prereleases correspond to xorg 7.1
if [ `pkg-config --modversion xorg-server | cut -d'.' -f2` -gt 0 ]; then
xversion=x710
else
xversion=x690
fi
chmod +x $name-driver-installer-$version-x86.x86_64.run
./$name-driver-installer-$version-x86.x86_64.run --extract $SRC/tmp
# patch
if [ "`uname -r | cut -d'.' -f1,2,3`" == "2.6.20" ]; then
cd $SRC/tmp
patch -Np0 -i $SRC/ati-2.6.20.patch
patch `find $SRC -type f -name 'firegl_public.c'` \
$SRC/ati-$version-2.6.20.patch
fi
# make
cd $SRC/tmp/common/lib/modules/fglrx/build_mod
ln -s $SRC/tmp/arch/$march/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC4 .
chmod +x make.sh
./make.sh
# install kernel module
install -d $PKG/lib/modules/`uname -r`/kernel/drivers/char/drm
install -m 644 $SRC/tmp/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko \
$PKG/lib/modules/`uname -r`/kernel/drivers/char/drm
# install xorg
install -d $PKG/usr/{bin,sbin}
install -m 0755 $SRC/tmp/arch/$march/usr/X11R6/bin/* $PKG/usr/bin
install -m 0755 $SRC/tmp/arch/$march/usr/sbin/* $PKG/usr/sbin
install -d $PKG/usr/lib/{dri,xorg/modules}
install -m 0755 $SRC/tmp/arch/$march/usr/X11R6/lib/modules/dri/* \
$PKG/usr/lib/dri
rm -rf $SRC/tmp/arch/$march/usr/X11R6/lib/modules
install -m 0775 $SRC/tmp/arch/$march/usr/X11R6/lib/* $PKG/usr/lib
install -d $PKG/etc
mv $SRC/tmp/common/etc/ati $PKG/etc/
rm -f $PKG/etc/ati/logo*
mv $SRC/tmp/common/usr/X11R6/include $PKG/usr/
cp -a $SRC/tmp/common/usr/include/* $PKG/usr/include/
install -m 0755 $SRC/tmp/common/usr/sbin/atigetsysteminfo.sh $PKG/usr/sbin
mv $SRC/tmp/common/usr/share/man $PKG/usr/
mv $SRC/tmp/$xversion/usr/X11R6/lib/modules/* $PKG/usr/lib/xorg/modules/
# tune installation
ln -sf /usr/lib/libfglrx_pp.so.1.0 $PKG/usr/lib/libfglrx_pp.so.1
ln -sf /usr/lib/libfglrx_gamma.so.1.0 $PKG/usr/lib/libfglrx_gamma.so.1
install -D -m 0755 $SRC/atieventsd.sh $PKG/etc/rc.d/atieventsd
#install -D -m 0644 $SRC/tmp/common/usr/share/icons/ati.xpm \
# $PKG/usr/share/icons/ati.xpm
# required for use xorg-gl-select
mv -v $PKG/usr/lib/libGL.so.1.2 $PKG/usr/lib/libGL_so_1_2_ati
build() {
chmod +x $name-driver-installer-$version-x86.x86_64.run
./$name-driver-installer-${version}-x86.x86_64.run --extract ${SRC}/tmp
# make
cd ${SRC}/tmp/common/lib/modules/fglrx/build_mod
ln -s ${SRC}/tmp/arch/x86/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC4 .
chmod +x make.sh
./make.sh
# install kernel module
install -D -m 0644 ${SRC}/tmp/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko \
${PKG}/lib/modules/`uname -r`/kernel/drivers/char/drm/fglrx.ko
# install xorg
install -d ${PKG}/usr/{bin,sbin}
install -m 0755 ${SRC}/tmp/arch/x86/usr/X11R6/bin/* ${PKG}/usr/bin
install -m 0755 ${SRC}/tmp/arch/x86/usr/sbin/* ${PKG}/usr/sbin
install -d ${PKG}/usr/lib/{dri,xorg/modules}
install -m 0755 ${SRC}/tmp/arch/x86/usr/X11R6/lib/modules/dri/* \
${PKG}/usr/lib/dri
rm -rf ${SRC}/tmp/arch/x86/usr/X11R6/lib/modules
install -m 0775 ${SRC}/tmp/arch/x86/usr/X11R6/lib/* ${PKG}/usr/lib
install -d ${PKG}/etc
mv ${SRC}/tmp/common/etc/ati ${PKG}/etc/
rm -f ${PKG}/etc/ati/logo*
mv ${SRC}/tmp/common/usr/X11R6/include ${PKG}/usr/
cp -a ${SRC}/tmp/common/usr/include/* ${PKG}/usr/include/
install -m 0755 ${SRC}/tmp/common/usr/sbin/atigetsysteminfo.sh ${PKG}/usr/sbin
mv ${SRC}/tmp/common/usr/share/man ${PKG}/usr/
mv ${SRC}/tmp/x710/usr/X11R6/lib/modules/* ${PKG}/usr/lib/xorg/modules/
# finetune the installation
ln -sf /usr/lib/libfglrx_pp.so.1.0 ${PKG}/usr/lib/libfglrx_pp.so.1
ln -sf /usr/lib/libfglrx_gamma.so.1.0 ${PKG}/usr/lib/libfglrx_gamma.so.1
install -D -m 0755 ${SRC}/atieventsd ${PKG}/etc/rc.d/atieventsd
# required for use xorg-gl-select
mv -v ${PKG}/usr/lib/libGL.so.1.2 ${PKG}/usr/lib/libGL_so_1_2_ati
# patching file to avoid X11R6 paths
perl -pi -e "s/\0\/usr\/X11R6\/lib\/modules\/dri\0/\0\/usr\/lib\/dri\0padpadpadpadpa/" \
${PKG}/usr/lib/libGL_so_1_2_ati
}

View File

@ -1,73 +0,0 @@
--- common/lib/modules/fglrx/build_mod/firegl_public.c 2006-12-18 10:58:15.000000000 -0500
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2006-12-18 11:14:04.000000000 -0500
@@ -181,6 +181,70 @@
int errno;
#endif // __ia64__
+#if defined(__i386__)
+#define __syscall_return(type, res) \
+do { \
+ if ((unsigned long)(res) >= (unsigned long)(-(128 + 1))) { \
+ errno = -(res); \
+ res = -1; \
+ } \
+ return (type) (res); \
+} while (0)
+#define _syscall2(type,name,type1,arg1,type2,arg2) \
+type name(type1 arg1,type2 arg2) \
+{ \
+long __res; \
+__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)) \
+ : "memory"); \
+__syscall_return(type,__res); \
+}
+
+#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
+type name(type1 arg1,type2 arg2,type3 arg3) \
+{ \
+long __res; \
+__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)), \
+ "d" ((long)(arg3)) : "memory"); \
+__syscall_return(type,__res); \
+}
+#elif defined(__x86_64__)
+#define __syscall_clobber "r11","rcx","memory"
+#define __syscall "syscall"
+
+#define __syscall_return(type, res) \
+do { \
+ if ((unsigned long)(res) >= (unsigned long)(-127)) { \
+ errno = -(res); \
+ res = -1; \
+ } \
+ return (type) (res); \
+} while (0)
+#define _syscall2(type,name,type1,arg1,type2,arg2) \
+type name(type1 arg1,type2 arg2) \
+{ \
+long __res; \
+__asm__ volatile (__syscall \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)) : __syscall_clobber ); \
+__syscall_return(type,__res); \
+}
+
+#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
+type name(type1 arg1,type2 arg2,type3 arg3) \
+{ \
+long __res; \
+__asm__ volatile (__syscall \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)), \
+ "d" ((long)(arg3)) : __syscall_clobber); \
+__syscall_return(type,__res); \
+}
+#endif
+
// int mlock(const void *addr, size_t len);
_syscall2(int, mlock, const void *, addr, size_t, len )
// int munlock(const void *addr, size_t len);

View File

@ -1,163 +0,0 @@
-- firegl_public.c-orig 2007-02-21 19:56:45.000000000 -0500
+++ firegl_public.c 2007-02-25 12:31:59.000000000 -0500
@@ -119,6 +119,7 @@
#include <linux/interrupt.h>
#include <linux/delay.h>
+#include <linux/freezer.h>
#include <linux/console.h>
//#include <linux/signal.h>
@@ -204,6 +205,70 @@
int errno;
#endif // __ia64__
+#if defined(__i386__)
+#define __syscall_return(type, res) \
+do { \
+ if ((unsigned long)(res) >= (unsigned long)(-(128 + 1))) { \
+ errno = -(res); \
+ res = -1; \
+ } \
+ return (type) (res); \
+} while (0)
+#define _syscall2(type,name,type1,arg1,type2,arg2) \
+type name(type1 arg1,type2 arg2) \
+{ \
+long __res; \
+__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)) \
+ : "memory"); \
+__syscall_return(type,__res); \
+}
+
+#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
+type name(type1 arg1,type2 arg2,type3 arg3) \
+{ \
+long __res; \
+__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)), \
+ "d" ((long)(arg3)) : "memory"); \
+__syscall_return(type,__res); \
+}
+#elif defined(__x86_64__)
+#define __syscall_clobber "r11","rcx","memory"
+#define __syscall "syscall"
+
+#define __syscall_return(type, res) \
+do { \
+ if ((unsigned long)(res) >= (unsigned long)(-127)) { \
+ errno = -(res); \
+ res = -1; \
+ } \
+ return (type) (res); \
+} while (0)
+#define _syscall2(type,name,type1,arg1,type2,arg2) \
+type name(type1 arg1,type2 arg2) \
+{ \
+long __res; \
+__asm__ volatile (__syscall \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)) : __syscall_clobber ); \
+__syscall_return(type,__res); \
+}
+
+#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
+type name(type1 arg1,type2 arg2,type3 arg3) \
+{ \
+long __res; \
+__asm__ volatile (__syscall \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)), \
+ "d" ((long)(arg3)) : __syscall_clobber); \
+__syscall_return(type,__res); \
+}
+#endif
+
// int mlock(const void *addr, size_t len);
_syscall2(int, mlock, const void *, addr, size_t, len )
// int munlock(const void *addr, size_t len);
@@ -4341,24 +4406,6 @@
#endif
}
-/** \brief Freeze the thread if kernel requested so because of going to suspend
- *
- * \return Nonzero if freeze has been performed, zero otherwise
- *
- */
-unsigned int kas_try_to_freeze(void)
-{
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,10)
- return 0;
-#else
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,12)
- return try_to_freeze(PF_FREEZE);
-#else
- return try_to_freeze();
-#endif
-#endif
-}
-
/** \brief Storage for execution level(s) */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
/* SMP support for 2.6.0 and higher */
@@ -4985,28 +5032,13 @@
unsigned int ret = 0;
kasSlabCache_t* slabcache_obj = (kasSlabCache_t*)hSlabCache;
- DBG_ENTER("0x%08X", hSlabCache);
-
- if (!(slabcache_obj->cache))
- {
- DBG_ERROR("slab object '%s' is not initialized");
- DBG_LEAVE("0");
- return 0;
- }
-
- DBG_TRACE("destroying slab object '%s'", slabcache_obj->name);
-
- if (kmem_cache_destroy(slabcache_obj->cache) == 0)
+ if (slabcache_obj->cache)
{
- ret = 1;
+ kmem_cache_destroy(slabcache_obj->cache);
slabcache_obj->cache = NULL;
- }
- else
- {
- DBG_ERROR("destroying failed");
+ ret = 1;
}
- DBG_LEAVE("%d", ret);
return ret;
}
@@ -5190,6 +5222,24 @@
return 1;
}
+/** \brief Freeze the thread if kernel requested so because of going to suspend
+ *
+ * \return Nonzero if freeze has been performed, zero otherwise
+ *
+ */
+unsigned int kas_try_to_freeze(void)
+{
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,10)
+ return 0;
+#else
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,12)
+ return try_to_freeze(PF_FREEZE);
+#else
+ return try_to_freeze();
+#endif
+#endif
+}
+
/** \brief Wait for the event
*
* If event is already signalled, return right away.

23
ati/atieventsd Normal file
View File

@ -0,0 +1,23 @@
#!/bin/sh
#
# /etc/rc.d/atieventsd: start/stop ATI external events daemon
#
case $1 in
start)
/usr/sbin/atieventsd
;;
stop)
killall -q /usr/sbin/atieventsd
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "usage: $0 [start|stop|restart]"
;;
esac
# End of File

View File

@ -1,23 +0,0 @@
#!/bin/sh
#
# /etc/rc.d/atieventsd: start/stop ATI external events daemon
#
case $1 in
start)
/usr/sbin/atieventsd
;;
stop)
killall -q /usr/sbin/atieventsd
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "usage: $0 [start|stop|restart]"
;;
esac
# End of File

View File

@ -1,85 +0,0 @@
--- common/lib/modules/fglrx/build_mod/firegl_public.c 2006-12-18 10:58:15.000000000 -0500
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2006-12-18 11:14:04.000000000 -0500
@@ -181,6 +181,70 @@
int errno;
#endif // __ia64__
+#if defined(__i386__)
+#define __syscall_return(type, res) \
+do { \
+ if ((unsigned long)(res) >= (unsigned long)(-(128 + 1))) { \
+ errno = -(res); \
+ res = -1; \
+ } \
+ return (type) (res); \
+} while (0)
+#define _syscall2(type,name,type1,arg1,type2,arg2) \
+type name(type1 arg1,type2 arg2) \
+{ \
+long __res; \
+__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)) \
+ : "memory"); \
+__syscall_return(type,__res); \
+}
+
+#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
+type name(type1 arg1,type2 arg2,type3 arg3) \
+{ \
+long __res; \
+__asm__ volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"ri" ((long)(arg1)),"c" ((long)(arg2)), \
+ "d" ((long)(arg3)) : "memory"); \
+__syscall_return(type,__res); \
+}
+#elif defined(__x86_64__)
+#define __syscall_clobber "r11","rcx","memory"
+#define __syscall "syscall"
+
+#define __syscall_return(type, res) \
+do { \
+ if ((unsigned long)(res) >= (unsigned long)(-127)) { \
+ errno = -(res); \
+ res = -1; \
+ } \
+ return (type) (res); \
+} while (0)
+#define _syscall2(type,name,type1,arg1,type2,arg2) \
+type name(type1 arg1,type2 arg2) \
+{ \
+long __res; \
+__asm__ volatile (__syscall \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)) : __syscall_clobber ); \
+__syscall_return(type,__res); \
+}
+
+#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
+type name(type1 arg1,type2 arg2,type3 arg3) \
+{ \
+long __res; \
+__asm__ volatile (__syscall \
+ : "=a" (__res) \
+ : "0" (__NR_##name),"D" ((long)(arg1)),"S" ((long)(arg2)), \
+ "d" ((long)(arg3)) : __syscall_clobber); \
+__syscall_return(type,__res); \
+}
+#endif
+
// int mlock(const void *addr, size_t len);
_syscall2(int, mlock, const void *, addr, size_t, len )
// int munlock(const void *addr, size_t len);
--- common/lib/modules/fglrx/build_mod/firegl_public.c-orig 2007-01-21 23:09:10.027497362 -0600
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2007-01-21 23:09:25.219179776 -0600
@@ -5256,7 +5256,7 @@
kasThread_t* thread_obj = (kasThread_t*)hThread;
init_MUTEX(&(thread_obj->sleep_finished));
init_waitqueue_head(&(thread_obj->wq_head));
- INIT_WORK(&(thread_obj->work), routine, pcontext);
+ INIT_WORK(&(thread_obj->work), routine);
schedule_work(&(thread_obj->work));
return 1;
}