diff options
author | Nicolás Reynolds <fauno@kiwwwi.com.ar> | 2012-04-05 03:33:25 -0300 |
---|---|---|
committer | Nicolás Reynolds <fauno@kiwwwi.com.ar> | 2012-04-05 03:33:25 -0300 |
commit | fa8be7b03b46e65b64d710cbfae7ba4a93751a57 (patch) | |
tree | 485f4f134233af2f3d63b9dcf9e97506467a74b9 /extra | |
parent | aced7a6b55bc695c39eb6482b254829f0b56ff4b (diff) | |
parent | a7f79fc1ced18c586d320033ac9738e98a21b550 (diff) |
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts:
core/expat/PKGBUILD
core/gcc/PKGBUILD
core/glibc/PKGBUILD
core/libtool/PKGBUILD
core/wpa_actiond/PKGBUILD
libre/linux-libre/PKGBUILD
multilib/binutils-multilib/PKGBUILD
multilib/gcc-multilib/PKGBUILD
multilib/gcc-multilib/gcc_pure64-multilib.patch
multilib/lib32-glibc/PKGBUILD
multilib/lib32-glibc/glibc-2.15-vfprintf-nargs.patch
multilib/lib32-glibc/glibc-__i686.patch
multilib/libtool-multilib/PKGBUILD
staging/kdebase-workspace/PKGBUILD
staging/kdepim-runtime/PKGBUILD
testing/telepathy-gabble/PKGBUILD
testing/telepathy-glib/PKGBUILD
testing/telepathy-mission-control/PKGBUILD
Diffstat (limited to 'extra')
-rw-r--r-- | extra/freetype2/PKGBUILD | 16 | ||||
-rw-r--r-- | extra/freetype2/bug35833.patch | 103 | ||||
-rw-r--r-- | extra/freetype2/bug35847.patch | 28 | ||||
-rw-r--r-- | extra/git/PKGBUILD | 21 | ||||
-rw-r--r-- | extra/libburn/PKGBUILD | 9 | ||||
-rw-r--r-- | extra/libiodbc/PKGBUILD | 6 | ||||
-rw-r--r-- | extra/libisoburn/PKGBUILD | 11 | ||||
-rw-r--r-- | extra/libisofs/PKGBUILD | 9 | ||||
-rw-r--r-- | extra/mercurial/PKGBUILD | 8 | ||||
-rw-r--r-- | extra/openmpi/PKGBUILD | 10 | ||||
-rw-r--r-- | extra/perl-net-ssleay/PKGBUILD | 6 | ||||
-rw-r--r-- | extra/ruby/PKGBUILD | 2 | ||||
-rw-r--r-- | extra/xf86-video-s3/PKGBUILD | 10 | ||||
-rw-r--r-- | extra/xf86-video-s3/git-fixes.patch | 48 | ||||
-rw-r--r-- | extra/xf86-video-s3virge/PKGBUILD | 18 | ||||
-rw-r--r-- | extra/xf86-video-s3virge/git-fixes.patch | 1644 |
16 files changed, 1892 insertions, 57 deletions
diff --git a/extra/freetype2/PKGBUILD b/extra/freetype2/PKGBUILD index ea450c697..968a88b66 100644 --- a/extra/freetype2/PKGBUILD +++ b/extra/freetype2/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 153269 2012-03-12 19:00:15Z jgc $ +# $Id: PKGBUILD 155391 2012-04-03 10:23:46Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=freetype2 pkgver=2.4.9 -pkgrel=1 +pkgrel=2 pkgdesc="TrueType font rendering library" arch=(i686 x86_64 'mips64el') license=('GPL') @@ -12,16 +12,24 @@ depends=('zlib' 'bzip2' 'sh') options=('!libtool') source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2 freetype-2.3.0-enable-spr.patch - freetype-2.2.1-enable-valid.patch) + freetype-2.2.1-enable-valid.patch + bug35833.patch + bug35847.patch) md5sums=('77a893dae81fd5b896632715ca041179' '816dc8619a6904a7385769433c0a8653' - '214119610444c9b02766ccee5e220680') + '214119610444c9b02766ccee5e220680' + '69bde731a06448c7e4828e96c74d45ee' + '41f9c0a5362bf2cd9a4d7557ddf98098') build() { cd "${srcdir}/freetype-${pkgver}" patch -Np1 -i "${srcdir}/freetype-2.3.0-enable-spr.patch" patch -Np1 -i "${srcdir}/freetype-2.2.1-enable-valid.patch" + #Upstream bugs fixed in git. Requested in FS#29034 + patch -Np1 -i "${srcdir}/bug35833.patch" + patch -Np1 -i "${srcdir}/bug35847.patch" + ./configure --prefix=/usr make } diff --git a/extra/freetype2/bug35833.patch b/extra/freetype2/bug35833.patch new file mode 100644 index 000000000..69ad25402 --- /dev/null +++ b/extra/freetype2/bug35833.patch @@ -0,0 +1,103 @@ +From 9a55cb7a71286154cb62e947ed1c183450a8004d Mon Sep 17 00:00:00 2001 +From: Werner Lemberg <wl@gnu.org> +Date: Wed, 14 Mar 2012 13:40:03 +0000 +Subject: Fix Savannah bug #35833. + +Based on the patch given in the bug report. + +* src/type1/t1load.c (IS_INCREMENTAL): New macro. +(read_binary_data): Add parameter `incremental'. +Update all callers using `IS_INCREMENTAL'. +--- +diff --git a/src/type1/t1load.c b/src/type1/t1load.c +index a0adfd4..4385417 100644 +--- a/src/type1/t1load.c ++++ b/src/type1/t1load.c +@@ -71,6 +71,13 @@ + #include "t1errors.h" + + ++#ifdef FT_CONFIG_OPTION_INCREMENTAL ++#define IS_INCREMENTAL ( face->root.internal->incremental_interface != 0 ) ++#else ++#define IS_INCREMENTAL 0 ++#endif ++ ++ + /*************************************************************************/ + /* */ + /* The macro FT_COMPONENT is used in trace mode. It is an implicit */ +@@ -1030,7 +1037,8 @@ + static int + read_binary_data( T1_Parser parser, + FT_Long* size, +- FT_Byte** base ) ++ FT_Byte** base, ++ FT_Bool incremental ) + { + FT_Byte* cur; + FT_Byte* limit = parser->root.limit; +@@ -1065,8 +1073,12 @@ + } + } + +- FT_ERROR(( "read_binary_data: invalid size field\n" )); +- parser->root.error = T1_Err_Invalid_File_Format; ++ if( !incremental ) ++ { ++ FT_ERROR(( "read_binary_data: invalid size field\n" )); ++ parser->root.error = T1_Err_Invalid_File_Format; ++ } ++ + return 0; + } + +@@ -1396,7 +1408,7 @@ + + idx = T1_ToInt( parser ); + +- if ( !read_binary_data( parser, &size, &base ) ) ++ if ( !read_binary_data( parser, &size, &base, IS_INCREMENTAL ) ) + return; + + /* The binary string is followed by one token, e.g. `NP' */ +@@ -1582,7 +1594,7 @@ + cur++; /* skip `/' */ + len = parser->root.cursor - cur; + +- if ( !read_binary_data( parser, &size, &base ) ) ++ if ( !read_binary_data( parser, &size, &base, IS_INCREMENTAL ) ) + return; + + /* for some non-standard fonts like `Optima' which provides */ +@@ -1871,7 +1883,7 @@ + + + parser->root.cursor = start_binary; +- if ( !read_binary_data( parser, &s, &b ) ) ++ if ( !read_binary_data( parser, &s, &b, IS_INCREMENTAL ) ) + return T1_Err_Invalid_File_Format; + have_integer = 0; + } +@@ -1884,7 +1896,7 @@ + + + parser->root.cursor = start_binary; +- if ( !read_binary_data( parser, &s, &b ) ) ++ if ( !read_binary_data( parser, &s, &b, IS_INCREMENTAL ) ) + return T1_Err_Invalid_File_Format; + have_integer = 0; + } +@@ -2160,9 +2172,7 @@ + type1->subrs_len = loader.subrs.lengths; + } + +-#ifdef FT_CONFIG_OPTION_INCREMENTAL +- if ( !face->root.internal->incremental_interface ) +-#endif ++ if ( !IS_INCREMENTAL ) + if ( !loader.charstrings.init ) + { + FT_ERROR(( "T1_Open_Face: no `/CharStrings' array in face\n" )); +-- +cgit v0.9.0.2 diff --git a/extra/freetype2/bug35847.patch b/extra/freetype2/bug35847.patch new file mode 100644 index 000000000..683cbc37e --- /dev/null +++ b/extra/freetype2/bug35847.patch @@ -0,0 +1,28 @@ +From b43e0f4413b2aafb88be8cb3fb7aaa84ac0b9102 Mon Sep 17 00:00:00 2001 +From: Werner Lemberg <wl@gnu.org> +Date: Sat, 17 Mar 2012 06:42:43 +0000 +Subject: [type1] Fix Savannah bug #35847. + +* src/type1/t1load.c (parse_subrs): Fix the loop exit condition; +we want to exit when we have run out of data. +--- +diff --git a/src/type1/t1load.c b/src/type1/t1load.c +index 4385417..5803fde 100644 +--- a/src/type1/t1load.c ++++ b/src/type1/t1load.c +@@ -1399,9 +1399,10 @@ + FT_Byte* base; + + +- /* If the next token isn't `dup' we are done. */ +- if ( parser->root.cursor + 4 < parser->root.limit && +- ft_strncmp( (char*)parser->root.cursor, "dup", 3 ) != 0 ) ++ /* If we are out of data, or if the next token isn't `dup', */ ++ /* we are done. */ ++ if ( parser->root.cursor + 4 >= parser->root.limit || ++ ft_strncmp( (char*)parser->root.cursor, "dup", 3 ) != 0 ) + break; + + T1_Skip_PS_Token( parser ); /* `dup' */ +-- +cgit v0.9.0.2 diff --git a/extra/git/PKGBUILD b/extra/git/PKGBUILD index b90c55b5e..b7117fa3a 100644 --- a/extra/git/PKGBUILD +++ b/extra/git/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 154397 2012-03-27 14:31:30Z dan $ +# $Id: PKGBUILD 155451 2012-04-03 19:34:16Z dan $ # Maintainer: Dan McGee <dan@archlinux.org> pkgname=git -pkgver=1.7.9.5 +pkgver=1.7.9.6 pkgrel=1 pkgdesc="the fast distributed version control system" arch=(i686 x86_64 'mips64el') @@ -50,7 +50,10 @@ check() { CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \ USE_LIBPCRE=1 \ NO_CROSS_DIRECTORY_HARDLINKS=1 \ - NO_SVN_TESTS=y DEFAULT_TEST_TARGET=prove GIT_PROVE_OPTS="$jobs -Q" \ + NO_SVN_TESTS=y \ + DEFAULT_TEST_TARGET=prove \ + GIT_PROVE_OPTS="$jobs -Q" \ + GIT_TEST_OPTS="--root=/dev/shm/" \ test } @@ -64,8 +67,12 @@ package() { INSTALLDIRS=vendor DESTDIR="$pkgdir" install # bash completion - mkdir -p "$pkgdir"/usr/share/bash-completion/completions/ - install -m644 ./contrib/completion/git-completion.bash "$pkgdir"/usr/share/bash-completion/completions/git + # until this is fixed, no point in loading it dynamically: + # http://git.661346.n2.nabble.com/bash-completion-now-loads-completions-dynamically-so-git-ps1-is-not-defined-when-you-open-a-shell-td7415323.html + #mkdir -p "$pkgdir"/usr/share/bash-completion/completions/ + #install -m644 ./contrib/completion/git-completion.bash "$pkgdir"/usr/share/bash-completion/completions/git + mkdir -p "$pkgdir"/etc/bash_completion.d/ + install -m644 ./contrib/completion/git-completion.bash "$pkgdir"/etc/bash_completion.d/git # more contrib stuff cp -a ./contrib $pkgdir/usr/share/git/ # scripts are for python 2.x @@ -92,7 +99,7 @@ package() { install -D -m644 "$srcdir"/git-daemon.conf "$pkgdir"/etc/conf.d/git-daemon.conf } -sha1sums=('33f5a5b0b6c8f8addbbec0b042731c44fd79f90c' - '37a162c22127adc82ce9fb75aacddb6428c565da' +sha1sums=('71c5a5acdef77cd8d29a4ae5d4fe7f2889f495b5' + '43441aaa208b1f948f5a006e818a1a34dcda6740' 'f2b41828bd912b72e2cb3e14677739c4f370de66' '149e2da1ecb48872ddb31c0945afeaad1f9653d7') diff --git a/extra/libburn/PKGBUILD b/extra/libburn/PKGBUILD index 9eb66a4f9..4c24091b0 100644 --- a/extra/libburn/PKGBUILD +++ b/extra/libburn/PKGBUILD @@ -1,18 +1,19 @@ -# $Id: PKGBUILD 147997 2012-01-29 15:55:51Z andyrtr $ +# $Id: PKGBUILD 155443 2012-04-03 18:01:23Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: William Rea <sillywilly@gmail.com> pkgname=libburn -pkgver=1.2.0 #.pl01 +pkgver=1.2.2 #.pl01 pkgrel=1 pkgdesc="Library for reading, mastering and writing optical discs" arch=('i686' 'x86_64' 'mips64el') url="http://libburnia.pykix.org/" license=('GPL') depends=('glibc') -source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz) +source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz{,.sig}) options=('!libtool' '!emptydirs') -md5sums=('9638bfd46adbb6bf7cf3960749353c66') +md5sums=('7878b3af82752d391f2613fcf1b18d4c' + 'e4903839d6dc3a93b50102b98a5362f4') build() { cd ${srcdir}/${pkgname}-${pkgver} #/.pl??/} diff --git a/extra/libiodbc/PKGBUILD b/extra/libiodbc/PKGBUILD index bd7549478..106baf027 100644 --- a/extra/libiodbc/PKGBUILD +++ b/extra/libiodbc/PKGBUILD @@ -4,8 +4,8 @@ # Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com> pkgname=libiodbc -pkgver=3.52.7 -pkgrel=5 +pkgver=3.52.8 +pkgrel=1 pkgdesc='Independent Open DataBase Connectivity for Linux' arch=('i686' 'x86_64' 'mips64el') url="http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/" @@ -16,7 +16,7 @@ replaces=('iodbc') conflicts=('iodbc') options=('!libtool') source=("http://downloads.sourceforge.net/iodbc/${pkgname}-${pkgver}.tar.gz") -md5sums=('ddbd274cb31d65be6a78da58fc09079a') +md5sums=('9889f95f632f10895ff53b8a22162810') build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/extra/libisoburn/PKGBUILD b/extra/libisoburn/PKGBUILD index 7e8fcea39..e2cfc3a6e 100644 --- a/extra/libisoburn/PKGBUILD +++ b/extra/libisoburn/PKGBUILD @@ -1,19 +1,20 @@ -# $Id: PKGBUILD 148001 2012-01-29 16:01:17Z andyrtr $ +# $Id: PKGBUILD 155447 2012-04-03 18:06:59Z andyrtr $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> # Contributor: Gour <Gour <gour@mail.inet.hr> pkgname=libisoburn -pkgver=1.2.0 +pkgver=1.2.2 pkgrel=1 pkgdesc="frontend for libraries libburn and libisofs" url="http://libburnia.pykix.org/wiki/Libisoburn" arch=('i686' 'x86_64' 'mips64el') license=('GPL2') -depends=('libburn>=1.2.0' 'libisofs>=1.2.0' 'readline') +depends=('libburn>=1.2.2' 'libisofs>=1.2.2' 'readline') options=('!libtool') install=${pkgname}.install -source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz) -md5sums=('48687da999d2508c82a391b59f2e2d77') +source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz{,.sig}) +md5sums=('2f94e9dc77c4f3b5066371a5870a844b' + 'b5a1957edce278ce18bd0eed1d93a3ae') build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/extra/libisofs/PKGBUILD b/extra/libisofs/PKGBUILD index d7bb04617..ba2d6224a 100644 --- a/extra/libisofs/PKGBUILD +++ b/extra/libisofs/PKGBUILD @@ -1,19 +1,20 @@ -# $Id: PKGBUILD 147999 2012-01-29 15:58:31Z andyrtr $ +# $Id: PKGBUILD 155445 2012-04-03 18:03:38Z andyrtr $ # Maintainer: AndyRTR <andyrtr@archlinux.org> # Contributor: Hugo Doria <hugodoria@gmail.com> # Contributor: Bjorn Martensen pkgname=libisofs -pkgver=1.2.0 +pkgver=1.2.2 pkgrel=1 pkgdesc="Library to pack up hard disk files and directories into a ISO 9660 disk image" arch=('i686' 'x86_64' 'mips64el') url="http://libburnia.pykix.org/" license=('GPL') depends=('acl' 'zlib') -source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz) +source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz{,.sig}) options=('!libtool') -md5sums=('dea7250f4ad917268810fc56bdcd92e4') +md5sums=('5d6bee8276b08019078c19d84ef5485b' + '8bac560e309b4f4ca60098742e53d1a3') build() { cd ${srcdir}/${pkgname}-${pkgver} diff --git a/extra/mercurial/PKGBUILD b/extra/mercurial/PKGBUILD index c49311fb3..9a51493bd 100644 --- a/extra/mercurial/PKGBUILD +++ b/extra/mercurial/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 153959 2012-03-21 06:13:44Z giovanni $ +# $Id: PKGBUILD 155397 2012-04-03 11:09:44Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Douglas Soares de Andrade <douglas@archlinux.org> pkgname=mercurial -pkgver=2.1.1 -pkgrel=2 +pkgver=2.1.2 +pkgrel=1 pkgdesc="A scalable distributed SCM tool" arch=('i686' 'x86_64' 'mips64el') url="http://mercurial.selenic.com/" @@ -14,7 +14,7 @@ optdepends=('tk: for the hgk GUI') backup=('etc/mercurial/hgrc') source=("http://mercurial.selenic.com/release/${pkgname}-${pkgver}.tar.gz" 'mercurial.profile') -md5sums=('368fab4705ebd4d1296fdd6bd2fe6272' +md5sums=('15354d739504ec46f68a0fee2ecfbf25' '43e1d36564d4c7fbe9a091d3ea370a44') package() { diff --git a/extra/openmpi/PKGBUILD b/extra/openmpi/PKGBUILD index 229843e81..af479abea 100644 --- a/extra/openmpi/PKGBUILD +++ b/extra/openmpi/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 151701 2012-03-01 00:42:34Z stephane $ +# $Id: PKGBUILD 155428 2012-04-03 14:17:40Z stephane $ # Maintainer: Stéphane Gaudreault <stephane@archlinux.org> pkgname=openmpi -pkgver=1.5.4 -pkgrel=5 +pkgver=1.5.5 +pkgrel=1 pkgdesc="High performance message passing library (MPI)" arch=('i686' 'x86_64' 'mips64el') url="http://www.open-mpi.org" @@ -13,7 +13,7 @@ makedepends=('inetutils') options=(!libtool) source=(http://www.open-mpi.org/software/ompi/v1.5/downloads/${pkgname}-${pkgver}.tar.bz2 openmpi-1.5.4-fix-fakeroot-execution.patch) -sha1sums=('81f7736a83b2134ba20c2e5c380b4d267cfd9d9c' +sha1sums=('206e555f6d376443f2342f721d944e67dd1a04ef' 'ec46abb6f9e01daca910e4079b9abc036db9ed20') build() { @@ -40,7 +40,7 @@ build() { --enable-debug \ --enable-pretty-print-stacktrace \ --without-slurm \ - --with-hwloc=external \ + --with-hwloc=/usr \ --with-libltdl=/usr \ FC=/usr/bin/gfortran \ LDFLAGS="$LDFLAGS -Wl,-z,noexecstack" diff --git a/extra/perl-net-ssleay/PKGBUILD b/extra/perl-net-ssleay/PKGBUILD index 56f771f2f..4250a8f1e 100644 --- a/extra/perl-net-ssleay/PKGBUILD +++ b/extra/perl-net-ssleay/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 154281 2012-03-25 10:10:44Z giovanni $ +# $Id: PKGBUILD 155421 2012-04-03 11:45:06Z giovanni $ # Maintainer: Giovanni Scafora <giovanni@archlinux.org> # Contributor: Manolis Tzanidakis pkgname=perl-net-ssleay _cpanname=Net-SSLeay -pkgver=1.45 +pkgver=1.46 pkgrel=1 pkgdesc="Perl extension for using OpenSSL" arch=('i686' 'x86_64' 'mips64el') @@ -15,7 +15,7 @@ options=(!emptydirs) replaces=('net-ssleay') provides=('net-ssleay') source=("http://www.cpan.org/authors/id/M/MI/MIKEM/${_cpanname}-${pkgver}.tar.gz") -md5sums=('05415acd0eae23bccdeb35d9d976cc15') +md5sums=('02ebd818307773f5c9844678e9a38a7d') build() { cd ${srcdir}/${_cpanname}-${pkgver} diff --git a/extra/ruby/PKGBUILD b/extra/ruby/PKGBUILD index a8c392b58..59ad827e9 100644 --- a/extra/ruby/PKGBUILD +++ b/extra/ruby/PKGBUILD @@ -5,7 +5,7 @@ pkgname=ruby pkgver=1.9.3_p125 -pkgrel=2 +pkgrel=3 pkgdesc='An object-oriented language for quick and easy programming' arch=('i686' 'x86_64' 'mips64el') url='http://www.ruby-lang.org/en/' diff --git a/extra/xf86-video-s3/PKGBUILD b/extra/xf86-video-s3/PKGBUILD index 15590e56c..613fd4831 100644 --- a/extra/xf86-video-s3/PKGBUILD +++ b/extra/xf86-video-s3/PKGBUILD @@ -1,22 +1,22 @@ -# $Id: PKGBUILD 153360 2012-03-12 20:54:02Z andyrtr $ +# $Id: PKGBUILD 155417 2012-04-03 11:24:01Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> pkgname=xf86-video-s3 pkgver=0.6.3 -pkgrel=7 +pkgrel=8 pkgdesc="X.org S3 video driver" arch=(i686 x86_64) url="http://xorg.freedesktop.org/" license=('custom') depends=('glibc') -makedepends=('xorg-server-devel>=1.11.99.903') -conflicts=('xorg-server<1.11.99.903') +makedepends=('xorg-server-devel>=1.12.0') +conflicts=('xorg-server<1.12.0') options=('!libtool') groups=('xorg-drivers' 'xorg') source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 git-fixes.patch) md5sums=('5eb06d88533fb327d067928faeb20860' - '77a455ce7e254c73b1cbd408c7f4ecf4') + '8b3033b16ee826a9e0870dd80717eafd') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/extra/xf86-video-s3/git-fixes.patch b/extra/xf86-video-s3/git-fixes.patch index 712b3c9c0..d6792f38e 100644 --- a/extra/xf86-video-s3/git-fixes.patch +++ b/extra/xf86-video-s3/git-fixes.patch @@ -435,7 +435,7 @@ index 49b8a54..0875fc9 100644 S3PortPrivPtr portPrivate; diff --git a/src/s3_driver.c b/src/s3_driver.c -index 29e343d..4519b33 100644 +index 29e343d..2011dfc 100644 --- a/src/s3_driver.c +++ b/src/s3_driver.c @@ -309,6 +309,7 @@ static Bool S3PreInit(ScrnInfoPtr pScrn, int flags) @@ -446,7 +446,15 @@ index 29e343d..4519b33 100644 rgb zeros = {0, 0, 0}; Gamma gzeros = {0.0, 0.0, 0.0}; int i, vgaCRIndex, vgaCRReg; -@@ -436,7 +437,8 @@ static Bool S3PreInit(ScrnInfoPtr pScrn, int flags) +@@ -325,6 +326,7 @@ static Bool S3PreInit(ScrnInfoPtr pScrn, int flags) + return FALSE; + + hwp = VGAHWPTR(pScrn); ++ vgaHWSetStdFuncs(hwp); + vgaHWGetIOBase(hwp); + + pScrn->monitor = pScrn->confScreen->monitor; +@@ -436,9 +438,19 @@ static Bool S3PreInit(ScrnInfoPtr pScrn, int flags) } if (xf86LoadSubModule(pScrn, "vbe")) { @@ -455,4 +463,40 @@ index 29e343d..4519b33 100644 + vbeFree(pVBE); } ++ xf86LoadSubModule(pScrn, "fb"); ++ ++ if (!xf86LoadSubModule(pScrn, "xaa")) { ++ xf86DrvMsg(pScrn->scrnIndex, X_INFO, ++ "Falling back to shadowfb\n"); ++ pS3->NoAccel = TRUE; ++ pS3->shadowFB = TRUE; ++ } ++ if (pS3->shadowFB) { + if (!xf86LoadSubModule(pScrn, "shadowfb")) { + S3FreeRec(pScrn); +@@ -726,11 +738,6 @@ static Bool S3PreInit(ScrnInfoPtr pScrn, int flags) + xf86PrintModes(pScrn); + xf86SetDpi(pScrn, 0, 0); + +- xf86LoadSubModule(pScrn, "fb"); +- +- if (!xf86LoadSubModule(pScrn, "xaa")) +- return FALSE; +- + return TRUE; + } + +diff --git a/src/s3_video.c b/src/s3_video.c +index 3e88889..9a2d458 100644 +--- a/src/s3_video.c ++++ b/src/s3_video.c +@@ -244,6 +244,8 @@ static XF86VideoAdaptorPtr S3SetupImageVideoOverlay(ScreenPtr pScreen) + XF86VideoAdaptorPtr adapt; + + adapt = S3AllocAdaptor(pScrn); ++ if (adapt == NULL) ++ return NULL; + + adapt->type = XvWindowMask | XvInputMask | XvImageMask; + adapt->flags = VIDEO_OVERLAID_IMAGES | VIDEO_CLIP_TO_VIEWPORT; diff --git a/extra/xf86-video-s3virge/PKGBUILD b/extra/xf86-video-s3virge/PKGBUILD index 95a00dd82..d49bde15d 100644 --- a/extra/xf86-video-s3virge/PKGBUILD +++ b/extra/xf86-video-s3virge/PKGBUILD @@ -1,30 +1,28 @@ -# $Id: PKGBUILD 153362 2012-03-12 20:54:08Z andyrtr $ +# $Id: PKGBUILD 155419 2012-04-03 11:32:17Z jgc $ # Maintainer: Jan de Groot <jgc@archlinux.org> # Contributor: Alexander Baldeck <alexander@archlinux.org> pkgname=xf86-video-s3virge pkgver=1.10.4 -pkgrel=7 +pkgrel=8 pkgdesc="X.org S3 Virge video driver" arch=(i686 x86_64) url="http://xorg.freedesktop.org/" license=('custom') depends=('glibc') -makedepends=('pkgconfig' 'xorg-server-devel>=1.11.99.903') -conflicts=('xorg-server<1.11.99.903') +makedepends=('pkgconfig' 'xorg-server-devel>=1.12.0') +conflicts=('xorg-server<1.12.0') options=(!libtool) groups=('xorg-drivers' 'xorg') source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 - copyright.patch - s3virge-1.10.4-vga.patch) + git-fixes.patch) md5sums=('6517bbbf808c700502d51acdc44662f8' - 'f91fb259e3632fb9130fcbe69ecd9d6a' - '45c7d912734c9f7dfc1f42077827cb8e') + '2dba8e574d08c71c9f748ff341358050') build() { cd "${srcdir}/${pkgname}-${pkgver}" - patch -Np1 -i "${srcdir}/copyright.patch" - patch -Np1 -i ${srcdir}/s3virge-1.10.4-vga.patch + patch -Np1 -i "${srcdir}/git-fixes.patch" + autoreconf -fi ./configure --prefix=/usr make } diff --git a/extra/xf86-video-s3virge/git-fixes.patch b/extra/xf86-video-s3virge/git-fixes.patch new file mode 100644 index 000000000..4cf0a5637 --- /dev/null +++ b/extra/xf86-video-s3virge/git-fixes.patch @@ -0,0 +1,1644 @@ +diff --git a/COPYING b/COPYING +index 7f33cbf..727ca51 100644 +--- a/COPYING ++++ b/COPYING +@@ -1,12 +1,60 @@ +-This is a stub file. This package has not yet had its complete licensing +-information compiled. Please see the individual source files for details on +-your rights to use and modify this software. ++Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved. + +-Please submit updated COPYING files to the Xorg bugzilla: ++Permission is hereby granted, free of charge, to any person obtaining a copy of ++this software and associated documentation files (the "Software"), to deal in ++the Software without restriction, including without limitation the rights to ++use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies ++of the Software, and to permit persons to whom the Software is furnished to do ++so, subject to the following conditions: + +-https://bugs.freedesktop.org/enter_bug.cgi?product=xorg ++The above copyright notice and this permission notice shall be included in all ++copies or substantial portions of the Software. + +-All licensing questions regarding this software should be directed at the +-Xorg mailing list: ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- ++NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ ++Except as contained in this notice, the name of the XFree86 Project shall not ++be used in advertising or otherwise to promote the sale, use or other dealings ++in this Software without prior written authorization from the XFree86 Project. ++ ++Written by Jake Richter Copyright (c) 1989, 1990 Panacea Inc., Londonderry, ++NH - All Rights Reserved ++ ++This code may be freely incorporated in any program without royalty, as long ++as the copyright notice stays intact. ++ ++Additions by Kevin E. Martin (martin@cs.unc.edu) ++ ++KEVIN E. MARTIN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++EVENT SHALL KEVIN E. MARTIN BE LIABLE FOR ANY SPECIAL, INDIRECT OR ++CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF ++USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR ++OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++PERFORMANCE OF THIS SOFTWARE. ++ ++Copyright 2007 George Sapountzis ++ ++Permission is hereby granted, free of charge, to any person obtaining a ++copy of this software and associated documentation files (the "Software"), ++to deal in the Software without restriction, including without limitation ++the rights to use, copy, modify, merge, publish, distribute, sublicense, ++and/or sell copies of the Software, and to permit persons to whom the ++Software is furnished to do so, subject to the following conditions: ++ ++The above copyright notice and this permission notice (including the next ++paragraph) shall be included in all copies or substantial portions of the ++Software. ++ ++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++SOFTWARE. + +-http://lists.freedesktop.org/mailman/listinfo/xorg +diff --git a/ChangeLog b/ChangeLog +deleted file mode 100644 +index 8ef0a7c..0000000 +--- a/ChangeLog ++++ /dev/null +@@ -1,69 +0,0 @@ +-2006-04-07 Adam Jackson <ajax@freedesktop.org> +- +- * configure.ac: +- * src/s3v_driver.c: +- Bump to 1.9.1 for Xv changes. +- +-2006-04-07 Aaron Plattner <aplattner@nvidia.com> +- +- * src/s3v_xv.c: +- Add a DrawablePtr argument to the XV functions to pave the way for +- redirected video. +- +-2006-04-07 Adam Jackson <ajax@freedesktop.org> +- +- * configure.ac: +- * src/s3v.h: +- * src/s3v_dga.c: +- * src/s3v_driver.c: +- * src/s3v_i2c.c: +- * src/s3v_shadow.c: +- Unlibcwrap. Bump server version requirement. Bump to 1.9.0. +- +-2006-02-08 Luc Verhaegen <libv@skynet.be> +- +- * src/s3v.h: +- * src/s3v_driver.c: (S3VPreInit): +- +- Remove another insane use of pScrn->clock. Code ended up being ignored +- anyway. +- +-2005-12-20 Kevin E. Martin <kem-at-freedesktop-dot-org> +- +- * configure.ac: +- Update package version for X11R7 release. +- +-2005-12-14 Kevin E. Martin <kem-at-freedesktop-dot-org> +- +- * configure.ac: +- Update package version number for final X11R7 release candidate. +- +-2005-12-06 Kevin E. Martin <kem-at-freedesktop-dot-org> +- +- * man/Makefile.am: +- Change *man_SOURCES ==> *man_PRE to fix autotools warnings. +- +-2005-12-03 Kevin E. Martin <kem-at-freedesktop-dot-org> +- +- * configure.ac: +- Update package version number for X11R7 RC3 release. +- +-2005-12-01 Kevin E. Martin <kem-at-freedesktop-dot-org> +- +- * configure.ac: +- Remove extraneous AC_MSG_RESULT. +- +-2005-11-29 Adam Jackson <ajax@freedesktop.org> +- +- * configure.ac: +- Only build dlloader modules by default. +- +-2005-11-09 Kevin E. Martin <kem-at-freedesktop-dot-org> +- +- * configure.ac: +- Update package version number for X11R7 RC2 release. +- +-2005-11-01 Kevin E. Martin <kem-at-freedesktop-dot-org> +- +- * configure.ac: +- Update pkgcheck dependencies to work with separate build roots. +diff --git a/Makefile.am b/Makefile.am +index 4443535..8467821 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -18,12 +18,17 @@ + # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-AUTOMAKE_OPTIONS = foreign + SUBDIRS = src man ++MAINTAINERCLEANFILES = ChangeLog INSTALL + +-if BUILD_LINUXDOC +-README: README.sgml +- $(MAKE_TEXT) README.sgml && mv README.txt README +-endif ++EXTRA_DIST = CALLMAP + +-EXTRA_DIST = CALLMAP TODO_NOTES README.sgml ++.PHONY: ChangeLog INSTALL ++ ++INSTALL: ++ $(INSTALL_CMD) ++ ++ChangeLog: ++ $(CHANGELOG_CMD) ++ ++dist-hook: ChangeLog INSTALL +diff --git a/README b/README +index 72b75b2..036eec8 100644 +--- a/README ++++ b/README +@@ -1,112 +1,88 @@ +-xf86-video-s3virge - S3 ViRGE video driver for the Xorg X server +- +-Please submit bugs & patches to the Xorg bugzilla: +- +- https://bugs.freedesktop.org/enter_bug.cgi?product=xorg +- +-All questions regarding this software should be directed at the +-Xorg mailing list: +- +- http://lists.freedesktop.org/mailman/listinfo/xorg +- +-The master development code repository can be found at: +- +- git://anongit.freedesktop.org/git/xorg/driver/xf86-video-s3virge +- +- http://cgit.freedesktop.org/xorg/driver/xf86-video-s3virge +- +-For more information on the git code manager, see: +- +- http://wiki.x.org/wiki/GitPage +- +------------------------------------------------------------------------- +-What works: +-- Supports 8bpp, 15/16bpp, 24bpp and 32bpp. Heavy testing on ViRGE DX. +-- There is some known instability in ViRGE GX2, please report problems. +-- Silken Mouse is enabled by default, use the generic server option of +- -nosilk to disable it. +- +-XCONFIG options: +- +-The driver supports quite a few different XConfig options, which can +-be used to tune the driver and improve performance. Without any options, +-the driver will use conservative settings which should work on most +-hardware. Large improvements in performance are possible by selecting +-the proper options, which will probably work on most systems. +- +-Cursor: +- +-- "hwcursor" "off" behaves exactly like "swcursor". Default: "on" +-- "swcursor" will disable the HW Cursor. HW Cursor is used by default and +- no option is needed to enable it. +- +-Display: +-- "ShadowFB" Use shadow framebuffer. Disables HW acceleration. Default: off. +-- "Rotate" " cw "|" ccw " Rotate the screen CW - clockwise or CCW - counter +- clockwise. Disables HW Acceleration and HW Cursor, uses ShadowFB. +- Default: no rotation. +-- "XVideo" Disable XVideo support by using the off option. This changes FIFO +- settings which prevent screen noise for high-res modes. Default: on +- +-Video memory: +- +-- "slow_edodram" will switch the standard ViRGE to 2-cycle edo mode. Try this +- if you encounter pixel corruption on the ViRGE. Using this option will +- cause a large decrease in performance. +-- "fpm_vram" will switch the ViRGE/VX to fast page mode vram mode +-- "slow_dram " | " fast_dram" Change Trio 3D and 3D/2X memory options. +- Default: Use BIOS defaults. +-- "early_ras_precharge", "late_ras_precharge" adjust memory parameters. One +- of these will us the same settings as your video card defaults, and +- using neither in the config file does the same. +-- "set_mclk" sets the memory clock, format is: +- Option "set_mclk" "50000" +- in the XF86Config file. Valid values are any +- integer <= 100000, where 100000 == 100 MHz. +-- "set_refclk" sets the ref clock for ViRGE MX, format is: +- Option "set_refclk" "50000" +- +-Acceleration and graphic engine: +- +-- "NoAccel" turns off all acceleration +-- "fifo_aggressive", "fifo_moderate" and "fifo_conservative" alter the settings +- for the threshold at which the pixel FIFO takes over the internal +- memory bus to refill itself. The smaller this threshold, the better +- the acceleration performance of the card. You may try the fastest +- setting ("aggressive") and move down if you encounter pixel corruption. +- The optimal setting will probably depend on dot-clock and on color +- depth. Note that specifying any of these options will also alter other +- memory settings which should increase performance, so you should at +- least use "fifo_conservative" (this uses the chip defaults). +-- Common XAA acceleration options to disable primitives for test purposes: +- "XaaNoScreenToScreenCopy" +- "XaaNoSolidFillRect" +- "XaaNoColor8x8PatternFillRect" +- "XaaNoImageWriteRect" +- "XaaNoPixmapCache" +- +-PCI bus: +-- "pci_burst" will enable PCI burst mode. This should work on all but a +- few "broken" PCI chipsets, and will increase performance. Option may +- take a parameter "on", "off", "yes", etc... +-- "pci_retry" will allow the driver to rely on PCI Retry to program the +- ViRGE registers. "pci_burst" must be enabled for this to work. +- This will increase performance, especially for small fills/blits, +- because the driver does not have to poll the ViRGE before sending it +- commands to make sure it is ready. It should work on most +- recent PCI chipsets. +- +-ViRGE MX LCD options: +-- "lcd_center" +-- "set_lcdclk" allows setting the clock for a ViRGE MX LCD display. Format is: +- Option "set_lcdclk" "30000" +- in the config file. Valid values are ? +- +-Debug: +-- "ShowCache" Enable or disable viewing offscreen cache memory. A +- development debug option. Default: off. +-- "mx_cr3a_fix" Enable or disable a cr3a fix added for ViRGE MX. +- Default: on. +- +- +-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/README,v 1.9 2000/06/14 21:57:54 dawes Exp $ ++ Information for S3 ViRGE Users ++ The XFree86 Project Inc. ++ 19 Dec 2001 ++ ____________________________________________________________ ++ ++ Table of Contents ++ ++ ++ 1. Supported hardware ++ 2. Features: ++ 3. Configuration: ++ 4. Documentation: ++ 5. Support: ++ 6. Authors ++ ++ ++ ______________________________________________________________________ ++ ++ 1. Supported hardware ++ ++ The s3virge driver in X11R7.5 supports the S3 ViRGE, ViRGE DX, GX, ++ GX2, MX, MX+, and VX chipsets. It also supports Trio3D and Trio3D/2x ++ chips. A majority of testing is done on ViRGE DX chips, making them ++ the most stable to date. This release has added support for doublescan ++ modes on DX. ++ ++ This driver is moderately stable, however please use caution with any ++ new install. Please report any problems to bugzilla.freedesktop.org, ++ using the xorg component. ++ ++ ++ 2. Features: ++ ++ ++ ++ o Fully accelerated support for S3 ViRGE family video adapters ++ ++ o uses linear frame buffer ++ ++ o supports resolutions up to 2048x2048 ++ ++ o supports color depths of 8, 15, 16 and 24 ++ ++ o full use of video card memory for acceleration caching when visible ++ framebuffer leaves extra memory ++ ++ o XVideo on DX, GX, GX2, MX, MX+ and Trio3D/2X at depth 16 and 24 ++ ++ o Doublescan modes on DX, possibly others (untested) ++ ++ ++ 3. Configuration: ++ ++ ++ The driver auto-detects RAM size, RAMDAC and ClockChip. Do not bother ++ putting these in your "Device" section. ++ ++ ++ 4. Documentation: ++ ++ ++ The driver has several supported options which are documented in the ++ s3virge man page. Please refer to it for additional details about ++ configuration options. ++ ++ ++ 5. Support: ++ ++ For support with X11R7.5 video drivers please refer to our web site at ++ wiki.x.org <http://wiki.x.org>. ++ ++ ++ 6. Authors ++ ++ ++ ++ o Mark Vojkovich <mailto:mvojkovich@nvidia.com> ++ ++ o Sebastien Marineau ++ ++ o Harald Koenig <mailto:koenig@tat.physik.uni-tuebingen.de> ++ ++ o Matt Grossman <mailto:mattg@oz.net> ++ ++ o Kevin Brosius <mailto:cobra@compuserve.com> ++ ++ ++ +diff --git a/README.sgml b/README.sgml +deleted file mode 100644 +index e47b8c4..0000000 +--- a/README.sgml ++++ /dev/null +@@ -1,61 +0,0 @@ +-<!DOCTYPE linuxdoc PUBLIC "-//Xorg//DTD linuxdoc//EN" [ +-<!ENTITY % defs SYSTEM "defs.ent"> %defs; +-]> +- +-<article> +-<title> Information for S3 ViRGE Users +-<author>The XFree86 Project Inc. +-<date>19 Dec 2001 +- +-<ident> +-</ident> +- +-<toc> +- +-<sect> Supported hardware +-<p> +-The s3virge driver in X11R&relvers; supports the S3 ViRGE, ViRGE DX, GX, GX2, MX, MX+, and VX chipsets. It also supports Trio3D and Trio3D/2x chips. A majority of testing is done on ViRGE DX chips, making them the most stable to date. This release has added support for doublescan modes on DX. +- +-This driver is moderately stable, however please use caution with any new install. Please report any problems to bugzilla.freedesktop.org, using the xorg component. +- +-<sect>Features: +-<p> +- +-<itemize> +-<item>Fully accelerated support for S3 ViRGE family video adapters +-<item>uses linear frame buffer +-<item>supports resolutions up to 2048x2048 +-<item>supports color depths of 8, 15, 16 and 24 +-<item>full use of video card memory for acceleration caching when visible framebuffer leaves extra memory +-<item>XVideo on DX, GX, GX2, MX, MX+ and Trio3D/2X at depth 16 and 24 +-<item>Doublescan modes on DX, possibly others (untested) +-</itemize> +- +-<sect>Configuration: +-<p> +- +-The driver auto-detects RAM size, RAMDAC and ClockChip. Do not bother putting +-these in your "Device" section. +- +-<sect>Documentation: +-<p> +- +-The driver has several supported options which are documented in the s3virge man +-page. Please refer to it for additional details about configuration options. +- +-<sect>Support: +-<p> +-For support with X11R&relvers video drivers please refer to our web site at <url name="wiki.x.org" url="http://wiki.x.org">. +- +-<sect>Authors +-<p> +- +-<itemize> +-<item>Mark Vojkovich <email>mvojkovich@nvidia.com</email> +-<item>Sebastien Marineau +-<item>Harald Koenig <email>koenig@tat.physik.uni-tuebingen.de</email> +-<item>Matt Grossman <email>mattg@oz.net</email> +-<item>Kevin Brosius <email>cobra@compuserve.com</email> +-</itemize> +- +-</article> +diff --git a/TODO b/TODO +new file mode 100644 +index 0000000..de5920b +--- /dev/null ++++ b/TODO +@@ -0,0 +1,326 @@ ++S3 ViRGE 4.0 devel notes ++ ++ ++ ++Status ++------ ++1/26/2003 ++Ver 1.8.6 ++Pre-4.3.0 release. 320x240 doublescan support w/mouse adjust, ++power management printouts, DAC error printout fix, log XVideo status based ++on chipset, preliminary support for disabling XV when a mode doesn't ++support it. ++ ++5/18/2002 ++Ver 1.8.5 ++320x240 mode support (doublescan). ++ ++2/2/02 ++Ver 1.8.4 ++Make 320x240 mode work in depth 15 & 16. ++Testing, need to switch streams on/off based on dblscan_v flag and mode. ++Virge MX panel_on test (doesn't work.) ++ ++1/10/02 ++Ver 1.8.3 ++DGA fix, buffer pointer used wrong value. Submitted for 4.2.0 (late). ++ ++Ver 1.8.2 ++DPMS testing (display DPMS status, disable MX LCD panel), DGA testing. ++ ++11/11/01 KJB ++Ver 1.8.1 ++ViRGE MX (& GX2) fix to CR63 for problems with modes < 1024x768 from ++max <sunmax@libero.it>. Submitted for 4.2.0. ++ ++11/5/01 KJB ++Ver 1.8.0 ++ViRGE MX & GX2 XVideo changes. Fix overlap/color keying on MX, fix ++and enable GX2 XVideo. ++Submitted for 4.2.0. ++ ++11/4/01 KJB ++Ver 1.7.0 ++Bump version for 4.2.0. Update man and README. ++ ++11/3/01 KJB ++Ver 1.6.16 ++Pre-4.2.0 patch. cr3a fix, virge mx xvideo support, xvideo disable option ++(helps with high res modes on dx and screen noise), remove accel solid ++fill rect for trio3d, bring over some trio3d and mx fixes from 4.0.3 test ++drivers. Includes VERBLEV bump to 5 to remove register dumps in log file. ++ ++Ver 1.6.15 ++Experimental - Scanline color expand - GX2 ++ ++9/21/01 KJB ++Ver 1.6.14 ++ModeInit - cr3a for MX/GX2, don't clear reserved bit 0x40 (revert change). ++Back out previous cr3a patch for testing. ++ ++9/18/01 KJB ++Ver 1.6.13 ++Option "xvideo" added. Add patch provided by Sven Menke ++<Menke@SLAC.Stanford.EDU> for XV support on MX (slight changes to logic). ++ ++Ver 1.6.12 ++Adam J. Richter's cr3a fix (possibly temporary). ++ ++5/30/01 KJB ++Ver 1.6.10 ++Disable MaxHValue & MaxVValue setting. ++ ++1/03/01 KJB ++Ver 1.6.0 ++Revert ViRGE to pre-Xv changes. ViRGE DX still supports Xv, but changes ++added for Xv and ViRGE caused problems with normal display. ++ ++11/27/00 KJB ++Ver 1.5.0 ++Clean up, bump version for 4.0.2 submission. ++CR3A, bit 0x40 (reserved) cleared for MX/GX2. Update man page. ++ ++11/24/00 KJB ++Disable CPU to screen color expansion on GX2, causes lockups on GX2 with ++'locate html' in an xterm. Add WaitCmd code to prevent accelerator and ++reg command path activity at the same time on GX2. ++XVideo fixes, left side clipping fixed for video windows extending off left ++side of screen. Add horizontal filtering modes for 1-2x and >3x scaling. ++ ++11/7/00 KJB ++Ver 1.4.0 ++Enable MX fixes, testing with accel BLT_BUG set is worse on GX2, so left ++it out. BLT_BUG wasn't being enabled on ViRGE & VX because of case usage, ++enabled now. Re-enable silken mouse for GX2. Add Render/fbPicture support. ++Fix a few compiler warnings. ++ ++11/5/00 KJB ++Continued work on GX2, much stabler now, but I think there is a lockup case ++left if you enable pci_burst and pci_retry with accel. I still see screen ++flashes with vertical bars once in a while, and the log reports a GEReset. ++Added fbPicture (render) support, untested. XV code for GX2 is added, ++but not working yet. ++ ++10/29/00 KJB ++Much work on GX2, now SWCursor locks up but HWCursor is stable, go figure. ++Loading Netscape a couple times with the mail window was enough to lock it ++up twice in a row. Server was locked but not a box (PCI) lock. Also, ++vertical barring still occurred a couple times, so HW cursor wasn't causing ++that. Try blt_bug flag again for lock up case. And attach to debug server ++and bt... Sleep now... ++ ++10/21/00 KJB ++Ver 1.3.0 ++Depth 16 Xv support added. Testing on ViRGE DX. 1280x1024x24 is noisy, so ++needs FIFO tuning. ++ ++9/27/00 KJB ++Initial Xv support in depth 24. ++ ++9/10/00 KJB ++Convert to FB. Add option "UseFB", default true. Added ++VerticalRetraceWait timeout back as default. #if0 out the line accel ++code in s3v_accel.c. The Subsequent...Bresenham line code causes a lockup ++when used with fb. We didn't have any hardware accel in there anyway... ++ ++7/25/00 KJB ++Started Xv additions. ++ ++6/26/00 KJB ++GX2 seems to have an accel bug. I see the entire screen go solid color or ++a wide stripe pattern for about 1 second. The S3VGEReset gets called twice, ++and then everything is okay. Unless SilkenMouse is enabled... That seems to ++get you a server lock instead. Short term is to disable SilkenMouse for GX2 ++only. SilkenMouse isn't really the problem of course, it just happens that if ++we move the mouse during the 1 second engine lockup we appear more likely to ++never recover. ++ ++6/23/00 KJB ++Ver 1.2.0 - Fix console corruption on GX2 caused by reserved bit use in CR3A. ++Fix GX2 noise on screen in hi-res depth 24 by increasing FIFO fill threshold. ++ ++6/12/00 KJB ++Ver 1.1.0 - Add Init for SilkenMouse, add xf86SetBackingStore call, move ++int10Symbols[] to remove warnings. ++ ++3/3/00 KJB ++Ver 1.0.0 - S3VProbeDDC code for X -configure option added, add timeout to ++WAITIDLE macro in s3v_macros.h, change ImageWriteFlags adding NO_GXCOPY. ++Start of GX2 fixes, use CR regs for FIFO settings. Update copyrights. ++ ++2/11/00 KJB ++Ver 0.11.0 - Add cfb16/24BresS to module symbols to remove warnings. ++Fix viewport restore problem after EnterVT in 24 bpp. ++Clean up log output, removing register dumps from normal console log. ++ ++6/26/99 KJB ++Make the memory settings for fifo_conservative the default, 'fifo_conservative' ++does nothing additional now. Patch includes DGA2 additions below, non-working. ++Expected to be included in 3.9Pu. ++ ++Changes in 3.9Pt by others include additions for newer RAC support. Some reports ++say multi-head works now with ViRGE. ++ ++6/17/99 KJB ++Ver 0.9.0 - Prelim DGA2 support modeled after MGA. ++ ++5/28/99 KJB ++Ver 0.8.0 - Changes to 3.9Po - Cleaned up debug register printing function, minor ++changes to man page, remove S3V.sgml and add new s3virge.sgml in doc/sgml, also ++remove README.S3V from doc directory. ++ ++ ++4/5/99 KJB ++3.9Ph - Ver 0.7.0 - Virge man page added, HW Cursor fixed, rename chipsets removing ++slashes in the names. ++ ++03/27/99 KJB ++Ver 0.6.0 - hwcursor additions, added s3v_hwcurs.c and Option "swcursor". ++Default is hwcursor, Option "swcursor" will disable it. ++ ++Ver 0.5.0 - patch against 3.9Pf (seq 2615), fix depth 24 and Accel flags, sync pci_burst option to previous changes, remove s3v_comp.h and s3v_pio.c and merge as needed. ++ ++03/21/99 KJB ++3.9Pf has Matt Grossman's Alpha changes. ++For next patch - remove s3v_pio.c and s3v_comp.h. Include the EnableMMIO and ++DisableMMIO functions from s3v_pio.c in s3v_driver.c. ++ ++03/02/99 KJB ++3.9Pc - depth 24 doesn't work on my ViRGE DX. NoAccel doesn't start, accel does ++but has blocky noise. ++ ++03/01/99 KJB ++Macro change done, VGAIN/VGAOUT for register access, INREG/OUTREG for s3v_accel.c. ++Added Mark Vojkovich's re-write of the accel code. It may only be clean for ViRGE DX ++at the moment. x11perf showed a couple artifacts in 'move window via parent'. ++In progress, attempt to call cfbScreenInit() functions after MapMem/EnterVT. Not ++working yet. Version stamped 0.4.0. ++ ++02/22/99 KJB ++Macro change coming to add Mark's accel update. VGAOUT for old stuff and MEMOUT ++for new stuff? That way there's no confusion with the old INREG/OUTREG macros. ++Or maybe just stick with INREG/OUTREG for new stuff. ++ ++01/30/99 KJB ++Version stamp 0.3.0. Changed Chipset flags to use PCI IDs exclusively, also use ++common/xf86PciInfo.h for PCI IDs rather than coding them in regs3v.h. ++ ++11/28/98 KJB ++Bumped version stamp to 0.2, expect code in 3.9No. Cleaned up s3v.h and ++s3v_driver.c by removing unused definition & code sections. Added ++options set_mclk (from 3.3.2) and set_lcdclk (3.3.3 MX). Code support ++from 3.3.3 for ViRGE GX2 and MX+ is included. ++Disabled call to 32 bpp AccelInit to get -depth 24 -bpp 32 working again. ++ ++11/27/98 KJB ++More 3.3.3 import. ++New registers saved, CR40,CR45,SR8,(for MX) SR29,SR45,SR55,SR56,SR57. ++Reviewed s3vdriver.h, rehs3v.h, newmmio.h, s3v_accel.c, s3v_driver.c. ++Added ViRGE MX, MX+ & GX2 support. Re-synced parts of mode save and init ++with 3.3.3 versions. Added timeout ability for WaitIdle() and friends. ++Added chipnames and numbers to Chipsets struct. ++ ++11/26/98 KJB ++Import additions from 3.3.3, newmmio.h, regs3v.h, ++ ++Trap fills disabled because they don't match cfb, pixmap cache & ImageWrite ++working, fixed depth 8 color loss on VT switches, INREG & OUTREG modified to ++use a single offset value instead of adding the base and offset together. ++ ++11/18/98 KJB ++3.9Nn ++Acceleration working for Bitblt, ScreenToScreenCopy, Color 8x8 Rect fills, ++and Rect/Trap fills. ++Trap fills do not support transparency, so that needs to be exported to XAA. ++ ++ ++10/31/98 KJB ++Working depth 8, discolored dep 16 but runs, dep 24 screen goes black, ++C-A-Bkspc restores text console. At 3.9Nk tree level, module would not ++load in Loader server. why? Static server tested. ++ ++10/29/98 KJB ++ModeInit() needs work, options are heavily #if'd to try and get 8bpp ++working. ++ ++10/16/98 KJB ++General 4.0 architecture is setup. Presently at 3.9Nc level, if moved ++to a newer tree you will need to add the resource handling functions from ++Egbert (I haven't tackled that yet). ++ ++At the moment the ScreenInit() function is coded to return FALSE. On my ++ViRGE DX card this version does not lock up, but it does destroy the ++video mode. Make sure you have an external terminal or network connection ++if you run it (or blindly do a restart from your main terminal). I make ++no guarantees that it won't hard lock other versions of ViRGE. ++ ++I've left out the Alpha memory mapping, along with all option processing. ++Those will need to be done once the driver is minimally working. ++ ++Note that everything in s3v_driver.c is MMIO only. There are a pair of ++PIO functions in s3v_pio.c, but that is the only place. See notes below ++about my ViRGE DX BIOS and why I needed to do this on my hardware. ++ ++Other stuff... ++Some test stuff is assuming 8bpp, so 16 & 24 are broken. ++On my hardware, I am presently trying to get the Save/Restore sequence to ++recover the video mode. At the moment, when I run this driver, I get: ++ScreenInit() runs to completion. ++It returns FALSE, so the Server aborts. ++LeaveVT() is called, and runs to completion. ++The Server exits gracefully, but my monitor goes powersaver and the video ++mode is not recovered. ++ ++ ++ ++TODO items ++---------- ++1/30/03 General option "videoram" is ignored by the virge driver. ++ (Meelis Roos) ++3/24/02 Xv reported to not work as secondary in Xinerama multihead. ++ (xav on irc) ++3/24/02 DPMS doesn't fully disable the screen. Blue line across the ++ center in all modes. (xav on irc) ++3/25/02 Secondary reports primary BIOS during int10 detection. ie: ++ ++(II) S3VIRGE(1): VESA BIOS detected ++(II) S3VIRGE(1): VESA VBE Version 2.0 ++(II) S3VIRGE(1): VESA VBE Total Mem: 4194240 kB ++(II) S3VIRGE(1): VESA VBE OEM: ATI RAGE128 ++(II) S3VIRGE(1): VESA VBE OEM Software Rev: 1.0 ++(II) S3VIRGE(1): VESA VBE OEM Vendor: ATI Technologies Inc. ++(II) S3VIRGE(1): VESA VBE OEM Product: R128 ++(II) S3VIRGE(1): VESA VBE OEM Product Rev: 01.00 ++ ++(xav on irc) ++ ++ ++Check CR65 usage, bit 2 set based on S3_EARLY_SC? In my manual bit 2 is ++enable MMIO to RAMDAC registers. ++ ++Notes: ++---------- ++ ++/config/cf/xfree86.cf ++ ++have to add s3v to XF86CardDrivers for imake to make the ++drivers/s3v Makefile. ++ ++To remake makefiles, after editing Imakefile, go to dir above drivers/s3v ++and do a 'make Makefiles'. ++ ++For debug, make CDEBUGFLAGS='-g -DDEBUG', adding -DMetroLink enables ++timeout for VerticalRetraceWait(). ++ ++ ++ ++S3 ViRGE DX stuff: ++ ++Card seems to power up (or BIOS forces) with MMIO disabled. All flavors are ++disabled, because CR53 comes up as 0. This may preclude using this card ++as the second device in a multi-head situation although David D. says that ++the new config. management stuff may help here. ++ ++ ++ ++$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES,v 1.23 2003/02/13 03:21:33 dawes Exp $ +diff --git a/TODO_NOTES b/TODO_NOTES +deleted file mode 100644 +index de5920b..0000000 +--- a/TODO_NOTES ++++ /dev/null +@@ -1,326 +0,0 @@ +-S3 ViRGE 4.0 devel notes +- +- +- +-Status +------- +-1/26/2003 +-Ver 1.8.6 +-Pre-4.3.0 release. 320x240 doublescan support w/mouse adjust, +-power management printouts, DAC error printout fix, log XVideo status based +-on chipset, preliminary support for disabling XV when a mode doesn't +-support it. +- +-5/18/2002 +-Ver 1.8.5 +-320x240 mode support (doublescan). +- +-2/2/02 +-Ver 1.8.4 +-Make 320x240 mode work in depth 15 & 16. +-Testing, need to switch streams on/off based on dblscan_v flag and mode. +-Virge MX panel_on test (doesn't work.) +- +-1/10/02 +-Ver 1.8.3 +-DGA fix, buffer pointer used wrong value. Submitted for 4.2.0 (late). +- +-Ver 1.8.2 +-DPMS testing (display DPMS status, disable MX LCD panel), DGA testing. +- +-11/11/01 KJB +-Ver 1.8.1 +-ViRGE MX (& GX2) fix to CR63 for problems with modes < 1024x768 from +-max <sunmax@libero.it>. Submitted for 4.2.0. +- +-11/5/01 KJB +-Ver 1.8.0 +-ViRGE MX & GX2 XVideo changes. Fix overlap/color keying on MX, fix +-and enable GX2 XVideo. +-Submitted for 4.2.0. +- +-11/4/01 KJB +-Ver 1.7.0 +-Bump version for 4.2.0. Update man and README. +- +-11/3/01 KJB +-Ver 1.6.16 +-Pre-4.2.0 patch. cr3a fix, virge mx xvideo support, xvideo disable option +-(helps with high res modes on dx and screen noise), remove accel solid +-fill rect for trio3d, bring over some trio3d and mx fixes from 4.0.3 test +-drivers. Includes VERBLEV bump to 5 to remove register dumps in log file. +- +-Ver 1.6.15 +-Experimental - Scanline color expand - GX2 +- +-9/21/01 KJB +-Ver 1.6.14 +-ModeInit - cr3a for MX/GX2, don't clear reserved bit 0x40 (revert change). +-Back out previous cr3a patch for testing. +- +-9/18/01 KJB +-Ver 1.6.13 +-Option "xvideo" added. Add patch provided by Sven Menke +-<Menke@SLAC.Stanford.EDU> for XV support on MX (slight changes to logic). +- +-Ver 1.6.12 +-Adam J. Richter's cr3a fix (possibly temporary). +- +-5/30/01 KJB +-Ver 1.6.10 +-Disable MaxHValue & MaxVValue setting. +- +-1/03/01 KJB +-Ver 1.6.0 +-Revert ViRGE to pre-Xv changes. ViRGE DX still supports Xv, but changes +-added for Xv and ViRGE caused problems with normal display. +- +-11/27/00 KJB +-Ver 1.5.0 +-Clean up, bump version for 4.0.2 submission. +-CR3A, bit 0x40 (reserved) cleared for MX/GX2. Update man page. +- +-11/24/00 KJB +-Disable CPU to screen color expansion on GX2, causes lockups on GX2 with +-'locate html' in an xterm. Add WaitCmd code to prevent accelerator and +-reg command path activity at the same time on GX2. +-XVideo fixes, left side clipping fixed for video windows extending off left +-side of screen. Add horizontal filtering modes for 1-2x and >3x scaling. +- +-11/7/00 KJB +-Ver 1.4.0 +-Enable MX fixes, testing with accel BLT_BUG set is worse on GX2, so left +-it out. BLT_BUG wasn't being enabled on ViRGE & VX because of case usage, +-enabled now. Re-enable silken mouse for GX2. Add Render/fbPicture support. +-Fix a few compiler warnings. +- +-11/5/00 KJB +-Continued work on GX2, much stabler now, but I think there is a lockup case +-left if you enable pci_burst and pci_retry with accel. I still see screen +-flashes with vertical bars once in a while, and the log reports a GEReset. +-Added fbPicture (render) support, untested. XV code for GX2 is added, +-but not working yet. +- +-10/29/00 KJB +-Much work on GX2, now SWCursor locks up but HWCursor is stable, go figure. +-Loading Netscape a couple times with the mail window was enough to lock it +-up twice in a row. Server was locked but not a box (PCI) lock. Also, +-vertical barring still occurred a couple times, so HW cursor wasn't causing +-that. Try blt_bug flag again for lock up case. And attach to debug server +-and bt... Sleep now... +- +-10/21/00 KJB +-Ver 1.3.0 +-Depth 16 Xv support added. Testing on ViRGE DX. 1280x1024x24 is noisy, so +-needs FIFO tuning. +- +-9/27/00 KJB +-Initial Xv support in depth 24. +- +-9/10/00 KJB +-Convert to FB. Add option "UseFB", default true. Added +-VerticalRetraceWait timeout back as default. #if0 out the line accel +-code in s3v_accel.c. The Subsequent...Bresenham line code causes a lockup +-when used with fb. We didn't have any hardware accel in there anyway... +- +-7/25/00 KJB +-Started Xv additions. +- +-6/26/00 KJB +-GX2 seems to have an accel bug. I see the entire screen go solid color or +-a wide stripe pattern for about 1 second. The S3VGEReset gets called twice, +-and then everything is okay. Unless SilkenMouse is enabled... That seems to +-get you a server lock instead. Short term is to disable SilkenMouse for GX2 +-only. SilkenMouse isn't really the problem of course, it just happens that if +-we move the mouse during the 1 second engine lockup we appear more likely to +-never recover. +- +-6/23/00 KJB +-Ver 1.2.0 - Fix console corruption on GX2 caused by reserved bit use in CR3A. +-Fix GX2 noise on screen in hi-res depth 24 by increasing FIFO fill threshold. +- +-6/12/00 KJB +-Ver 1.1.0 - Add Init for SilkenMouse, add xf86SetBackingStore call, move +-int10Symbols[] to remove warnings. +- +-3/3/00 KJB +-Ver 1.0.0 - S3VProbeDDC code for X -configure option added, add timeout to +-WAITIDLE macro in s3v_macros.h, change ImageWriteFlags adding NO_GXCOPY. +-Start of GX2 fixes, use CR regs for FIFO settings. Update copyrights. +- +-2/11/00 KJB +-Ver 0.11.0 - Add cfb16/24BresS to module symbols to remove warnings. +-Fix viewport restore problem after EnterVT in 24 bpp. +-Clean up log output, removing register dumps from normal console log. +- +-6/26/99 KJB +-Make the memory settings for fifo_conservative the default, 'fifo_conservative' +-does nothing additional now. Patch includes DGA2 additions below, non-working. +-Expected to be included in 3.9Pu. +- +-Changes in 3.9Pt by others include additions for newer RAC support. Some reports +-say multi-head works now with ViRGE. +- +-6/17/99 KJB +-Ver 0.9.0 - Prelim DGA2 support modeled after MGA. +- +-5/28/99 KJB +-Ver 0.8.0 - Changes to 3.9Po - Cleaned up debug register printing function, minor +-changes to man page, remove S3V.sgml and add new s3virge.sgml in doc/sgml, also +-remove README.S3V from doc directory. +- +- +-4/5/99 KJB +-3.9Ph - Ver 0.7.0 - Virge man page added, HW Cursor fixed, rename chipsets removing +-slashes in the names. +- +-03/27/99 KJB +-Ver 0.6.0 - hwcursor additions, added s3v_hwcurs.c and Option "swcursor". +-Default is hwcursor, Option "swcursor" will disable it. +- +-Ver 0.5.0 - patch against 3.9Pf (seq 2615), fix depth 24 and Accel flags, sync pci_burst option to previous changes, remove s3v_comp.h and s3v_pio.c and merge as needed. +- +-03/21/99 KJB +-3.9Pf has Matt Grossman's Alpha changes. +-For next patch - remove s3v_pio.c and s3v_comp.h. Include the EnableMMIO and +-DisableMMIO functions from s3v_pio.c in s3v_driver.c. +- +-03/02/99 KJB +-3.9Pc - depth 24 doesn't work on my ViRGE DX. NoAccel doesn't start, accel does +-but has blocky noise. +- +-03/01/99 KJB +-Macro change done, VGAIN/VGAOUT for register access, INREG/OUTREG for s3v_accel.c. +-Added Mark Vojkovich's re-write of the accel code. It may only be clean for ViRGE DX +-at the moment. x11perf showed a couple artifacts in 'move window via parent'. +-In progress, attempt to call cfbScreenInit() functions after MapMem/EnterVT. Not +-working yet. Version stamped 0.4.0. +- +-02/22/99 KJB +-Macro change coming to add Mark's accel update. VGAOUT for old stuff and MEMOUT +-for new stuff? That way there's no confusion with the old INREG/OUTREG macros. +-Or maybe just stick with INREG/OUTREG for new stuff. +- +-01/30/99 KJB +-Version stamp 0.3.0. Changed Chipset flags to use PCI IDs exclusively, also use +-common/xf86PciInfo.h for PCI IDs rather than coding them in regs3v.h. +- +-11/28/98 KJB +-Bumped version stamp to 0.2, expect code in 3.9No. Cleaned up s3v.h and +-s3v_driver.c by removing unused definition & code sections. Added +-options set_mclk (from 3.3.2) and set_lcdclk (3.3.3 MX). Code support +-from 3.3.3 for ViRGE GX2 and MX+ is included. +-Disabled call to 32 bpp AccelInit to get -depth 24 -bpp 32 working again. +- +-11/27/98 KJB +-More 3.3.3 import. +-New registers saved, CR40,CR45,SR8,(for MX) SR29,SR45,SR55,SR56,SR57. +-Reviewed s3vdriver.h, rehs3v.h, newmmio.h, s3v_accel.c, s3v_driver.c. +-Added ViRGE MX, MX+ & GX2 support. Re-synced parts of mode save and init +-with 3.3.3 versions. Added timeout ability for WaitIdle() and friends. +-Added chipnames and numbers to Chipsets struct. +- +-11/26/98 KJB +-Import additions from 3.3.3, newmmio.h, regs3v.h, +- +-Trap fills disabled because they don't match cfb, pixmap cache & ImageWrite +-working, fixed depth 8 color loss on VT switches, INREG & OUTREG modified to +-use a single offset value instead of adding the base and offset together. +- +-11/18/98 KJB +-3.9Nn +-Acceleration working for Bitblt, ScreenToScreenCopy, Color 8x8 Rect fills, +-and Rect/Trap fills. +-Trap fills do not support transparency, so that needs to be exported to XAA. +- +- +-10/31/98 KJB +-Working depth 8, discolored dep 16 but runs, dep 24 screen goes black, +-C-A-Bkspc restores text console. At 3.9Nk tree level, module would not +-load in Loader server. why? Static server tested. +- +-10/29/98 KJB +-ModeInit() needs work, options are heavily #if'd to try and get 8bpp +-working. +- +-10/16/98 KJB +-General 4.0 architecture is setup. Presently at 3.9Nc level, if moved +-to a newer tree you will need to add the resource handling functions from +-Egbert (I haven't tackled that yet). +- +-At the moment the ScreenInit() function is coded to return FALSE. On my +-ViRGE DX card this version does not lock up, but it does destroy the +-video mode. Make sure you have an external terminal or network connection +-if you run it (or blindly do a restart from your main terminal). I make +-no guarantees that it won't hard lock other versions of ViRGE. +- +-I've left out the Alpha memory mapping, along with all option processing. +-Those will need to be done once the driver is minimally working. +- +-Note that everything in s3v_driver.c is MMIO only. There are a pair of +-PIO functions in s3v_pio.c, but that is the only place. See notes below +-about my ViRGE DX BIOS and why I needed to do this on my hardware. +- +-Other stuff... +-Some test stuff is assuming 8bpp, so 16 & 24 are broken. +-On my hardware, I am presently trying to get the Save/Restore sequence to +-recover the video mode. At the moment, when I run this driver, I get: +-ScreenInit() runs to completion. +-It returns FALSE, so the Server aborts. +-LeaveVT() is called, and runs to completion. +-The Server exits gracefully, but my monitor goes powersaver and the video +-mode is not recovered. +- +- +- +-TODO items +----------- +-1/30/03 General option "videoram" is ignored by the virge driver. +- (Meelis Roos) +-3/24/02 Xv reported to not work as secondary in Xinerama multihead. +- (xav on irc) +-3/24/02 DPMS doesn't fully disable the screen. Blue line across the +- center in all modes. (xav on irc) +-3/25/02 Secondary reports primary BIOS during int10 detection. ie: +- +-(II) S3VIRGE(1): VESA BIOS detected +-(II) S3VIRGE(1): VESA VBE Version 2.0 +-(II) S3VIRGE(1): VESA VBE Total Mem: 4194240 kB +-(II) S3VIRGE(1): VESA VBE OEM: ATI RAGE128 +-(II) S3VIRGE(1): VESA VBE OEM Software Rev: 1.0 +-(II) S3VIRGE(1): VESA VBE OEM Vendor: ATI Technologies Inc. +-(II) S3VIRGE(1): VESA VBE OEM Product: R128 +-(II) S3VIRGE(1): VESA VBE OEM Product Rev: 01.00 +- +-(xav on irc) +- +- +-Check CR65 usage, bit 2 set based on S3_EARLY_SC? In my manual bit 2 is +-enable MMIO to RAMDAC registers. +- +-Notes: +----------- +- +-/config/cf/xfree86.cf +- +-have to add s3v to XF86CardDrivers for imake to make the +-drivers/s3v Makefile. +- +-To remake makefiles, after editing Imakefile, go to dir above drivers/s3v +-and do a 'make Makefiles'. +- +-For debug, make CDEBUGFLAGS='-g -DDEBUG', adding -DMetroLink enables +-timeout for VerticalRetraceWait(). +- +- +- +-S3 ViRGE DX stuff: +- +-Card seems to power up (or BIOS forces) with MMIO disabled. All flavors are +-disabled, because CR53 comes up as 0. This may preclude using this card +-as the second device in a multi-head situation although David D. says that +-the new config. management stuff may help here. +- +- +- +-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES,v 1.23 2003/02/13 03:21:33 dawes Exp $ +diff --git a/configure.ac b/configure.ac +index 317b5bf..1c7e9f7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -20,46 +20,51 @@ + # + # Process this file with autoconf to produce a configure script + +-AC_PREREQ(2.57) ++# Initialize Autoconf ++AC_PREREQ([2.60]) + AC_INIT([xf86-video-s3virge], +- 1.10.4, ++ [1.10.4], + [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], +- xf86-video-s3virge) +- ++ [xf86-video-s3virge]) + AC_CONFIG_SRCDIR([Makefile.am]) +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + AC_CONFIG_AUX_DIR(.) + +-AM_INIT_AUTOMAKE([dist-bzip2]) +- ++# Initialize Automake ++AM_INIT_AUTOMAKE([foreign dist-bzip2]) + AM_MAINTAINER_MODE + +-# Checks for programs. ++# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS ++m4_ifndef([XORG_MACROS_VERSION], ++ [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])]) ++XORG_MACROS_VERSION(1.8) ++XORG_DEFAULT_OPTIONS ++ ++# Initialize libtool + AC_DISABLE_STATIC + AC_PROG_LIBTOOL +-AC_PROG_CC + + AH_TOP([#include "xorg-server.h"]) + ++# Define a configure option for an alternate module directory + AC_ARG_WITH(xorg-module-dir, +- AC_HELP_STRING([--with-xorg-module-dir=DIR], ++ AS_HELP_STRING([--with-xorg-module-dir=DIR], + [Default xorg module directory [[default=$libdir/xorg/modules]]]), + [moduledir="$withval"], + [moduledir="$libdir/xorg/modules"]) + +-# Checks for extensions ++# Store the list of server defined optional extensions in REQUIRED_MODULES + XORG_DRIVER_CHECK_EXT(RANDR, randrproto) + XORG_DRIVER_CHECK_EXT(RENDER, renderproto) + XORG_DRIVER_CHECK_EXT(XV, videoproto) + XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) + +-# Checks for pkg-config packages ++# Obtain compiler/linker options for the driver dependencies + PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto $REQUIRED_MODULES]) + PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], + HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]), + HAVE_XEXTPROTO_71="no") + AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ]) +-sdkdir=$(pkg-config --variable=sdkdir xorg-server) + + # Checks for libraries. + SAVE_CPPFLAGS="$CPPFLAGS" +@@ -69,8 +74,6 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS, + [#include "xorg-server.h"]) + CPPFLAGS="$SAVE_CPPFLAGS" + +-# Checks for header files. +-AC_HEADER_STDC + + if test "x$XSERVER_LIBPCIACCESS" = xyes; then + PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) +@@ -78,20 +81,14 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then + fi + AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) + +- +-AC_SUBST([XORG_CFLAGS]) + AC_SUBST([moduledir]) + + DRIVER_NAME=s3virge + AC_SUBST([DRIVER_NAME]) + +-XORG_MANPAGE_SECTIONS +-XORG_RELEASE_VERSION +- +-XORG_CHECK_LINUXDOC +- +-AC_OUTPUT([ +- Makefile +- src/Makefile +- man/Makefile ++AC_CONFIG_FILES([ ++ Makefile ++ src/Makefile ++ man/Makefile + ]) ++AC_OUTPUT +diff --git a/man/Makefile.am b/man/Makefile.am +index f0eb29b..b3688ce 100644 +--- a/man/Makefile.am ++++ b/man/Makefile.am +@@ -1,27 +1,24 @@ + # + # Copyright 2005 Sun Microsystems, Inc. All rights reserved. +-# +-# Permission to use, copy, modify, distribute, and sell this software and its +-# documentation for any purpose is hereby granted without fee, provided that +-# the above copyright notice appear in all copies and that both that +-# copyright notice and this permission notice appear in supporting +-# documentation. +-# +-# The above copyright notice and this permission notice shall be included +-# in all copies or substantial portions of the Software. +-# +-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +-# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +-# OTHER DEALINGS IN THE SOFTWARE. +-# +-# Except as contained in this notice, the name of the copyright holders shall +-# not be used in advertising or otherwise to promote the sale, use or +-# other dealings in this Software without prior written authorization +-# from the copyright holders. ++# ++# Permission is hereby granted, free of charge, to any person obtaining a ++# copy of this software and associated documentation files (the "Software"), ++# to deal in the Software without restriction, including without limitation ++# the rights to use, copy, modify, merge, publish, distribute, sublicense, ++# and/or sell copies of the Software, and to permit persons to whom the ++# Software is furnished to do so, subject to the following conditions: ++# ++# The above copyright notice and this permission notice (including the next ++# paragraph) shall be included in all copies or substantial portions of the ++# Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++# DEALINGS IN THE SOFTWARE. + # + + drivermandir = $(DRIVER_MAN_DIR) +@@ -34,25 +31,11 @@ EXTRA_DIST = @DRIVER_NAME@.man + + CLEANFILES = $(driverman_DATA) + +-SED = sed + +-# Strings to replace in man pages +-XORGRELSTRING = @PACKAGE_STRING@ +- XORGMANNAME = X Version 11 ++# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure + +-MAN_SUBSTS = \ +- -e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \ +- -e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \ +- -e 's|__xservername__|Xorg|g' \ +- -e 's|__xconfigfile__|xorg.conf|g' \ +- -e 's|__projectroot__|$(prefix)|g' \ +- -e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \ +- -e 's|__drivermansuffix__|$(DRIVER_MAN_SUFFIX)|g' \ +- -e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \ +- -e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \ +- -e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g' + + SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man + + .man.$(DRIVER_MAN_SUFFIX): +- sed $(MAN_SUBSTS) < $< > $@ ++ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ +diff --git a/src/s3v.h b/src/s3v.h +index 42b1f83..f4976ca 100644 +--- a/src/s3v.h ++++ b/src/s3v.h +@@ -40,9 +40,6 @@ in this Software without prior written authorization from the XFree86 Project. + /* Everything using inb/outb, etc needs "compiler.h" */ + #include "compiler.h" + +-/* Drivers for PCI hardware need this */ +-#include "xf86PciInfo.h" +- + /* Drivers that need to access the PCI config space directly need this */ + #include "xf86Pci.h" + +diff --git a/src/s3v_accel.c b/src/s3v_accel.c +index 528ab8a..7837e4a 100644 +--- a/src/s3v_accel.c ++++ b/src/s3v_accel.c +@@ -28,7 +28,9 @@ in this Software without prior written authorization from the XFree86 Project. + #include "config.h" + #endif + ++#include <unistd.h> + #include "s3v.h" ++#include "s3v_pciids.h" + + #include "miline.h" + /* fb includes are in s3v.h */ +diff --git a/src/s3v_dga.c b/src/s3v_dga.c +index 7ad42db..ecf8571 100644 +--- a/src/s3v_dga.c ++++ b/src/s3v_dga.c +@@ -62,7 +62,6 @@ in this Software without prior written authorization from the XFree86 Project. + #include "xf86.h" + #include "xf86_OSproc.h" + #include "xf86Pci.h" +-#include "xf86PciInfo.h" + #include "xaa.h" + #include "xaalocal.h" + #include "s3v.h" +@@ -116,15 +115,15 @@ S3VDGAInit(ScreenPtr pScreen) + to be rewritten to accommodate depth changes in DGA mode */ + + if(0 /*pScrn->displayWidth != pMode->HDisplay*/) { +- newmodes = xrealloc(modes, (num + 2) * sizeof(DGAModeRec)); ++ newmodes = realloc(modes, (num + 2) * sizeof(DGAModeRec)); + oneMore = TRUE; + } else { +- newmodes = xrealloc(modes, (num + 1) * sizeof(DGAModeRec)); ++ newmodes = realloc(modes, (num + 1) * sizeof(DGAModeRec)); + oneMore = FALSE; + } + + if(!newmodes) { +- xfree(modes); ++ free(modes); + return FALSE; + } + modes = newmodes; +diff --git a/src/s3v_driver.c b/src/s3v_driver.c +index 0928a7f..7064b1e 100644 +--- a/src/s3v_driver.c ++++ b/src/s3v_driver.c +@@ -57,8 +57,9 @@ in this Software without prior written authorization from the XFree86 Project. + */ + + +- /* Most xf86 commons are already in s3v.h */ +-#include "s3v.h" ++/* Most xf86 commons are already in s3v.h */ ++#include "s3v.h" ++#include "s3v_pciids.h" + + + #include "globals.h" +@@ -383,7 +384,7 @@ S3VFreeRec(ScrnInfoPtr pScrn) + PVERB5(" S3VFreeRec\n"); + if (pScrn->driverPrivate == NULL) + return; +- xfree(pScrn->driverPrivate); ++ free(pScrn->driverPrivate); + pScrn->driverPrivate = NULL; + } + +@@ -435,7 +436,7 @@ S3VProbe(DriverPtr drv, int flags) + numDevSections, drv, &usedChips); + + /* Free it since we don't need that list after this */ +- xfree(devSections); ++ free(devSections); + if (numUsed <= 0) + return FALSE; + +@@ -463,7 +464,7 @@ S3VProbe(DriverPtr drv, int flags) + foundScreen = TRUE; + } + } +- xfree(usedChips); ++ free(usedChips); + PVERB5(" S3VProbe end\n"); + return foundScreen; + } +@@ -519,7 +520,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) + */ + if (!vgaHWGetHWRec(pScrn)) + return FALSE; +- ++ vgaHWSetStdFuncs(VGAHWPTR(pScrn)); + + /* Set pScrn->monitor */ + pScrn->monitor = pScrn->confScreen->monitor; +@@ -601,7 +602,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) + } + + /* Process the options */ +- if (!(ps3v->Options = xalloc(sizeof(S3VOptions)))) ++ if (!(ps3v->Options = malloc(sizeof(S3VOptions)))) + return FALSE; + memcpy(ps3v->Options, S3VOptions, sizeof(S3VOptions)); + xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, ps3v->Options); +@@ -797,7 +798,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) + + #ifndef XSERVER_LIBPCIACCESS + if (pEnt->resources) { +- xfree(pEnt); ++ free(pEnt); + S3VFreeRec(pScrn); + return FALSE; + } +@@ -851,7 +852,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) + } else { + ps3v->ChipRev = PCI_DEV_REVISION(ps3v->PciInfo); + } +- xfree(pEnt); ++ free(pEnt); + + /* + * This shouldn't happen because such problems should be caught in +@@ -1328,8 +1329,11 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags) + /* Load XAA if needed */ + if (!ps3v->NoAccel || ps3v->hwcursor ) { + if (!xf86LoadSubModule(pScrn, "xaa")) { +- S3VFreeRec(pScrn); +- return FALSE; ++ xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, VERBLEV, ++ "Falling back to shadowfb\n"); ++ ps3v->NoAccel = 1; ++ ps3v->hwcursor = 0; ++ ps3v->shadowFB = 1; + } + } + +@@ -2326,8 +2330,6 @@ S3VScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + pScrn = xf86Screens[pScreen->myNum]; + /* Get S3V rec */ + ps3v = S3VPTR(pScrn); +- /* Make sure we have card access */ +-/* xf86EnableAccess(pScrn);*/ + /* Map MMIO regs and framebuffer */ + if( !S3VMapMem(pScrn) ) + return FALSE; +@@ -2525,7 +2527,7 @@ S3VInternalScreenInit( int scrnIndex, ScreenPtr pScreen) + + if(ps3v->shadowFB) { + ps3v->ShadowPitch = BitmapBytePad(pScrn->bitsPerPixel * width); +- ps3v->ShadowPtr = xalloc(ps3v->ShadowPitch * height); ++ ps3v->ShadowPtr = malloc(ps3v->ShadowPitch * height); + displayWidth = ps3v->ShadowPitch / (pScrn->bitsPerPixel >> 3); + FBStart = ps3v->ShadowPtr; + } else { +@@ -3309,7 +3311,7 @@ S3VCloseScreen(int scrnIndex, ScreenPtr pScreen) + if (ps3v->AccelInfoRec) + XAADestroyInfoRec(ps3v->AccelInfoRec); + if (ps3v->DGAModes) +- xfree(ps3v->DGAModes); ++ free(ps3v->DGAModes); + + pScrn->vtSema = FALSE; + +@@ -3518,11 +3520,17 @@ S3VEnableMmio(ScrnInfoPtr pScrn) + S3VPtr ps3v; + IOADDRESS vgaCRIndex, vgaCRReg; + unsigned char val; +- ++ unsigned int PIOOffset = 0; ++ + PVERB5(" S3VEnableMmio\n"); + + hwp = VGAHWPTR(pScrn); + ps3v = S3VPTR(pScrn); ++ ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 ++ PIOOffset = hwp->PIOOffset; ++#endif ++ + /* + * enable chipset (seen on uninitialized secondary cards) + * might not be needed once we use the VGA softbooter +@@ -3535,17 +3543,17 @@ S3VEnableMmio(ScrnInfoPtr pScrn) + * to be set correctly already and MMIO _has_ to be + * enabled. + */ +- val = inb(hwp->PIOOffset + 0x3C3); /*@@@EE*/ +- outb(hwp->PIOOffset + 0x3C3, val | 0x01); ++ val = inb(PIOOffset + 0x3C3); /*@@@EE*/ ++ outb(PIOOffset + 0x3C3, val | 0x01); + /* + * set CR registers to color mode + * in mono mode extended CR registers + * are not accessible. (EE 05/04/99) + */ +- val = inb(hwp->PIOOffset + VGA_MISC_OUT_R); /*@@@EE*/ +- outb(hwp->PIOOffset + VGA_MISC_OUT_W, val | 0x01); ++ val = inb(PIOOffset + VGA_MISC_OUT_R); /*@@@EE*/ ++ outb(PIOOffset + VGA_MISC_OUT_W, val | 0x01); + vgaHWGetIOBase(hwp); /* Get VGA I/O base */ +- vgaCRIndex = hwp->PIOOffset + hwp->IOBase + 4; ++ vgaCRIndex = PIOOffset + hwp->IOBase + 4; + vgaCRReg = vgaCRIndex + 1; + #if 1 + /* +@@ -3564,7 +3572,7 @@ S3VEnableMmio(ScrnInfoPtr pScrn) + /* Enable new MMIO, if TRIO mmio is already */ + /* enabled, then it stays enabled. */ + outb(vgaCRReg, ps3v->EnableMmioCR53 | 0x08); +- outb(hwp->PIOOffset + VGA_MISC_OUT_W, val); ++ outb(PIOOffset + VGA_MISC_OUT_W, val); + if (S3_TRIO_3D_SERIES(ps3v->Chipset)) { + outb(vgaCRIndex, 0x40); + val = inb(vgaCRReg); +@@ -3586,7 +3594,10 @@ S3VDisableMmio(ScrnInfoPtr pScrn) + hwp = VGAHWPTR(pScrn); + ps3v = S3VPTR(pScrn); + +- vgaCRIndex = hwp->PIOOffset + hwp->IOBase + 4; ++ vgaCRIndex = hwp->IOBase + 4; ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 ++ vgaCRIndex += hwp->PIOOffset; ++#endif + vgaCRReg = vgaCRIndex + 1; + outb(vgaCRIndex, 0x53); + /* Restore register's original state */ +diff --git a/src/s3v_hwcurs.c b/src/s3v_hwcurs.c +index 53c539f..58e8fd9 100644 +--- a/src/s3v_hwcurs.c ++++ b/src/s3v_hwcurs.c +@@ -39,6 +39,7 @@ in this Software without prior written authorization from the XFree86 Project. + + + #include "s3v.h" ++#include "s3v_pciids.h" + + /* protos */ + +diff --git a/src/s3v_i2c.c b/src/s3v_i2c.c +index cbac21f..6bbfd1e 100644 +--- a/src/s3v_i2c.c ++++ b/src/s3v_i2c.c +@@ -58,7 +58,6 @@ in this Software without prior written authorization from the XFree86 Project. + #include "compiler.h" + + #include "xf86Pci.h" +-#include "xf86PciInfo.h" + + #include "vgaHW.h" + +diff --git a/src/s3v_pciids.h b/src/s3v_pciids.h +new file mode 100644 +index 0000000..5d11333 +--- /dev/null ++++ b/src/s3v_pciids.h +@@ -0,0 +1,18 @@ ++#ifndef S3V_PCIIDS_H ++#define S3V_PCIIDS_H ++ ++#define PCI_VENDOR_S3 0x5333 ++#define PCI_CHIP_VIRGE 0x5631 ++#define PCI_CHIP_TRIO 0x8811 ++#define PCI_CHIP_TRIO64UVP 0x8814 ++#define PCI_CHIP_VIRGE_VX 0x883D ++#define PCI_CHIP_TRIO64V2_DXGX 0x8901 ++#define PCI_CHIP_Trio3D 0x8904 ++#define PCI_CHIP_VIRGE_DXGX 0x8A01 ++#define PCI_CHIP_VIRGE_GX2 0x8A10 ++#define PCI_CHIP_Trio3D_2X 0x8A13 ++#define PCI_CHIP_VIRGE_MX 0x8C01 ++#define PCI_CHIP_VIRGE_MXPLUS 0x8C02 ++#define PCI_CHIP_VIRGE_MXP 0x8C03 ++ ++#endif /* S3V_PCIIDS_H */ +diff --git a/src/s3v_shadow.c b/src/s3v_shadow.c +index e2e1269..82b763f 100644 +--- a/src/s3v_shadow.c ++++ b/src/s3v_shadow.c +@@ -60,7 +60,6 @@ in this Software without prior written authorization from the XFree86 Project. + + #include "xf86.h" + #include "xf86_OSproc.h" +-#include "xf86PciInfo.h" + #include "xf86Pci.h" + #include "shadowfb.h" + #include "servermd.h" +diff --git a/src/s3v_xv.c b/src/s3v_xv.c +index 7e7c243..2466789 100644 +--- a/src/s3v_xv.c ++++ b/src/s3v_xv.c +@@ -40,8 +40,9 @@ in this Software without prior written authorization from the XFree86 Project. + #include "config.h" + #endif + +- /* Most xf86 commons are already in s3v.h */ +-#include "s3v.h" ++/* Most xf86 commons are already in s3v.h */ ++#include "s3v.h" ++#include "s3v_pciids.h" + + #if 0 + #define OFF_DELAY 250 /* milliseconds */ +@@ -137,7 +138,7 @@ void S3VInitVideo(ScreenPtr pScreen) + adaptors = &newAdaptor; + } else { + newAdaptors = /* need to free this someplace */ +- xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*)); ++ malloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*)); + if(newAdaptors) { + memcpy(newAdaptors, adaptors, num_adaptors * + sizeof(XF86VideoAdaptorPtr)); +@@ -152,7 +153,7 @@ void S3VInitVideo(ScreenPtr pScreen) + xf86XVScreenInit(pScreen, adaptors, num_adaptors); + + if(newAdaptors) +- xfree(newAdaptors); ++ free(newAdaptors); + } + + /* client libraries expect an encoding */ +@@ -301,10 +302,10 @@ S3VAllocAdaptor(ScrnInfoPtr pScrn) + if(!(adapt = xf86XVAllocateVideoAdaptorRec(pScrn))) + return NULL; + +- if(!(pPriv = xcalloc(1, sizeof(S3VPortPrivRec) + ++ if(!(pPriv = calloc(1, sizeof(S3VPortPrivRec) + + (sizeof(DevUnion) * S3V_MAX_PORTS)))) + { +- xfree(adapt); ++ free(adapt); + return NULL; + } + |