Update to xf86-video-mach64 6.9.1

This commit is contained in:
matthieu 2012-05-15 06:19:26 +00:00
parent ab74237f1d
commit 9a8da21ee8
32 changed files with 31029 additions and 24182 deletions

View File

@ -1,3 +1,325 @@
commit 5e09e744b27b5ada9dd064e250fa98eddf1a58c3
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Mar 23 18:56:44 2012 -0700
xf86-video-mach64 6.9.1
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit fa20f8f2408ac81ff04d81196a56c907fba01c45
Author: Adam Jackson <ajax@redhat.com>
Date: Mon Dec 19 16:45:25 2011 -0500
Fall back to shadowfb if XAA is unavailable
Signed-off-by: Adam Jackson <ajax@redhat.com>
commit 0de234329fa1c3365954498819da93d64a978911
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Sat Oct 29 18:53:48 2011 -0700
Use pci_device_map_legacy rather than xf86MapDomainMemory
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit 75166a0fc92220b496eb67451ec1b11cb8b72091
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Sat Oct 29 18:54:10 2011 -0700
Use unsigned long rather than deprecated IOADDRESS
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
commit ef55d1f123972ccc001bf8b41db45d281be35a62
Author: Julien Cristau <jcristau@debian.org>
Date: Thu Apr 28 17:23:42 2011 +0200
Bump to 6.9.0
Signed-off-by: Julien Cristau <jcristau@debian.org>
commit 39c6d1da8af563afa665d5bb149c9693e24c6eab
Author: Julien Cristau <jcristau@debian.org>
Date: Thu Apr 28 17:31:52 2011 +0200
Replace deprecated xalloc/xfree/xrealloc with malloc/free/realloc
Signed-off-by: Julien Cristau <jcristau@debian.org>
commit d60087f0b6dd4d082230312580ae35e14acd0c6e
Author: Dave Airlie <airlied@redhat.com>
Date: Thu Dec 2 19:11:05 2010 +1000
mach64: fix the pixmap private API change.
commit e7bc106247d9ba10a922936e137a4f5ecc54ef9e
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sat Oct 30 09:37:17 2010 -0700
Sun's copyrights now belong to Oracle
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 1732886624c7590a8084bb7d92e87ff341aa6d66
Author: Mark Kettenis <kettenis@openbsd.org>
Date: Sun Aug 29 18:07:01 2010 +0200
Don't play wrapping games
The driver calls the wrapped CloseScreen function in the middle of messing
with the hardware state. On multi-card setups this may cause the VGA
arbiter to switch to a different card while we're in the middle of things,
with obvious disastrous effects. This fixes things by making sure we
only call the wrapped CloseScreen function at the very end of the driver's
CloseScreen function.
Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
commit 7a1549678a19c6e94e1ecb3223c74effbd5009d2
Author: Mark Kettenis <kettenis@openbsd.org>
Date: Sun Aug 29 17:54:19 2010 +0200
Don't attempt to stop video on Mach64's without hardware overlay support
Older Mach64 variants don't have hardware overlay support. This is handled
properly when the XVideo adapter is initialized (we bail out early), but
ATICloseXVideo() unconditionally tries to stop video during screen termination.
This causes the server to hang on certain multi-card setups. Fix the issue
by checking Block1Base before proceeding with stopping video.
Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
commit 88a176df8df09812719eb179b293ce4dc851f2e5
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Jul 21 16:49:04 2010 -0400
config: add comments for main statements
commit 18ee3aa1b7a4c9de9cc705cb10e05864d3ab6406
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Jul 21 16:07:00 2010 -0400
config: replace deprecated use of AC_OUTPUT with AC_CONFIG_FILES
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit d061e00d4d09e8fbecc8bad95354551d36197dd4
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Jul 21 14:37:41 2010 -0400
config: replace deprecated AC_HELP_STRING with AS_HELP_STRING
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 69da993c9bdb8982c650533ca44a34fa2d7589fa
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Jul 21 14:05:22 2010 -0400
config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 37f35b579e9ea1a4b5b50f3ae570e3329664c38e
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Jul 21 09:27:42 2010 -0400
config: complete AC_INIT m4 quoting
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 1cb6b6939e5d466797721a2e59afdd067e769fcc
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Jul 20 21:54:11 2010 -0400
config: remove unrequired AC_SUBST([DRI_CFLAGS])
This macro is called by PKG_CHECK_MODULES
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 590d1989f22c38d8db01146b2207d440bc59f285
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Jul 20 21:44:57 2010 -0400
config: remove unrequired AC_SUBST([XORG_CFLAGS])
This macro is called by PKG_CHECK_MODULES
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 7bf12fb07625bd5503c5de3e5e07bd69c6de54b3
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Jul 20 20:24:42 2010 -0400
config: remove unrequired AC_HEADER_STDC
Autoconf says:
"This macro is obsolescent, as current systems have conforming
header files. New programs need not use this macro".
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 3518273c2117c0d8e51efecb2f9184d5f8274ae0
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Jul 20 19:41:31 2010 -0400
config: remove AC_PROG_CC as it overrides AC_PROG_C_C99
XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls
AC_PROG_C_C99. This sets gcc with -std=gnu99.
If AC_PROG_CC macro is called afterwards, it resets CC to gcc.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 03dd23597e64f440e5530bd8bfbd222b8f825d5a
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Jul 20 18:45:19 2010 -0400
config: update AC_PREREQ statement to 2.60
Unrelated to the previous patches, the new value simply reflects
the reality that the minimum level for autoconf to configure
all x.org modules is 2.60 dated June 2006.
ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit d5b5e2bb4139b723df35a422b945d514caf4db2d
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Jul 20 16:15:29 2010 -0400
config: upgrade to util-macros 1.8 for additional man page support
Use MAN_SUBST now supplied in XORG_MANPAGE_SECTIONS
The value of MAN_SUBST is the same for all X.Org packages.
commit 6da9520fe6c482c1d4cb9dd6119c13789ed9715a
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Mon Jun 21 10:37:11 2010 -0400
config: remove optional check for xf86miscproto
This extension is obsolete and is not used by this driver.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 1f1e665f7dab55eceb314adb185636b8ee64fbc6
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Mon Jun 14 08:43:04 2010 -0400
README: keep the text version of README, discard the sgml version
The linuxdoc doc tool is deprecated.
README files are exclusively text files.
Normalize to one plain text README file.
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 2863c5617ccb4a09a699c43c72d9b496480db102
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Mon Jun 14 08:38:59 2010 -0400
README: fix linuxdoc content
defs.ent are located under X11 directory
ident tag is not a Linuxdoc tag
replace docbook email tag with linuxdoc email tag
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit ebfb29a00384ae8070d9f10726c591c0ca92637c
Author: Matt Turner <mattst88@gmail.com>
Date: Mon Mar 8 10:52:54 2010 -0500
Don't check for Xinerama.
It doesn't seem to be used anywhere, so don't require it.
CC: Jerome Glisse <jglisse@redhat.com>
CC: Alex Deucher <alexdeucher@gmail.com>
CC: Dave Airlie <airlied@redhat.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
commit 383903574b9660f9d7831b149f2a9b339a871586
Author: Alan Coopersmith <alan.coopersmith@sun.com>
Date: Fri Jan 15 15:54:36 2010 -0800
Update Sun license notices to current X.Org standard form
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
commit 0059e1e49b1e6861aad801b93ccf846a236a42a7
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Tue Dec 15 21:47:06 2009 -0500
configure.ac: use backticks rather than $() for cmd subs
Use "$PKG_CONFIG" rather than hard coded "pkg-config"
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Acked-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit 8f84a92309e62655de69c09affa2e6922cc46aa1
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Mon Nov 23 09:25:05 2009 -0500
Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES
Now that the INSTALL file is generated.
Allows running make maintainer-clean.
commit da3afdb69d426db6423c505f1c4ec10b9cd40304
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Oct 28 14:41:41 2009 -0400
INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206
Automake 'foreign' option is specified in configure.ac.
Remove from Makefile.am
commit a0b11f322c440ccf13347c42d08ed5e0b208d79c
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Oct 28 14:09:09 2009 -0400
INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206
Add missing INSTALL file. Use standard GNU file on building tarball
README may have been updated
Remove AUTHORS file as it is empty and no content available yet.
Remove NEWS file as it is empty and no content available yet.
commit 963be32d684b32957d7e646eb19259d7710bf66a
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Mon Oct 26 12:54:21 2009 -0400
Several driver modules do not have a ChangeLog target in Makefile.am #23814
The git generated ChangeLog replaces the hand written one.
Update configure.ac to xorg-macros level 1.3.
Use XORG_DEFAULT_OPTIONS which replaces four XORG_* macros
Update Makefile.am to add ChangeLog target if missing
Remove ChangeLog from EXTRA_DIST or *CLEAN variables
This is a pre-req for the INSTALL_CMD
commit 3e54585250d22541a31068b5b8f0c8743dbccce6
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Thu Oct 22 12:34:17 2009 -0400
.gitignore: use common defaults with custom section # 24239
Using common defaults will reduce errors and maintenance.
Only the very small or inexistent custom section need periodic maintenance
when the structure of the component changes. Do not edit defaults.
commit 2013b64cf19fce32edb052ee6d8529d3ce69d409
Author: Dave Airlie <airlied@redhat.com>
Date: Thu Jul 30 12:04:28 2009 +1000
mach64: bump for release 6.8.2
commit 4f08e83e50059df494f5f53cd05eb8809d18656e
Author: Dave Airlie <airlied@redhat.com>
Date: Tue Jul 28 15:22:40 2009 +1000
@ -241,7 +563,7 @@ Date: Mon Feb 25 07:10:48 2008 +1000
fixup check for EXA composite pointed out by Alan Swanson
commit 85e470e64f629de72e361c77770e2e29998d1bf4
Merge: 27ddb39... 1b84c76...
Merge: 27ddb39 1b84c76
Author: Alex Deucher <alex@samba.(none)>
Date: Sun Feb 24 05:37:22 2008 -0500
@ -929,7 +1251,7 @@ Date: Mon Jan 14 16:11:09 2008 -0500
Fixes bug 14001
commit 729da30c80d6545b75c8faea44754634f477cc09
Merge: 000741e... 625a885...
Merge: 000741e 625a885
Author: Alex Deucher <alex@samba.(none)>
Date: Mon Jan 14 10:05:01 2008 -0500
@ -1122,7 +1444,7 @@ Date: Wed Jan 2 19:48:28 2008 -0500
RADEON: various avivo tv-out related clean-ups
commit ce34090c758ac91171cb6adb9b8a36e4adbf99cf
Merge: 2180f04... 30cab1d...
Merge: 2180f04 30cab1d
Author: Alex Deucher <alex@samba.(none)>
Date: Wed Jan 2 16:41:36 2008 -0500
@ -1329,7 +1651,7 @@ Date: Fri Dec 21 09:45:55 2007 +1000
set ddc line correctly post-merge
commit 3c31b96afa20913ad947e68fe0c3a662e5eafbdd
Merge: eb99c3c... f5e8c18...
Merge: eb99c3c f5e8c18
Author: Dave Airlie <airlied@linux.ie>
Date: Fri Dec 21 09:36:22 2007 +1000
@ -1370,7 +1692,7 @@ Date: Wed Dec 19 19:15:19 2007 -0500
The correct thing to do is filter by the mode's effective memory bandwidth.
commit c1b0b69cc50516c3b7e881b0eb46cb3cd2e9dce6
Merge: 0e66348... ce4fa1c...
Merge: 0e66348 ce4fa1c
Author: Alex Deucher <alex@botch2.(none)>
Date: Wed Dec 19 11:54:50 2007 -0500
@ -1445,14 +1767,14 @@ Date: Mon Dec 17 20:20:04 2007 -0500
RADEON: fix typo from merge
commit 19b9d3708852b7efe2b05249c8359dadb924dd94
Merge: cf685f3... 29706ca...
Merge: cf685f3 29706ca
Author: Alex Deucher <alex@samba.(none)>
Date: Mon Dec 17 20:07:32 2007 -0500
Merge branch 'atombios-support' of git+ssh://agd5f@git.freedesktop.org/git/xorg/driver/xf86-video-ati into atombios-support
commit cf685f37ec874f0aacd09e7c4eb0402c6daec1b0
Merge: 2a134af... 44d07c4...
Merge: 2a134af 44d07c4
Author: Alex Deucher <alex@samba.(none)>
Date: Mon Dec 17 20:07:07 2007 -0500
@ -1601,7 +1923,7 @@ Date: Thu Dec 13 18:45:09 2007 -0500
- Unify the PLL calculation between legacy and avivo chips
commit f5ac34983411e4c4f41ab1817dce582830f398fd
Merge: f2b2e08... 6ccf5b3...
Merge: f2b2e08 6ccf5b3
Author: Alex Deucher <alex@samba.(none)>
Date: Wed Dec 12 22:37:44 2007 -0500
@ -1654,7 +1976,7 @@ Date: Tue Dec 11 14:04:58 2007 -0500
RADEON: handle HMDI properly (untested) and fix some merge leftovers
commit 3c22ad977c25d5ca2811821fcac6bb8ecd79994a
Merge: c9a0cee... f3d2ec3...
Merge: c9a0cee f3d2ec3
Author: Alex Deucher <alex@botch2.(none)>
Date: Tue Dec 11 13:11:15 2007 -0500
@ -1710,7 +2032,7 @@ Date: Mon Dec 10 15:25:56 2007 +1000
add support for building against legacy servers similiar to Intel codepaths
commit 9c278cb7fa7f18d13bde053fd75221cfba9da377
Merge: 6451ea2... cc167b9...
Merge: 6451ea2 cc167b9
Author: Dave Airlie <airlied@linux.ie>
Date: Mon Dec 10 15:18:03 2007 +1000
@ -1724,7 +2046,7 @@ Date: Mon Dec 10 15:18:03 2007 +1000
src/radeon_output.c
commit 6451ea2dcc4fac762442f699935864f4a8d445f7
Merge: 0d89556... 5896ca4...
Merge: 0d89556 5896ca4
Author: Dave Airlie <airlied@linux.ie>
Date: Mon Dec 10 15:08:42 2007 +1000
@ -1784,7 +2106,7 @@ Date: Thu Dec 6 19:23:06 2007 +1100
powerpc: build fixes from last merge
commit dbe3d2608ecc9896db9c23b3a347b50748c51e13
Merge: 48e31cd... 21ed435...
Merge: 48e31cd 21ed435
Author: Dave Airlie <airlied@redhat.com>
Date: Thu Dec 6 14:22:03 2007 +1000
@ -1885,7 +2207,7 @@ Date: Fri Nov 30 20:11:42 2007 -0500
mode or vesafb etc. after running the driver.
commit af0196f7bf0d1d5d211391149c18935d64ed2b06
Merge: d9858a2... 0175b79...
Merge: d9858a2 0175b79
Author: Alex Deucher <alex@botch2.(none)>
Date: Fri Nov 30 16:40:28 2007 -0500
@ -1917,7 +2239,7 @@ Date: Fri Nov 30 15:37:42 2007 -0500
for now.
commit e1945f1f25a34310bd58ce128c8ff27ecc985618
Merge: b368b0f... df7777b...
Merge: b368b0f df7777b
Author: Alex Deucher <alex@botch2.(none)>
Date: Fri Nov 30 14:30:55 2007 -0500
@ -2138,7 +2460,7 @@ Date: Wed Nov 21 17:03:39 2007 -0500
Thanks to AMD for the information
commit a12390c832abe423def60e39cd5a9118e5910339
Merge: d531792... e74dca1...
Merge: d531792 e74dca1
Author: Alex Deucher <alex@botch2.(none)>
Date: Wed Nov 21 02:24:48 2007 -0500
@ -2191,7 +2513,7 @@ Date: Wed Nov 21 00:05:42 2007 -0500
RADEON: store devices ids from bios for each driver output
commit 3975da2ea8cb628f7f66c3f26c5dfa181cd1c532
Merge: e283aa3... 295ce27...
Merge: e283aa3 295ce27
Author: Alex Deucher <alex@botch2.(none)>
Date: Tue Nov 20 23:52:29 2007 -0500
@ -2291,7 +2613,7 @@ Date: Tue Nov 20 13:37:00 2007 +1000
atombios: add all r5xx and r6xx pci ids
commit 5d023e2c3c2ab44ea57ffadc9607025d602c376c
Merge: 0d1e0c7... c887260...
Merge: 0d1e0c7 c887260
Author: Dave Airlie <airlied@redhat.com>
Date: Tue Nov 20 13:02:43 2007 +1000
@ -2316,7 +2638,7 @@ Date: Tue Nov 20 08:15:58 2007 +1000
r5xx: cleanups after last merge
commit fe2f7a09050fb7a345a1f52239f8f3c4f1053891
Merge: 744c8cb... 49055d8...
Merge: 744c8cb 49055d8
Author: Dave Airlie <airlied@redhat.com>
Date: Tue Nov 20 08:04:32 2007 +1000
@ -2328,7 +2650,7 @@ Date: Tue Nov 20 08:04:32 2007 +1000
src/radeon_output.c
commit 744c8cb6c293fcaa687566f52901644e699baace
Merge: e258fbe... e530af7...
Merge: e258fbe e530af7
Author: Dave Airlie <airlied@redhat.com>
Date: Tue Nov 20 07:56:33 2007 +1000
@ -2341,14 +2663,14 @@ Date: Mon Nov 19 16:35:05 2007 +1000
makes 2-headed cursor work
commit e530af79adf51b3e95a0eca676c915a34dcbf4a7
Merge: 69e197f... 52aba8d...
Merge: 69e197f 52aba8d
Author: Alex Deucher <alex@botch2.(none)>
Date: Mon Nov 19 00:59:30 2007 -0500
Merge branch 'agd-atom' of /home/alex/git/airlied/xf86-video-ati2 into agd-atom
commit 69e197f2c8002aacf2587754c8d3bd63c88f85b1
Merge: 5e8940f... 862dcab...
Merge: 5e8940f 862dcab
Author: Alex Deucher <alex@botch2.(none)>
Date: Mon Nov 19 00:57:34 2007 -0500
@ -2379,7 +2701,7 @@ Date: Mon Nov 19 00:39:19 2007 -0500
Don't assign a gpio for TV
commit 52aba8d73189ba959f19c0437499d5e7a8829827
Merge: 862dcab... 5e8940f...
Merge: 862dcab 5e8940f
Author: Dave Airlie <airlied@redhat.com>
Date: Mon Nov 19 15:30:46 2007 +1000
@ -2416,7 +2738,7 @@ Date: Sun Nov 18 23:43:06 2007 -0500
fix typo in loop
commit 384cd8f52c89d089c6559e2eedbae45641fcd14e
Merge: f3f0e4e... 234b607...
Merge: f3f0e4e 234b607
Author: Dave Airlie <airlied@redhat.com>
Date: Mon Nov 19 14:02:55 2007 +1000
@ -2485,7 +2807,7 @@ Date: Sat Nov 17 00:34:56 2007 -0500
WIP: more new ATOM integration work
commit 67db114d97abed7a607467e5d67c7b4ffa2c347e
Merge: 7d06a87... ea15346...
Merge: 7d06a87 ea15346
Author: Alex Deucher <alex@botch2.(none)>
Date: Fri Nov 16 14:29:53 2007 -0500
@ -2548,7 +2870,7 @@ Date: Fri Nov 16 14:48:36 2007 +1000
Add copyright headers
commit 3cfcd2164b400bd0d1cb4ede8eeb01abba9d75c8
Merge: efac14e... 718bfd3...
Merge: efac14e 718bfd3
Author: Alex Deucher <alex@botch2.(none)>
Date: Thu Nov 15 23:25:39 2007 -0500
@ -3069,7 +3391,7 @@ Date: Thu Oct 4 11:32:48 2007 +0200
Surprisingly easy, thanks to George's pci-rework changes.
commit 7addf41885ec5658f531624a9c24ea5bd7d22d19
Merge: 3a958ba... 78c6bd3...
Merge: 3a958ba 78c6bd3
Author: Michel Dänzer <michel@tungstengraphics.com>
Date: Thu Oct 4 11:06:08 2007 +0200
@ -3528,7 +3850,7 @@ Date: Tue Aug 28 15:37:11 2007 +0300
It still uses the old probe method though, this is due to the ati wrapper.
commit 7b38d9a1209f87255e5bb0aefe46a363ce4fb6ef
Merge: 2e3d43a... 673f799...
Merge: 2e3d43a 673f799
Author: George Sapountzis <gsap7@yahoo.gr>
Date: Tue Aug 28 16:01:12 2007 +0300
@ -3792,14 +4114,14 @@ Date: Thu Aug 23 19:56:21 2007 +1000
updated release numbering for randr 1.2
commit 81a8093f2ffdce59d4e8a44f65f3d5c771fd6425
Merge: c08e6ec... 53a67e3...
Merge: c08e6ec 53a67e3
Author: Dave Airlie <airlied@redhat.com>
Date: Thu Aug 23 19:51:47 2007 +1000
Merge remote branch 'origin/randr-1.2'
commit c08e6ec9e7ac06caee53689b0ec50ef6a7a0ba37
Merge: 5793e87... a0d0fcd...
Merge: 5793e87 a0d0fcd
Author: Dave Airlie <airlied@clockmaker.usersys.redhat.com>
Date: Thu Aug 23 19:42:19 2007 +1000
@ -4672,7 +4994,7 @@ Date: Wed May 30 17:49:01 2007 +1000
we hang when moving the cursor into the second CRTC.
commit 7fc02657c4d740941fbda5a8823cf45de3eca3f8
Merge: 800bf53... 4c61c0e...
Merge: 800bf53 4c61c0e
Author: Dave Airlie <airlied@nx6125b.(none)>
Date: Wed May 30 17:27:22 2007 +1000
@ -4727,7 +5049,7 @@ Date: Tue May 29 07:23:24 2007 +1000
rs480: only has single dac
commit c52322354fe64725733842b3356798c50e7735d5
Merge: dd6a966... 975da59...
Merge: dd6a966 975da59
Author: Dave Airlie <airlied@nx6125b.(none)>
Date: Tue May 29 07:21:48 2007 +1000
@ -5209,7 +5531,7 @@ Date: Tue May 8 19:27:48 2007 +0200
remove some old mergedfb cruft
commit 76670f665ebec7cdf40a04bf9379cb3ad4417507
Merge: 83f81ed... a3ee422...
Merge: 83f81ed a3ee422
Author: Alex Deucher <alex@t41p.hsd1.va.comcast.net>
Date: Tue May 8 18:41:25 2007 +0200
@ -5660,7 +5982,7 @@ Date: Sun Feb 25 23:29:09 2007 +1100
fix typo
commit 3cfe94d5438961b869766dacbcd13fde8b770ca2
Merge: 31c018c... 3b43788...
Merge: 31c018c 3b43788
Author: Dave Airlie <airlied@linux.ie>
Date: Sun Feb 25 23:27:19 2007 +1100
@ -5853,7 +6175,7 @@ Date: Sun Feb 4 11:28:54 2007 +0200
case because pATI->PCIInfo is now set after ATIProcessOptions() is called.
commit 9d77aabdff919360f0c9333105436c31f1f5749a
Merge: ff8ea19... 57822be...
Merge: ff8ea19 57822be
Author: George Sapountzis <gsap7@yahoo.gr>
Date: Mon Feb 5 19:16:51 2007 +0200
@ -7026,7 +7348,7 @@ Date: Mon Sep 25 11:35:32 2006 +1000
radeon: cleanup some bits from superpatch
commit 9827afaa40720a58e2fc029c0bf92ad2fe223d11
Merge: 10b4b46... ad8259c...
Merge: 10b4b46 ad8259c
Author: Dave Airlie <airlied@linux.ie>
Date: Mon Sep 25 11:25:17 2006 +1000
@ -7171,7 +7493,7 @@ Date: Fri Sep 22 06:35:34 2006 +1000
radeon: add enable display function
commit 4a54886d510f26b29d27e5c9a73647554291b1a6
Merge: 70264d6... 9fa176c...
Merge: 70264d6 9fa176c
Author: Dave Airlie <airlied@linux.ie>
Date: Fri Sep 22 06:00:04 2006 +1000
@ -7787,7 +8109,7 @@ Date: Thu Jun 15 15:35:05 2006 +0200
Fix some more cosmetic warnings.
commit ec93e08b24f7c0e583970d08bfe18ad142e6b047
Merge: 051c49d... 6ca9862...
Merge: 051c49d 6ca9862
Author: Michel Dänzer <michel@tungstengraphics.com>
Date: Thu Jun 15 15:03:27 2006 +0200
@ -7806,7 +8128,7 @@ Date: Thu Jun 15 21:24:16 2006 +1000
remove all printf specifier warnings on Linux
commit 051c49d0f002c72d1d8f15f6df264d8b093d4e95
Merge: a840afc... dfac819...
Merge: a840afc dfac819
Author: Michel Dänzer <michel@tungstengraphics.com>
Date: Thu Jun 15 13:10:44 2006 +0200
@ -7831,7 +8153,7 @@ Date: Thu Jun 15 20:59:33 2006 +1000
some more unused variable cleanups
commit a840afc75a0453b4694e3f987ebdbddc6844a169
Merge: c90c49d... d511ef4...
Merge: c90c49d d511ef4
Author: Michel Dänzer <michel@tungstengraphics.com>
Date: Thu Jun 15 12:46:58 2006 +0200

View File

@ -0,0 +1,291 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
6. Often, you can also type `make uninstall' to remove the installed
files again.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *Note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.

View File

@ -18,20 +18,15 @@
# 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.ati: README.ati.sgml
$(MAKE_TEXT) README.ati.sgml && mv README.ati.txt README.ati
endif
.PHONY: ChangeLog INSTALL
EXTRA_DIST = README.ati README.ati.sgml ChangeLog
MAINTAINERCLEANFILES = ChangeLog
.PHONY: ChangeLog
INSTALL:
$(INSTALL_CMD)
ChangeLog:
$(CHANGELOG_CMD)
dist-hook: ChangeLog
dist-hook: ChangeLog INSTALL

View File

@ -42,9 +42,9 @@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
install_sh_DATA = ${SHELL} $(install_sh) -c -m 644
install_sh_PROGRAM = ${SHELL} $(install_sh) -c
install_sh_SCRIPT = ${SHELL} $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
@ -57,7 +57,7 @@ build_triplet = @build@
host_triplet = @host@
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure COPYING ChangeLog config.guess \
$(top_srcdir)/configure COPYING ChangeLog INSTALL config.guess \
config.sub depcomp install-sh ltmain.sh missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@ -97,6 +97,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
@ -110,10 +111,7 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_LINUXDOC_FALSE = @BUILD_LINUXDOC_FALSE@
BUILD_LINUXDOC_TRUE = @BUILD_LINUXDOC_TRUE@
BUILD_PDFDOC_FALSE = @BUILD_PDFDOC_FALSE@
BUILD_PDFDOC_TRUE = @BUILD_PDFDOC_TRUE@
BASE_CFLAGS = @BASE_CFLAGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@ -121,13 +119,10 @@ CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@
@ -136,44 +131,47 @@ DRI_FALSE = @DRI_FALSE@
DRI_LIBS = @DRI_LIBS@
DRI_TRUE = @DRI_TRUE@
DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
HAVE_XEXTPROTO_71_FALSE = @HAVE_XEXTPROTO_71_FALSE@
HAVE_XEXTPROTO_71_TRUE = @HAVE_XEXTPROTO_71_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LINUXDOC = @LINUXDOC@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MAKE_HTML = @MAKE_HTML@
MAKE_PDF = @MAKE_PDF@
MAKE_PS = @MAKE_PS@
MAKE_TEXT = @MAKE_TEXT@
MANIFEST_TOOL = @MANIFEST_TOOL@
MAN_SUBSTS = @MAN_SUBSTS@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@ -184,11 +182,11 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@
PCIACCESS_LIBS = @PCIACCESS_LIBS@
PKG_CONFIG = @PKG_CONFIG@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
USE_EXA_FALSE = @USE_EXA_FALSE@
USE_EXA_TRUE = @USE_EXA_TRUE@
@ -197,16 +195,14 @@ XEXT_CFLAGS = @XEXT_CFLAGS@
XEXT_LIBS = @XEXT_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
XORG_SGML_PATH = @XORG_SGML_PATH@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XSERVER_LIBPCIACCESS_FALSE = @XSERVER_LIBPCIACCESS_FALSE@
XSERVER_LIBPCIACCESS_TRUE = @XSERVER_LIBPCIACCESS_TRUE@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@ -248,10 +244,8 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src man
EXTRA_DIST = README.ati README.ati.sgml ChangeLog
MAINTAINERCLEANFILES = ChangeLog
MAINTAINERCLEANFILES = ChangeLog INSTALL
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@ -691,15 +685,15 @@ uninstall-info: uninstall-info-recursive
tags tags-recursive uninstall uninstall-am uninstall-info-am
@BUILD_LINUXDOC_TRUE@README.ati: README.ati.sgml
@BUILD_LINUXDOC_TRUE@ $(MAKE_TEXT) README.ati.sgml && mv README.ati.txt README.ati
.PHONY: ChangeLog INSTALL
.PHONY: ChangeLog
INSTALL:
$(INSTALL_CMD)
ChangeLog:
$(CHANGELOG_CMD)
dist-hook: ChangeLog
dist-hook: ChangeLog INSTALL
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,4 +1,831 @@
xf86-video-mach64 - ATI Mach64 driver for the Xorg X server
ATI Adapters README file
Marc Aurele La France
2002 February 12
This is the README for the XAA ATI driver included in this release.
______________________________________________________________________
Table of Contents
1. Statement of intent
2. A note on acceleration
3. Current implementation for ATI adapters
4. Current implementation of generic VGA support for non-ATI adapters
5. xorg.conf specifications
5.1 Driver ``ati''
5.2 ChipSet ``name''
5.3 ChipID & ChipRev specifications
5.4 IOBase
5.5 BusID
5.6 Clocks
5.6.1 Clocks for supported programmable clock generators
5.6.2 Clocks for unsupported programmable clock generators
5.6.3 Clocks for fixed clock generators on ATI adapters
5.6.4 Clocks for non-ATI adapters
5.7 Option ``nopanel_display''
5.8 Option ``crt_display''
5.9 Option ``noaccel''
5.10 Option ``nolinear''
5.11 Option ``HWCursor'' and Option ``SWCursor''
5.12 Option ``SilkenMouse''
5.13 Option ``shadowfb''
5.14 Option ``dpms''
5.15 Option ``backingstore''
5.16 MemBase address
5.17 Option ``ReferenceClock'' ``frequency''
5.18 ClockChip ``name''
6. Video modes
7. Known problems and limitations
8. Reporting problems
9. Driver history
10. Driver versions
______________________________________________________________________
1. Statement of intent
Generally speaking, the driver is intended for all ATI video adapters
based on the Mach64 series or older chipsets, providing maximum video
function within hardware limitations. The driver is also intended to
optionally provide the same level of support for generic VGA or 8514/A
adapters. The newer Rage 128 and Radeon chips are not yet supported
by this driver. Rage 128's and Radeon's are, however, supported by
separate drivers, and owners of such adapters should consult the
documentation provided with these drivers. This driver will also
invoke the appropriate driver if it finds Rage 128 and/or Radeon
adapter(s) in the system. This driver is still being actively
developed, meaning that it currently does not yet fully meet these
goals.
The driver will provide
o accelerated support if an ATI accelerator is detected and the user
has not requested that this support be disabled; otherwise
o accelerated support if a non-ATI 8514/A-capable adapter is detected
and the user has requested such support; otherwise
o unaccelerated SuperVGA support if an ATI VGA-capable adapter is
detected; otherwise
o generic VGA support if a non-ATI VGA-capable adapter is detected
and the user has requested such support.
Thus, the level of support provided not only depends on what the
driver detects in the system, but also, on what the user specifies
in the xorg.conf file. See the ``xorg.conf specifications''
section below for details.
If none of the above conditions are met, the ATI driver will
essentially disable itself to allow other drivers to examine the
system.
2. A note on acceleration
The meaning of ``acceleration'', as used in this document, needs to be
clarified. Two of the many components in an accelerator are the CRT
controller (CRTC) and the Draw Engine. This is in addition to another
CRTC that, generally, is also present in the system (often in the same
chip) and typically provides EGA, VGA or SuperVGA functionality.
A CRTC is the component of a graphics controller that is responsible
for reading video memory for output to the screen. A Draw Engine is
an accelerator component that can be programmed to manipulate video
memory contents, thus freeing the CPU for other tasks.
When the VGA CRTC is used, all drawing operations into video memory
are the responsibility of the system's CPU, i.e. no Draw Engine can be
used. On the other hand, if the accelerator's CRTC is chosen to drive
the screen, the Draw Engine can also be used for drawing operations,
although the CPU can still be used for this purpose if it can access
the accelerator's video memory.
Video acceleration refers to the programming of an accelerator's Draw
Engine to offload drawing operations from the CPU, and thus also
implies the use of the accelerator's CRTC.
3. Current implementation for ATI adapters
The driver currently supports the SuperVGA capabilities of all ATI
adapters except some early Mach8 and Mach32 adapters that do not
provide the required functionality. This support works for
monochrome, 16-colour and 256-colour video modes, if one of the
following ATI graphics controller chips is present:
VGAWonder series: 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6
Mach32 series: 68800-3, 68800-6, 68800AX, 68800LX
Mach64 series: 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX,
264CT, 264ET, 264VT, 264GT (3D Rage), 264VT-B, 264VT3,
264VT4, 264GT-B (3D Rage II), 3D Rage IIc, 3D Rage Pro,
3D Rage LT, 3D Rage LT Pro, 3D Rage XL, 3D Rage XC,
3D Rage Mobility (including the -M and -P variants)
The driver also supports 32K, 64K and 16M-colour modes on the 264xT
and 3D Rage series of adapters using the accelerator CRTC (but not the
VGA CRTC).
The newer Rage 128 and Radeon chips are not yet supported by this
driver. Rage 128's and Radeon's are, however, supported by separate
drivers, and owners of such adapters should consult the documentation
provided with these drivers. This driver will also invoke the
appropriate driver if it finds Rage 128 and/or Radeon adapter(s) in
the system.
Adapters based on the above chips have been marketed under a rather
large number of names over the years. Among them are:
VGAWonder series: VGAWonder V3, VGAWonder V4, VGAWonder V5, VGAWonder+,
VGAWonder XL, VGAWonder XL24, VGAWonder VLB, VGA Basic,
VGA Basic 16, VGA Edge, VGA Edge 16, VGA Integra,
VGA Charger, VGAStereo F/X, VGA 640, VGA 800, VGA 1024,
VGA 1024D, VGA 1024 XL, VGA 1024 DXL, VGA 1024 VLB
Mach8 series: Graphics Ultra, Graphics Vantage, VGAWonder GT
(None of the 8514/Ultra and 8514 Vantage series is
supported at this time)
Mach32 series: Graphics Ultra+, Graphics Ultra Pro, Graphics Wonder,
Graphics Ultra XLR, Graphics Ultra AXO, VLB mach32-D,
PCI mach32-D, ISA mach32
Mach64 series: Graphics Xpression, Graphics Pro Turbo, WinBoost,
WinTurbo, Graphics Pro Turbo 1600, Video Xpression,
3D Xpression, Video Xpression+, 3D Xpression+,
3D Charger, Video Charger, WinCharger, All-In-Wonder,
All-In-Wonder PRO, 3D Pro Turbo, XPERT@Play,
XPERT@Play 98, XPERT@Work, XPERT 98, XPERT LCD,
XPERT XL
Also, a number of mainboards, laptops and notebooks harbour a Mach32
or Mach64 controller.
VGAWonder, Mach8 and Mach32 ISA adapters are available with or without
a mouse.
These adapters are available with a variety of clock generators and
RAMDACs. The 264xT and 3D Rage series of chips are integrated
controllers, meaning that they include a programmable clock generator
and a RAMDAC.
For all but Mach64 adapters, this driver still does not provide
support for accelerated drawing to the screen. This means that all
drawing is done by the CPU, rather than by any accelerator present in
the system. This can make opaque moves, for example, quite ``jerky''.
Also, given that IBM 8514/A and ATI Mach8 do not allow CPU access to
their frame buffer, the driver will currently ignore these
accelerators. Most Mach32 adapters provide both accelerated function
and SuperVGA functionality, but the driver currently only uses the
VGA.
The driver does however support the accelerator CRTC present in all
ATI Mach64 adapters. For 256-colour, and higher depth modes, this
support will be used by default, although an xorg.conf option can be
specified to use the SuperVGA CRTC instead. A linear video memory
aperture is also available in 256-colour and higher depth modes and
enabled by default if a 264xT or 3D Rage controller is detected or, on
88800 controllers, if the accelerator CRTC is used. xorg.conf options
are available to disable this aperture, or (for non-PCI adapters)
enable it or move it to some other address.
By default, the driver provides some acceleration for Mach64 if the
accelerator CRTC is used, and modes whose colour depth greater than or
equal to 8 are to be used. This support is as yet incomplete and can
be disabled entirely with an xorg.conf option.
On non-Intel platforms, the driver can, currently, only support PCI
Mach64 adapters.
4. Current implementation of generic VGA support for non-ATI adapters
Support for generic VGA with non-ATI adapters is also implemented, but
has undergone only limited testing. The driver will intentionally
disallow the use of this support with ATI adapters. This support must
be explicitly requested through an xorg.conf ChipSet specification.
This prevents the current VGA generic driver from being disabled.
This driver's generic VGA support is intended as an extension of that
provided by the current generic driver. Specifically, within the
architectural bounds defined by IBM's VGA standard, this driver will
allow the use of any 256-colour mode, and any dot clock frequencies
both of which allow for many more mode possibilities.
The driver will enforce the following limitations derived from IBM's
original VGA implementation:
o There can only be a set of four (non-programmable) clocks to choose
from.
o Video memory is limited to 256kB in monochrome and 16-colour modes.
o Video memory is limited to 64kB in 256-colour modes.
o Interlaced modes are not available.
o Colour depths higher than 8 are not available.
5. xorg.conf specifications
The driver recognises a number of xorg.conf options. In general, all
such options should be specified in a ``Device'' section, and affect
only that ``Device'' section.
Those options that affect how the driver associates adapters with
``Device'' sections are described first. The driver will ignore (with
a message) a ``Device'' section if the section cannot be associated
with exactly one adapter in the system. Similarly, the driver will
ignore, or disable, (with a message) any adapter that cannot be
associated with exactly one ``Device'' section. Thus, these options
will be required in those uncommon cases where such unique
associations cannot automatically be made by the driver.
Other options affect the driver's operation once an adapter has been
assigned to the ``Device'' section which contains them.
5.1. Driver ``ati''
The use of this specification is highly recommended if the ``Device''
section is to be recognised by the driver. In fact, it is almost (but
not quite) mandatory, particularly when using the loader server as it
indicates what driver is to be loaded and associated with the
``Device'' section.
5.2. ChipSet ``name''
The default ChipSet name for this driver is ``ati''. In this case,
any ATI adapter can be associated with the ``Device'' section. If an
ATI accelerator is detected and the driver supports it, the
accelerator's CRTC will be used to drive the screen. Otherwise, the
driver will programme the adapter's SuperVGA CRTC.
If ``ativga'' is specified instead, the driver will ignore any ATI
accelerator it detects, but otherwise operate as if ``ati'' had been
specified. This specification ensures the VGA CRTC is used.
A ChipSet name of ``ibmvga'' causes any VGA-capable adapter in the
system to be associated with the ``Device'' section. It enables the
driver's generic VGA support, but only for non-ATI adapters. If an
ATI adapter is associated with the ``Device'' section, the driver will
operate as if ``ativga'' had been specified instead.
A ChipSet name of ``vgawonder'' is equivalent to ``ativga'', except
that only VGAWonder-capable adapters can be assigned to the ``Device''
section. This specifically excludes the newer integrated Mach64
controllers.
In some PCI or AGP systems, the driver will not, by default, probe for
non-PCI Mach32's or Mach64's. This is because, before doing any such
probe, the driver attempts to determine if the probe can cause a
lockup. If the driver has enough information to determine that a
lockup would occur, it will skip the probe. In some situations, this
determination cannot be accurate, and the driver will err on the side
of caution, skipping the probe. Specifying a ChipSet name of
``mach32'' or ``mach64'', as appropriate, will force the driver to
probe for the non-PCI adapter. These ChipSet names should, therefore,
only be used when there is in fact such an adapter in the system.
They are otherwise equivalent to ``ati''.
On non-Intel platforms, only ``ati'' and ``mach64'' ChipSet values are
operative.
5.3. ChipID & ChipRev specifications
These specifications will cause the driver to associate the ``Device''
section only with an adapter having the same attributes, or an adapter
whose PCI device ID the driver does not recognise. In the second
case, these options cause the driver to treat the adapter as if it was
one with the specified PCI device ID or revision. ChipID can only be
used with Mach32 or Mach64 adapters, and, thus, specifically excludes
any other adapter from matching the ``Device'' section. ChipRev is
meaningful only with Mach64 adapters, and then only if ChipID is also
specified in the same ``Device'' section.
5.4. IOBase
This option limits the adapters that can be associated with the
``Device'' section to the one with the specified I/O base. This
option only applies to Mach64 adapters and specifically excludes other
adapters.
5.5. BusID
This option limits the adapters that can be associated with the
``Device'' section to the one with the specified PCI Bus ID. This
specification excludes non-PCI adapters.
5.6. Clocks
For the purpose of specifying a clock line in your xorg.conf, one of
four different situations can occur, as follows.
Those configuring the driver's generic VGA support for a non-ATI
adapter, can skip ahead to the ``Clocks for non-ATI adapters'' section
below. Those not trying to configure the driver for a Mach64 adapter,
can skip ahead to the ``Clocks for fixed clock generators on ATI
adapters'' section below.
The very earliest Mach64 adapters use fixed (i.e. non-programmable)
clock generators. Very few of these (mostly prototypes) are known to
exist, but if you have one of these, you can also skip ahead to the
``Clocks for fixed clock generators on ATI adapters'' section below.
The two cases that are left deal with programmable clock generators,
which are used on the great majority of Mach64 adapters.
If you are uncertain which situation applies to your adapter, you can
run a clock probe with the command ``X -probeonly''.
5.6.1. Clocks for supported programmable clock generators
At bootup, video BIOS initialisation programmes an initial set of
frequencies. Two of these are reserved to allow the setting of modes
that do not use a frequency from this initial set. One of these
reserved slots is used by the BIOS mode set routine, the other by the
particular driver used (e.g. MS-Windows, AutoCAD, X, etc.). The clock
numbers reserved in this way are dependent on the particular clock
generator used by the adapter.
The driver currently supports all programmable clock generators known
to exist on Mach64 adapters. In this case, the driver will completely
ignore any xorg.conf clock specification, and programme the clock
generator as needed by the modes used during the X session.
5.6.2. Clocks for unsupported programmable clock generators
This case is unlikely to occur, but is documented for the sake of
completeness.
In this situation, the driver will probe the adapter for clock
frequencies unless xorg.conf clocks are already specified. In either
case, the driver will then attempt to normalise the clocks to one of
the following specifications:
BIOS setting 1:
Clocks 0.000 110.000 126.000 135.000 50.350 56.640 63.000 72.000
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
0.000 55.000 63.000 67.500 25.180 28.320 31.500 36.000
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000
BIOS setting 2:
Clocks 0.000 110.000 126.000 135.000 25.180 28.320 31.500 36.000
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
0.000 55.000 63.000 67.500 12.590 14.160 15.750 18.000
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000
BIOS setting 3:
Clocks 0.000 0.000 0.000 0.000 25.180 28.320 0.000 0.000
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
0.000 0.000 0.000 0.000 12.590 14.160 0.000 0.000
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
If the driver matches the clocks to the third setting above, function-
ality will be extremely limited (assuming the driver works at all).
5.6.3. Clocks for fixed clock generators on ATI adapters
This section applies to all VGAWonder and Mach32 adapters, and to
early Mach64 prototypes.
One of the following clocks specifications (or an initial subset
thereof) can be used depending on what the adapter uses to generate
dot clocks:
Crystals (VGA Wonder V3 and V4 adapters only):
Clocks 50.000 56.644 0.000 44.900 44.900 50.000 0.000 36.000
25.000 28.322 0.000 22.450 22.450 25.000 0.000 18.000
16.667 18.881 0.000 14.967 14.967 16.667 0.000 12.000
12.500 14.161 0.000 11.225 11.225 12.500 0.000 9.000
ATI 18810 clock generator:
Clocks 30.240 32.000 37.500 39.000 42.954 48.771 0.000 36.000
40.000 0.000 75.000 65.000 50.350 56.640 0.000 44.900
15.120 16.000 18.750 19.500 21.477 24.386 0.000 18.000
20.000 0.000 37.500 32.500 25.175 28.320 0.000 22.450
10.080 10.667 12.500 13.000 14.318 16.257 0.000 12.000
13.333 0.000 25.000 21.667 16.783 18.880 0.000 14.967
7.560 8.000 9.375 9.750 10.739 12.193 0.000 9.000
10.000 0.000 18.750 16.250 12.586 14.160 0.000 11.225
ATI 18811-0 and ATI 18812-0 clock generators:
Clocks 30.240 32.000 110.000 80.000 42.954 48.771 92.400 36.000
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
15.120 16.000 55.000 40.000 21.477 24.386 46.200 18.000
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
10.080 10.667 36.667 26.667 14.318 16.257 30.800 12.000
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
7.560 8.000 27.500 20.000 10.739 12.193 23.100 9.000
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225
ATI 18811-1 and ATI 18811-2 clock generators:
Clocks 135.000 32.000 110.000 80.000 100.000 126.000 92.400 36.000
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
67.500 16.000 55.000 40.000 50.000 63.000 46.200 18.000
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
45.000 10.667 36.667 26.667 33.333 42.000 30.800 12.000
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
33.750 8.000 27.500 20.000 25.000 31.500 23.100 9.000
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225
ICS 2494-AM clock generators (found on some Dell motherboards):
Clocks 75.000 77.500 80.000 90.000 25.175 28.322 31.500 36.000
100.000 110.000 126.000 135.000 40.000 44.900 50.000 65.000
37.500 38.750 40.000 45.000 12.588 14.161 15.750 18.000
50.000 55.000 63.000 67.500 20.000 22.450 25.000 32.500
25.000 25.833 26.667 30.000 8.392 9.441 10.500 12.000
33.333 36.667 42.000 45.000 13.333 14.767 16.667 21.667
18.750 19.375 20.000 22.500 6.294 7.081 7.875 9.000
25.000 27.500 31.500 33.750 10.000 11.225 12.500 16.250
VGAWonder VLB, VGA 1024 VLB, Mach32 and Mach64 owners should only
specify up to the first 32 frequencies. Any more will be ignored.
Other clock generators that have been used on ATI adapters (which can
all be said to be clones of one of the above) might generate non-zero
frequencies for those that are zero above, or vice-versa.
The order of the clocks is very important, although the driver will
reorder the specified clocks if it deems it appropriate to do so.
Mach32 and Mach64 owners should note that this order is different than
what they would use for previous accelerated servers.
5.6.4. Clocks for non-ATI adapters
If no clocks are specified in the xorg.conf, the driver will probe for
four clocks, the second of which will be assumed to be 28.322 MHz.
The first clock will typically be 25.175 MHz, but there are
exceptions. You can include up to four clock frequencies in your
xorg.conf to specify the actual values used by the adapter. Any more
will be ignored.
5.7. Option ``nopanel_display''
This specification is only effective when the driver detects that the
adapter's BIOS has initialised both the digital flat panel and CRT
interfaces. In such a situation, the driver will normally drive both
the panel and the CRT. This specification causes the driver to
disable the digital flat panel and display the screen image on the CRT
instead, which could potentially allow for larger physical resolutions
than the panel can handle.
5.8. Option ``crt_display''
This specification is only effective when the driver detects that the
adapter's BIOS has initialised the digital flat panel interface, but
has disabled the CRT interface. In such a situation the driver will
normally drive only the panel. This specification causes the driver
to instead display the same image on both the panel and the CRT.
5.9. Option ``noaccel''
By default, the driver will accelerate draw operations if a Mach64
CRTC is used to drive the display. As implemented in this driver,
acceleration does not require a linear video memory aperture. This
option disables this acceleration.
5.10. Option ``nolinear''
By default, the driver will enable a linear video memory aperture for
256-colour and higher depth modes if it is also using a Mach64
accelerator CRTC or an integrated Mach64 graphics chip. This option
disables this linear aperture.
On non-Intel platforms, the driver requires a linear aperture and, so,
this option is ignored.
5.11. Option ``HWCursor'' and Option ``SWCursor''
Option ``HWCursor'', which is the default, specifies that hardware
facilities are to be used to paint the mouse pointer on the screen.
Option ``SWCursor'' specifies that the mouse pointer is to be drawn by
software, which is much slower. If both options are specified, option
``SWCursor'' prevails. Currently, these options are only acted upon
for 256-colour or higher depth modes, if a Mach64 accelerator CRTC, or
a Mach64 integrated controller is being used. In all other
situations, a software cursor will be used, regardless of what these
options specify.
5.12. Option ``SilkenMouse''
This option is only acted upon when a hardware cursor is being used.
It specifies that the cursor's position on the screen is to be updated
as quickly as possible when the mouse is moved. This is the default
behaviour. If this option is negated, the cursor may lag the mouse
when the X server is very busy.
5.13. Option ``shadowfb''
If this option is enabled, the driver will cause the CPU to do each
drawing operation first into a shadow frame buffer in system virtual
memory and then copy the result into video memory. If this option is
not active, the CPU will draw directly into video memory. Enabling
this option is beneficial for those systems where reading from video
memory is, on average, slower than the corresponding read/modify/write
operation in system virtual memory. This is normally the case for PCI
or AGP adapters, and, so, this option is enabled by default. For
other bus types, the default behaviour is to disable this option.
Note that, due to various limitations, this option is forcibly
disabled when a linear video memory aperture is not enabled, when the
frame buffer depth is less than 8, or when acceleration is used.
5.14. Option ``dpms''
This option enables the driver's support for VESA's Display Power
Management Specification.
5.15. Option ``backingstore''
This is not specifically a driver option. It is used to enable the
server's support for backing store, a mechanism by which pixel data
for occluded window regions is remembered by the server thereby
alleviating the need to send expose events to X clients when the data
needs to be redisplayed.
5.16. MemBase address
This specification is only effective for non-PCI Mach64 adapters, and
is used to override the CPU address at which the adapter will map its
video memory. Normally, for non-PCI adapters, this address is set by
a DOS install utility provided with the adapter. The MemBase option
can also be used to enable the linear aperture in those cases where
ATI's utility was not, or can not be, used.
For PCI and AGP adapters, this address is determined at system bootup
according to the PCI Plug'n'Play specification which arbitrates the
resource requirements of most devices in the system. This means the
driver can not easily change the linear aperture address.
5.17. Option ``ReferenceClock'' ``frequency''
This option is only applicable to non-Intel platforms, where an
adapter BIOS is not available to the driver. The option specifies the
reference frequency used by the adapter's clock generator. The
default is 14.318 MHz, and other typical values are 28.636, or 29.5
MHz.
5.18. ClockChip ``name''
This option is only applicable to non-Intel platforms, where an
adapter BIOS is not available to the driver, and the driver cannot
reliably determine whether the clock generator the adapter uses is a
variant of an ATI 18818 (a.k.a. ICS 2595) or an unsupported clock
generator. The only values that are acted upon are ``ATI 18818-0'' or
``ATI 18818-1''. From this specification, the driver derives a
reference divider of 43 or 46 (respectively) for use in clock
programming calculations. The driver's default behaviour, in this
case, is to assume an unsupported clock generator, which means it will
treat it as a fixed-frequency clock generator, as described under the
heading ``Clocks for unsupported programmable clock generators''
above.
6. Video modes
Mode timings can be derived from the information in X's doc
subdirectory. However, it is no longer required to specify such
timings in an xorg.conf's ``Monitor'' section(s), if only standard
mode timings are to be used. The server automatically inserts VESA
standard mode timings in every ``Monitor'' section, and these modes
will be checked first for mode constraints (monitor sync tolerances,
video memory size, etc.).
Furthermore, it is also no longer required to specify mode names in
``Display'' subsections. Should no mode names be specified (or those
specified do not yield a usable mode), the server will automatically
select as a default resolution the largest usable mode, whether or not
the chosen mode is specified in the corresponding ``Monitor'' section.
For a digital flat panel, any sync tolerances should be removed from
the corresponding ``Monitor'' section. The driver will automatically
calculate these from the mode that is active on server entry. The
driver also inserts timings for a mode called "Native panel mode" that
represents the panel's native resolution.
7. Known problems and limitations
There are several known problems or limitations related to the ATI
driver. They include:
o When using a Mach64's accelerator CRTC, the virtual resolution must
be less than 8192 pixels wide. The VGA CRTC further limits the
virtual resolution width to less than 4096 pixels, or to less than
2048 pixels for adapters based on 18800-x's (with 256kB of memory)
and on Mach64 integrated controllers. These are hardware limits
that cannot be circumvented.
o Virtual resolutions requiring more than 1MB of video memory (256kB
in the monochrome case) are not supported by the VGA CRTC on
88800GX and 88800CX adapters. This is a hardware limit that cannot
be circumvented.
o Due to hardware limitations, doublescanned modes are not supported
by the accelerator CRTC in 88800GX, 88800CX, 264CT and 264ET
adapters.
o The ``VScan'' modeline parameter is only supported when using the
VGA CRTC.
o Interlaced modes are not supported on 18800-x and 28800-x adapters
when using a virtual resolution that is 2048 pixels or wider. When
using a 18800-x with 256kB of video memory in 256-colour modes,
this limit is reduced to 1024. This is yet another hardware
limitation that cannot be circumvented.
o Video memory banking does not work in monochrome and 16-colour
modes on 18800-x adapters. This appears to be another hardware
limit, but this conclusion cannot be confirmed at this time. The
driver's default behaviour in this case is to limit video memory to
256kB.
o Video memory corruption can still occur during mode switches on
18800-x adapters. Symptoms of this problem include garbled fonts
on return to text mode, and various effects (snow, dashed lines,
etc) on initial entry into a graphics mode. In the first case, the
workaround is to use some other means of restoring the text font.
On Linux, this can be accomplished with the kbd or svgalib
packages. In the second case, xrefresh(1) will usually clean up
the image. No complete solution to this problem is currently
known. It appears this corruption occurs due to either video
memory bandwidth or RAMDAC limitations, and so the driver will
limit mode clocks to 40MHz.
o There is some controversy over what the maximum allowed clock
frequency should be on 264xT and 3D Rage adapters. For now, clocks
will, by default, be limited to 80MHz, 135MHz, 170MHz, 200MHz or
230MHz, depending on the specific controller. This limit can only
be increased (up to a driver-calculated absolute maximum) through
the DACSpeed specification in xorg.conf. Be aware however that
doing so is untested and might damage the adapter.
o Except as in the previous items, clocks are limited to 80MHz on
most adapters, although many are capable of higher frequencies.
This will eventually be fixed in a future release.
o The use of a laptop's hot-keys to switch displays while this driver
is active can cause lockups and/or other woes, and is therefore not
recommended. It is not currently possible to solve this problem.
o In situations where the driver is to simultaneously display on both
a panel and a CRT, the same image will be seen on both. In
particular, this means the CRT must be able to synchronise with the
timings of the panel's native resolution. This is quite evident
when the panel has ``odd-ball'' dimensions, such as 1400x1050, a
resolution not commonly possible on CRTs or projection equipment.
Also, the display of independent images on the panel and CRT is not
currently implemented, and might never be, pending resolution of
the previous item.
Support for the following will be added in a future release:
o Mach32's accelerator CRTC. This support is the first step towards
accelerated support for Mach32's, Mach8's, 8514/A's and other
clones.
o Colour depth greater than 8 on non-integrated controllers, where
permitted by the hardware.
o Mach32, Mach8 and 8514/A Draw Engines.
o Hardware cursors where implemented by hardware. This has already
been done for Mach64 integrated controllers.
o TVOut, i.e. the ability to use a television screen as a monitor.
o Motion Video, i.e. displaying an asynchronous data stream (TV
signal, DVD, etc.) in a window or full-screen.
o 3D operations.
8. Reporting problems
If you are experiencing problems that are not already recorded in this
document, first ensure that you have the latest current release of
this driver and the Xorg X server. Check the server's log (usually
found in /var/log/Xorg.0.log) and ftp://ftp.freedesktop.org/pub/Xorg
if you are uncertain.
Secondly, please check Xorg's doc directory for additional
information.
Thirdly, a scan through the comp.windows.x.i386unix and
comp.os.linux.x newsgroups, the xorg mailing list archives at
http://lists.freedesktop.org/mailman/listinfo/xorg, and the Xorg bug
database at https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
can also prove useful in resolving problems.
If you are still experiencing problems, you can send non-HTMLised e-
mail to <mailto:xorg@lists.fredesktop.org>. Please be as specific as
possible when describing the problem(s), and include an unedited copy
of the server's log and the xorg.conf file used.
9. Driver history
The complete history of the driver is rather cloudy. The following is
more than likely to be incomplete and inaccurate.
Apparently, Per Lindqvist first got a driver working with an early ATI
adapter under X386 1.1a. This original driver might have actually
been based on a non-functional ATI driver written by Thomas Roell
(currently of Xi Graphics).
Then Doug Evans added support for the ATI VGA Wonder XL, trying in the
process to make the driver work with all other ATI adapters available
at the time.
Rik Faith obtained the X11R4 driver from Doug Evans in the summer of
1992 and ported the code to the X386 part of X11R5. This subsequently
became part of XFree86.
Marc Aurele La France took over development and maintenance of the
driver in the fall of 1993 after Rik got rid of his VGA Wonder
adapter.
10. Driver versions
Due to the introduction of loadable drivers in XFree86 4.0, it has
become necessary to track driver versions separately. Driver releases
use the following version numbering scheme.
Version 1 of this driver is the one I inherited from Rik Faith. This
is the version found in XFree86 2.0 and 2.1.
Version 2 is my first rewrite of this code which only ended up being a
partially unsuccessful attempt at generalising the driver for all VGA
Wonder, Mach32, and early Mach64 adapters. Various releases of this
version of the driver can be found in XFree86 2.1.1, 3.1, 3.1.1 and
3.1.2.
Version 3 represents my second rewrite (although a rather lame one as
rewrites go). Into version 3, I introduced clock programming for
Mach64 adapters and merged in the old ati_test debugging tool. This
is the version found in XFree86 3.2, 3.3 and 3.3.1.
Version 4 is a rather major restructuring of version 3, which became
larger than I could comfortably handle in one source file. This is
the version found in XFree86 3.3.2, 3.3.3, 3.3.3.1, 3.3.3.2, 3.3.4,
3.3.5 and 3.3.6.
Version 5 is an almost complete restructuring of version 4 to fit in
the newer driver API of XFree86 4.0 and later.
The introduction of version 6 is a first swipe at porting the driver
to non-Intel architectures.
All questions regarding this software should be directed at the
Xorg mailing list:
@ -23,3 +850,4 @@ For more information on the git code manager, see:
http://wiki.x.org/wiki/GitPage

View File

@ -1,828 +0,0 @@
$Id: README.ati,v 1.1.1.1 2008/07/12 15:43:10 oga Exp $ Based on
XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v
3.42 2003/01/20 03:43:07 dawes Exp ATI Adapters README file
Marc Aurele La France
2002 February 12
This is the README for the XAA ATI driver included in this release.
______________________________________________________________________
Table of Contents
1. Statement of intent
2. A note on acceleration
3. Current implementation for ATI adapters
4. Current implementation of generic VGA support for non-ATI adapters
5. xorg.conf specifications
5.1 Driver ``ati''
5.2 ChipSet ``name''
5.3 ChipID & ChipRev specifications
5.4 IOBase
5.5 BusID
5.6 Clocks
5.6.1 Clocks for supported programmable clock generators
5.6.2 Clocks for unsupported programmable clock generators
5.6.3 Clocks for fixed clock generators on ATI adapters
5.6.4 Clocks for non-ATI adapters
5.7 Option ``nopanel_display''
5.8 Option ``crt_display''
5.9 Option ``noaccel''
5.10 Option ``nolinear''
5.11 Option ``HWCursor'' and Option ``SWCursor''
5.12 Option ``SilkenMouse''
5.13 Option ``shadowfb''
5.14 Option ``dpms''
5.15 Option ``backingstore''
5.16 MemBase address
5.17 Option ``ReferenceClock'' ``frequency''
5.18 ClockChip ``name''
6. Video modes
7. Known problems and limitations
8. Reporting problems
9. Driver history
10. Driver versions
______________________________________________________________________
1. Statement of intent
Generally speaking, the driver is intended for all ATI video adapters,
providing maximum video function within hardware limitations. The
driver is also intended to optionally provide the same level of
support for generic VGA or 8514/A adapters. This driver is still
being actively developed, meaning that it currently does not yet fully
meet these goals.
The driver will provide
+o accelerated support if an ATI accelerator is detected and the user
has not requested that this support be disabled; otherwise
+o accelerated support if a non-ATI 8514/A-capable adapter is detected
and the user has requested such support; otherwise
+o unaccelerated SuperVGA support if an ATI VGA-capable adapter is
detected; otherwise
+o generic VGA support if a non-ATI VGA-capable adapter is detected
and the user has requested such support.
Thus, the level of support provided not only depends on what the
driver detects in the system, but also, on what the user specifies
in the xorg.conf file. See the ``xorg.conf specifications''
section below for details.
If none of the above conditions are met, the ATI driver will
essentially disable itself to allow other drivers to examine the
system.
Note that I am currently considering removing the driver's support for
generic VGA. If you have any concerns about this, please contact me
at <tsi@xfree86.org>.
2. A note on acceleration
The meaning of ``acceleration'', as used in this document, needs to be
clarified. Two of the many components in an accelerator are the CRT
controller (CRTC) and the Draw Engine. This is in addition to another
CRTC that, generally, is also present in the system (often in the same
chip) and typically provides EGA, VGA or SuperVGA functionality.
A CRTC is the component of a graphics controller that is responsible
for reading video memory for output to the screen. A Draw Engine is
an accelerator component that can be programmed to manipulate video
memory contents, thus freeing the CPU for other tasks.
When the VGA CRTC is used, all drawing operations into video memory
are the responsibility of the system's CPU, i.e. no Draw Engine can be
used. On the other hand, if the accelerator's CRTC is chosen to drive
the screen, the Draw Engine can also be used for drawing operations,
although the CPU can still be used for this purpose if it can access
the accelerator's video memory.
Video acceleration refers to the programming of an accelerator's Draw
Engine to offload drawing operations from the CPU, and thus also
implies the use of the accelerator's CRTC.
3. Current implementation for ATI adapters
The driver currently supports the SuperVGA capabilities of all ATI
adapters except some early Mach8 and Mach32 adapters that do not
provide the required functionality. This support works for
monochrome, 16-colour and 256-colour video modes, if one of the
following ATI graphics controller chips is present:
VGAWonder series: 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6
Mach32 series: 68800-3, 68800-6, 68800AX, 68800LX
Mach64 series: 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX,
264CT, 264ET, 264VT, 264GT (3D Rage), 264VT-B, 264VT3,
264VT4, 264GT-B (3D Rage II), 3D Rage IIc, 3D Rage Pro,
3D Rage LT, 3D Rage LT Pro, 3D Rage XL, 3D Rage XC,
3D Rage Mobility (including the -M and -P variants)
The driver also supports 32K, 64K and 16M-colour modes on the 264xT
and 3D Rage series of adapters using the accelerator CRTC (but not the
VGA CRTC).
The newer Rage 128 and Radeon chips are not yet supported by this
driver. Rage 128's and Radeon's are, however, supported by separate
drivers, and owners of such adapters should consult the documentation
provided with these drivers. This driver will also invoke the
appropriate driver if it finds Rage 128 and/or Radeon adapter(s) in
the system.
Adapters based on the above chips have been marketed under a rather
large number of names over the years. Among them are:
VGAWonder series: VGAWonder V3, VGAWonder V4, VGAWonder V5, VGAWonder+,
VGAWonder XL, VGAWonder XL24, VGAWonder VLB, VGA Basic,
VGA Basic 16, VGA Edge, VGA Edge 16, VGA Integra,
VGA Charger, VGAStereo F/X, VGA 640, VGA 800, VGA 1024,
VGA 1024D, VGA 1024 XL, VGA 1024 DXL, VGA 1024 VLB
Mach8 series: Graphics Ultra, Graphics Vantage, VGAWonder GT
(None of the 8514/Ultra and 8514 Vantage series is
supported at this time)
Mach32 series: Graphics Ultra+, Graphics Ultra Pro, Graphics Wonder,
Graphics Ultra XLR, Graphics Ultra AXO, VLB mach32-D,
PCI mach32-D, ISA mach32
Mach64 series: Graphics Xpression, Graphics Pro Turbo, WinBoost,
WinTurbo, Graphics Pro Turbo 1600, Video Xpression,
3D Xpression, Video Xpression+, 3D Xpression+,
3D Charger, Video Charger, WinCharger, All-In-Wonder,
All-In-Wonder PRO, 3D Pro Turbo, XPERT@Play,
XPERT@Play 98, XPERT@Work, XPERT 98, XPERT LCD,
XPERT XL
Also, a number of mainboards, laptops and notebooks harbour a Mach32
or Mach64 controller.
VGAWonder, Mach8 and Mach32 ISA adapters are available with or without
a mouse.
These adapters are available with a variety of clock generators and
RAMDACs. The 264xT and 3D Rage series of chips are integrated
controllers, meaning that they include a programmable clock generator
and a RAMDAC.
For all but Mach64 adapters, this driver still does not provide
support for accelerated drawing to the screen. This means that all
drawing is done by the CPU, rather than by any accelerator present in
the system. This can make opaque moves, for example, quite ``jerky''.
Also, given that IBM 8514/A and ATI Mach8 do not allow CPU access to
their frame buffer, the driver will currently ignore these
accelerators. Most Mach32 adapters provide both accelerated function
and SuperVGA functionality, but the driver currently only uses the
VGA.
The driver does however support the accelerator CRTC present in all
ATI Mach64 adapters. For 256-colour, and higher depth modes, this
support will be used by default, although an xorg.conf option can be
specified to use the SuperVGA CRTC instead. A linear video memory
aperture is also available in 256-colour and higher depth modes and
enabled by default if a 264xT or 3D Rage controller is detected or, on
88800 controllers, if the accelerator CRTC is used. xorg.conf options
are available to disable this aperture, or (for non-PCI adapters)
enable it or move it to some other address.
By default, the driver provides some acceleration for Mach64 if the
accelerator CRTC is used, and modes whose colour depth greater than or
equal to 8 are to be used. This support is as yet incomplete and can
be disabled entirely with an xorg.conf option.
On non-Intel platforms, the driver can, currently, only support PCI
Mach64 adapters.
4. Current implementation of generic VGA support for non-ATI adapters
Support for generic VGA with non-ATI adapters is also implemented, but
has undergone only limited testing. The driver will intentionally
disallow the use of this support with ATI adapters. This support must
be explicitly requested through an xorg.conf ChipSet specification.
This prevents the current VGA generic driver from being disabled.
This driver's generic VGA support is intended as an extension of that
provided by the current generic driver. Specifically, within the
architectural bounds defined by IBM's VGA standard, this driver will
allow the use of any 256-colour mode, and any dot clock frequencies
both of which allow for many more mode possibilities.
The driver will enforce the following limitations derived from IBM's
original VGA implementation:
+o There can only be a set of four (non-programmable) clocks to choose
from.
+o Video memory is limited to 256kB in monochrome and 16-colour modes.
+o Video memory is limited to 64kB in 256-colour modes.
+o Interlaced modes are not available.
+o Colour depths higher than 8 are not available.
5. xorg.conf specifications
The driver recognises a number of xorg.conf options. In general, all
such options should be specified in a ``Device'' section, and affect
only that ``Device'' section.
Those options that affect how the driver associates adapters with
``Device'' sections are described first. The driver will ignore (with
a message) a ``Device'' section if the section cannot be associated
with exactly one adapter in the system. Similarly, the driver will
ignore, or disable, (with a message) any adapter that cannot be
associated with exactly one ``Device'' section. Thus, these options
will be required in those uncommon cases where such unique
associations cannot automatically be made by the driver.
Other options affect the driver's operation once an adapter has been
assigned to the ``Device'' section which contains them.
5.1. Driver ``ati''
The use of this specification is highly recommended if the ``Device''
section is to be recognised by the driver. In fact, it is almost (but
not quite) mandatory, particularly when using the loader server as it
indicates what driver is to be loaded and associated with the
``Device'' section.
5.2. ChipSet ``name''
The default ChipSet name for this driver is ``ati''. In this case,
any ATI adapter can be associated with the ``Device'' section. If an
ATI accelerator is detected and the driver supports it, the
accelerator's CRTC will be used to drive the screen. Otherwise, the
driver will programme the adapter's SuperVGA CRTC.
If ``ativga'' is specified instead, the driver will ignore any ATI
accelerator it detects, but otherwise operate as if ``ati'' had been
specified. This specification ensures the VGA CRTC is used.
A ChipSet name of ``ibmvga'' causes any VGA-capable adapter in the
system to be associated with the ``Device'' section. It enables the
driver's generic VGA support, but only for non-ATI adapters. If an
ATI adapter is associated with the ``Device'' section, the driver will
operate as if ``ativga'' had been specified instead.
A ChipSet name of ``vgawonder'' is equivalent to ``ativga'', except
that only VGAWonder-capable adapters can be assigned to the ``Device''
section. This specifically excludes the newer integrated Mach64
controllers.
In some PCI or AGP systems, the driver will not, by default, probe for
non-PCI Mach32's or Mach64's. This is because, before doing any such
probe, the driver attempts to determine if the probe can cause a
lockup. If the driver has enough information to determine that a
lockup would occur, it will skip the probe. In some situations, this
determination cannot be accurate, and the driver will err on the side
of caution, skipping the probe. Specifying a ChipSet name of
``mach32'' or ``mach64'', as appropriate, will force the driver to
probe for the non-PCI adapter. These ChipSet names should, therefore,
only be used when there is in fact such an adapter in the system.
They are otherwise equivalent to ``ati''.
On non-Intel platforms, only ``ati'' and ``mach64'' ChipSet values are
operative.
5.3. ChipID & ChipRev specifications
These specifications will cause the driver to associate the ``Device''
section only with an adapter having the same attributes, or an adapter
whose PCI device ID the driver does not recognise. In the second
case, these options cause the driver to treat the adapter as if it was
one with the specified PCI device ID or revision. ChipID can only be
used with Mach32 or Mach64 adapters, and, thus, specifically excludes
any other adapter from matching the ``Device'' section. ChipRev is
meaningful only with Mach64 adapters, and then only if ChipID is also
specified in the same ``Device'' section.
5.4. IOBase
This option limits the adapters that can be associated with the
``Device'' section to the one with the specified I/O base. This
option only applies to Mach64 adapters and specifically excludes other
adapters.
5.5. BusID
This option limits the adapters that can be associated with the
``Device'' section to the one with the specified PCI Bus ID. This
specification excludes non-PCI adapters.
5.6. Clocks
For the purpose of specifying a clock line in your xorg.conf, one of
four different situations can occur, as follows.
Those configuring the driver's generic VGA support for a non-ATI
adapter, can skip ahead to the ``Clocks for non-ATI adapters'' section
below. Those not trying to configure the driver for a Mach64 adapter,
can skip ahead to the ``Clocks for fixed clock generators on ATI
adapters'' section below.
The very earliest Mach64 adapters use fixed (i.e. non-programmable)
clock generators. Very few of these (mostly prototypes) are known to
exist, but if you have one of these, you can also skip ahead to the
``Clocks for fixed clock generators on ATI adapters'' section below.
The two cases that are left deal with programmable clock generators,
which are used on the great majority of Mach64 adapters.
If you are uncertain which situation applies to your adapter, you can
run a clock probe with the command ``X -probeonly''.
5.6.1. Clocks for supported programmable clock generators
At bootup, video BIOS initialisation programmes an initial set of
frequencies. Two of these are reserved to allow the setting of modes
that do not use a frequency from this initial set. One of these
reserved slots is used by the BIOS mode set routine, the other by the
particular driver used (e.g. MS-Windows, AutoCAD, X, etc.). The clock
numbers reserved in this way are dependent on the particular clock
generator used by the adapter.
The driver currently supports all programmable clock generators known
to exist on Mach64 adapters. In this case, the driver will completely
ignore any xorg.conf clock specification, and programme the clock
generator as needed by the modes used during the X session.
5.6.2. Clocks for unsupported programmable clock generators
This case is unlikely to occur, but is documented for the sake of
completeness.
In this situation, the driver will probe the adapter for clock
frequencies unless xorg.conf clocks are already specified. In either
case, the driver will then attempt to normalise the clocks to one of
the following specifications:
BIOS setting 1:
Clocks 0.000 110.000 126.000 135.000 50.350 56.640 63.000 72.000
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
0.000 55.000 63.000 67.500 25.180 28.320 31.500 36.000
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000
BIOS setting 2:
Clocks 0.000 110.000 126.000 135.000 25.180 28.320 31.500 36.000
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
0.000 55.000 63.000 67.500 12.590 14.160 15.750 18.000
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000
BIOS setting 3:
Clocks 0.000 0.000 0.000 0.000 25.180 28.320 0.000 0.000
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
0.000 0.000 0.000 0.000 12.590 14.160 0.000 0.000
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
If the driver matches the clocks to the third setting above, function-
ality will be extremely limited (assuming the driver works at all).
5.6.3. Clocks for fixed clock generators on ATI adapters
This section applies to all VGAWonder and Mach32 adapters, and to
early Mach64 prototypes.
One of the following clocks specifications (or an initial subset
thereof) can be used depending on what the adapter uses to generate
dot clocks:
Crystals (VGA Wonder V3 and V4 adapters only):
Clocks 50.000 56.644 0.000 44.900 44.900 50.000 0.000 36.000
25.000 28.322 0.000 22.450 22.450 25.000 0.000 18.000
16.667 18.881 0.000 14.967 14.967 16.667 0.000 12.000
12.500 14.161 0.000 11.225 11.225 12.500 0.000 9.000
ATI 18810 clock generator:
Clocks 30.240 32.000 37.500 39.000 42.954 48.771 0.000 36.000
40.000 0.000 75.000 65.000 50.350 56.640 0.000 44.900
15.120 16.000 18.750 19.500 21.477 24.386 0.000 18.000
20.000 0.000 37.500 32.500 25.175 28.320 0.000 22.450
10.080 10.667 12.500 13.000 14.318 16.257 0.000 12.000
13.333 0.000 25.000 21.667 16.783 18.880 0.000 14.967
7.560 8.000 9.375 9.750 10.739 12.193 0.000 9.000
10.000 0.000 18.750 16.250 12.586 14.160 0.000 11.225
ATI 18811-0 and ATI 18812-0 clock generators:
Clocks 30.240 32.000 110.000 80.000 42.954 48.771 92.400 36.000
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
15.120 16.000 55.000 40.000 21.477 24.386 46.200 18.000
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
10.080 10.667 36.667 26.667 14.318 16.257 30.800 12.000
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
7.560 8.000 27.500 20.000 10.739 12.193 23.100 9.000
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225
ATI 18811-1 and ATI 18811-2 clock generators:
Clocks 135.000 32.000 110.000 80.000 100.000 126.000 92.400 36.000
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
67.500 16.000 55.000 40.000 50.000 63.000 46.200 18.000
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
45.000 10.667 36.667 26.667 33.333 42.000 30.800 12.000
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
33.750 8.000 27.500 20.000 25.000 31.500 23.100 9.000
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225
ICS 2494-AM clock generators (found on some Dell motherboards):
Clocks 75.000 77.500 80.000 90.000 25.175 28.322 31.500 36.000
100.000 110.000 126.000 135.000 40.000 44.900 50.000 65.000
37.500 38.750 40.000 45.000 12.588 14.161 15.750 18.000
50.000 55.000 63.000 67.500 20.000 22.450 25.000 32.500
25.000 25.833 26.667 30.000 8.392 9.441 10.500 12.000
33.333 36.667 42.000 45.000 13.333 14.767 16.667 21.667
18.750 19.375 20.000 22.500 6.294 7.081 7.875 9.000
25.000 27.500 31.500 33.750 10.000 11.225 12.500 16.250
VGAWonder VLB, VGA 1024 VLB, Mach32 and Mach64 owners should only
specify up to the first 32 frequencies. Any more will be ignored.
Other clock generators that have been used on ATI adapters (which can
all be said to be clones of one of the above) might generate non-zero
frequencies for those that are zero above, or vice-versa.
The order of the clocks is very important, although the driver will
reorder the specified clocks if it deems it appropriate to do so.
Mach32 and Mach64 owners should note that this order is different than
what they would use for previous accelerated servers.
5.6.4. Clocks for non-ATI adapters
If no clocks are specified in the xorg.conf, the driver will probe for
four clocks, the second of which will be assumed to be 28.322 MHz.
The first clock will typically be 25.175 MHz, but there are
exceptions. You can include up to four clock frequencies in your
xorg.conf to specify the actual values used by the adapter. Any more
will be ignored.
5.7. Option ``nopanel_display''
This specification is only effective when the driver detects that the
adapter's BIOS has initialised both the digital flat panel and CRT
interfaces. In such a situation, the driver will normally drive both
the panel and the CRT. This specification causes the driver to
disable the digital flat panel and display the screen image on the CRT
instead, which could potentially allow for larger physical resolutions
than the panel can handle.
5.8. Option ``crt_display''
This specification is only effective when the driver detects that the
adapter's BIOS has initialised the digital flat panel interface, but
has disabled the CRT interface. In such a situation the driver will
normally drive only the panel. This specification causes the driver
to instead display the same image on both the panel and the CRT.
5.9. Option ``noaccel''
By default, the driver will accelerate draw operations if a Mach64
CRTC is used to drive the display. As implemented in this driver,
acceleration does not require a linear video memory aperture. This
option disables this acceleration.
5.10. Option ``nolinear''
By default, the driver will enable a linear video memory aperture for
256-colour and higher depth modes if it is also using a Mach64
accelerator CRTC or an integrated Mach64 graphics chip. This option
disables this linear aperture.
On non-Intel platforms, the driver requires a linear aperture and, so,
this option is ignored.
5.11. Option ``HWCursor'' and Option ``SWCursor''
Option ``HWCursor'', which is the default, specifies that hardware
facilities are to be used to paint the mouse pointer on the screen.
Option ``SWCursor'' specifies that the mouse pointer is to be drawn by
software, which is much slower. If both options are specified, option
``SWCursor'' prevails. Currently, these options are only acted upon
for 256-colour or higher depth modes, if a Mach64 accelerator CRTC, or
a Mach64 integrated controller is being used. In all other
situations, a software cursor will be used, regardless of what these
options specify.
5.12. Option ``SilkenMouse''
This option is only acted upon when a hardware cursor is being used.
It specifies that the cursor's position on the screen is to be updated
as quickly as possible when the mouse is moved. This is the default
behaviour. If this option is negated, the cursor may lag the mouse
when the X server is very busy.
5.13. Option ``shadowfb''
If this option is enabled, the driver will cause the CPU to do each
drawing operation first into a shadow frame buffer in system virtual
memory and then copy the result into video memory. If this option is
not active, the CPU will draw directly into video memory. Enabling
this option is beneficial for those systems where reading from video
memory is, on average, slower than the corresponding read/modify/write
operation in system virtual memory. This is normally the case for PCI
or AGP adapters, and, so, this option is enabled by default. For
other bus types, the default behaviour is to disable this option.
Note that, due to various limitations, this option is forcibly
disabled when a linear video memory aperture is not enabled, when the
frame buffer depth is less than 8, or when acceleration is used.
5.14. Option ``dpms''
This option enables the driver's support for VESA's Display Power
Management Specification.
5.15. Option ``backingstore''
This is not specifically a driver option. It is used to enable the
server's support for backing store, a mechanism by which pixel data
for occluded window regions is remembered by the server thereby
alleviating the need to send expose events to X clients when the data
needs to be redisplayed.
5.16. MemBase address
This specification is only effective for non-PCI Mach64 adapters, and
is used to override the CPU address at which the adapter will map its
video memory. Normally, for non-PCI adapters, this address is set by
a DOS install utility provided with the adapter. The MemBase option
can also be used to enable the linear aperture in those cases where
ATI's utility was not, or can not be, used.
For PCI and AGP adapters, this address is determined at system bootup
according to the PCI Plug'n'Play specification which arbitrates the
resource requirements of most devices in the system. This means the
driver can not easily change the linear aperture address.
5.17. Option ``ReferenceClock'' ``frequency''
This option is only applicable to non-Intel platforms, where an
adapter BIOS is not available to the driver. The option specifies the
reference frequency used by the adapter's clock generator. The
default is 14.318 MHz, and other typical values are 28.636, or 29.5
MHz.
5.18. ClockChip ``name''
This option is only applicable to non-Intel platforms, where an
adapter BIOS is not available to the driver, and the driver cannot
reliably determine whether the clock generator the adapter uses is a
variant of an ATI 18818 (a.k.a. ICS 2595) or an unsupported clock
generator. The only values that are acted upon are ``ATI 18818-0'' or
``ATI 18818-1''. From this specification, the driver derives a
reference divider of 43 or 46 (respectively) for use in clock
programming calculations. The driver's default behaviour, in this
case, is to assume an unsupported clock generator, which means it will
treat it as a fixed-frequency clock generator, as described under the
heading ``Clocks for unsupported programmable clock generators''
above.
6. Video modes
Mode timings can be derived from the information in X's doc
subdirectory. However, it is no longer required to specify such
timings in an xorg.conf's ``Monitor'' section(s), if only standard
mode timings are to be used. The server automatically inserts VESA
standard mode timings in every ``Monitor'' section, and these modes
will be checked first for mode constraints (monitor sync tolerances,
video memory size, etc.).
Furthermore, it is also no longer required to specify mode names in
``Display'' subsections. Should no mode names be specified (or those
specified do not yield a usable mode), the server will automatically
select as a default resolution the largest usable mode, whether or not
the chosen mode is specified in the corresponding ``Monitor'' section.
For a digital flat panel, any sync tolerances should be removed from
the corresponding ``Monitor'' section. The driver will automatically
calculate these from the mode that is active on server entry. The
driver also inserts timings for a mode called "Native panel mode" that
represents the panel's native resolution.
7. Known problems and limitations
There are several known problems or limitations related to the ATI
driver. They include:
+o When using a Mach64's accelerator CRTC, the virtual resolution must
be less than 8192 pixels wide. The VGA CRTC further limits the
virtual resolution width to less than 4096 pixels, or to less than
2048 pixels for adapters based on 18800-x's (with 256kB of memory)
and on Mach64 integrated controllers. These are hardware limits
that cannot be circumvented.
+o Virtual resolutions requiring more than 1MB of video memory (256kB
in the monochrome case) are not supported by the VGA CRTC on
88800GX and 88800CX adapters. This is a hardware limit that cannot
be circumvented.
+o Due to hardware limitations, doublescanned modes are not supported
by the accelerator CRTC in 88800GX, 88800CX, 264CT and 264ET
adapters.
+o The ``VScan'' modeline parameter is only supported when using the
VGA CRTC.
+o Interlaced modes are not supported on 18800-x and 28800-x adapters
when using a virtual resolution that is 2048 pixels or wider. When
using a 18800-x with 256kB of video memory in 256-colour modes,
this limit is reduced to 1024. This is yet another hardware
limitation that cannot be circumvented.
+o Video memory banking does not work in monochrome and 16-colour
modes on 18800-x adapters. This appears to be another hardware
limit, but this conclusion cannot be confirmed at this time. The
driver's default behaviour in this case is to limit video memory to
256kB.
+o Video memory corruption can still occur during mode switches on
18800-x adapters. Symptoms of this problem include garbled fonts
on return to text mode, and various effects (snow, dashed lines,
etc) on initial entry into a graphics mode. In the first case, the
workaround is to use some other means of restoring the text font.
On Linux, this can be accomplished with the kbd or svgalib
packages. In the second case, xrefresh(1) will usually clean up
the image. No complete solution to this problem is currently
known. It appears this corruption occurs due to either video
memory bandwidth or RAMDAC limitations, and so the driver will
limit mode clocks to 40MHz.
+o There is some controversy over what the maximum allowed clock
frequency should be on 264xT and 3D Rage adapters. For now, clocks
will, by default, be limited to 80MHz, 135MHz, 170MHz, 200MHz or
230MHz, depending on the specific controller. This limit can only
be increased (up to a driver-calculated absolute maximum) through
the DACSpeed specification in xorg.conf. Be aware however that
doing so is untested and might damage the adapter.
+o Except as in the previous items, clocks are limited to 80MHz on
most adapters, although many are capable of higher frequencies.
This will eventually be fixed in a future release.
+o The use of a laptop's hot-keys to switch displays while this driver
is active can cause lockups and/or other woes, and is therefore not
recommended. It is not currently possible to solve this problem.
+o In situations where the driver is to simultaneously display on both
a panel and a CRT, the same image will be seen on both. In
particular, this means the CRT must be able to synchronise with the
timings of the panel's native resolution. This is quite evident
when the panel has ``odd-ball'' dimensions, such as 1400x1050, a
resolution not commonly possible on CRTs or projection equipment.
Also, the display of independent images on the panel and CRT is not
currently implemented, and might never be, pending resolution of
the previous item.
Support for the following will be added in a future release:
+o Mach32's accelerator CRTC. This support is the first step towards
accelerated support for Mach32's, Mach8's, 8514/A's and other
clones.
+o Colour depth greater than 8 on non-integrated controllers, where
permitted by the hardware.
+o Mach32, Mach8 and 8514/A Draw Engines.
+o Hardware cursors where implemented by hardware. This has already
been done for Mach64 integrated controllers.
+o TVOut, i.e. the ability to use a television screen as a monitor.
+o Motion Video, i.e. displaying an asynchronous data stream (TV
signal, DVD, etc.) in a window or full-screen.
+o 3D operations.
8. Reporting problems
If you are experiencing problems that are not already recorded in this
document, first ensure that you have the latest current release of
this driver and the Xorg X server.. Check the server's log (usually
found in /var/log/Xorg.0.log) and ftp://ftp.freedesktop.org/pub/Xorg
if you are uncertain.
Secondly, please check Xorg's doc directory for additional
information.
Thirdly, a scan through the comp.windows.x.i386unix and
comp.os.linux.x newsgroups and the xorg mailing list using your
favourite archiving service can also prove useful in resolving
problems.
If you are still experiencing problems, you can send me non-HTMLised
e-mail at <tsi@xfree86.org>. Please be as specific as possible when
describing the problem(s), and include an unedited copy of the
server's log and the xorg.conf file used.
9. Driver history
The complete history of the driver is rather cloudy. The following is
more than likely to be incomplete and inaccurate.
Apparently, Per Lindqvist first got a driver working with an early ATI
adapter under X386 1.1a. This original driver might have actually
been based on a non-functional ATI driver written by Thomas Roell
(currently of Xi Graphics).
Then Doug Evans added support for the ATI VGA Wonder XL, trying in the
process to make the driver work with all other ATI adapters available
at the time.
Rik Faith obtained the X11R4 driver from Doug Evans in the summer of
1992 and ported the code to the X386 part of X11R5. This subsequently
became part of XFree86.
I (Marc Aurele La France) took over development and maintenance of the
driver in the fall of 1993 after Rik got rid of his VGA Wonder
adapter.
10. Driver versions
Due to the introduction of loadable drivers in XFree86 4.0, it has
become necessary to track driver versions separately. Driver releases
use the following version numbering scheme.
Version 1 of this driver is the one I inherited from Rik Faith. This
is the version found in XFree86 2.0 and 2.1.
Version 2 is my first rewrite of this code which only ended up being a
partially unsuccessful attempt at generalising the driver for all VGA
Wonder, Mach32, and early Mach64 adapters. Various releases of this
version of the driver can be found in XFree86 2.1.1, 3.1, 3.1.1 and
3.1.2.
Version 3 represents my second rewrite (although a rather lame one as
rewrites go). Into version 3, I introduced clock programming for
Mach64 adapters and merged in the old ati_test debugging tool. This
is the version found in XFree86 3.2, 3.3 and 3.3.1.
Version 4 is a rather major restructuring of version 3, which became
larger than I could comfortably handle in one source file. This is
the version found in XFree86 3.3.2, 3.3.3, 3.3.3.1, 3.3.3.2, 3.3.4,
3.3.5 and 3.3.6.
Version 5 is an almost complete restructuring of version 4 to fit in
the newer driver API of XFree86 4.0 and later.
The introduction of version 6 is a first swipe at porting the driver
to non-Intel architectures.

View File

@ -1,648 +0,0 @@
<!DOCTYPE linuxdoc PUBLIC "-//Xorg//DTD linuxdoc//EN"[
<!ENTITY % defs SYSTEM "defs.ent"> %defs;
]>
<article>
<!-- Title information -->
<title>ATI Adapters README file
<author>Marc Aurele La France
<date>2002 February 12
<ident>
$Id: README.ati.sgml,v 1.1.1.1 2008/07/12 15:43:10 oga Exp $
Based on XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.42 2003/01/20 03:43:07 dawes Exp
</ident>
<abstract>
This is the README for the XAA ATI driver included in this release.
</abstract>
<!-- Table of contents -->
<toc>
<!-- Begin the document -->
<sect>Statement of intent<p>
Generally speaking, the driver is intended for all ATI video adapters
based on the Mach64 series or older chipsets,
providing maximum video function within hardware limitations.
The driver is also intended to optionally provide the same level of support for
generic VGA or 8514/A adapters.
The newer Rage 128 and Radeon chips are not yet supported by this driver.
Rage 128's and Radeon's are, however, supported by separate drivers, and
owners of such adapters should consult the documentation provided with these
drivers.
This driver will also invoke the appropriate driver if it finds Rage 128 and/or
Radeon adapter(s) in the system.
This driver is still being actively developed, meaning that it currently does
not yet fully meet these goals.<p>
The driver will provide
<itemize>
<item>accelerated support if an ATI accelerator is detected <it>and</it> the
user has not requested that this support be disabled; otherwise
<item>accelerated support if a non-ATI 8514/A-capable adapter is detected
<it>and</it> the user has requested such support; otherwise
<item>unaccelerated SuperVGA support if an ATI VGA-capable adapter is detected;
otherwise
<item>generic VGA support if a non-ATI VGA-capable adapter is detected
<it>and</it> the user has requested such support.
</itemize>
Thus, the level of support provided not only depends on what the driver detects
in the system, but also, on what the user specifies in the xorg.conf file.
See the <bf>``xorg.conf specifications''</bf> section below for details.<p>
If none of the above conditions are met, the ATI driver will essentially
disable itself to allow other drivers to examine the system.<p>
<!--
Note that I am currently considering removing the driver's support for generic
VGA.
If you have any concerns about this, please contact me at
<email>tsi@xfree86.org</email>.
-->
<sect>A note on acceleration<p>
The meaning of ``acceleration'', as used in this document, needs to be
clarified.
Two of the many components in an accelerator are the CRT controller (CRTC) and
the Draw Engine.
This is in addition to another CRTC that, generally, is also present in the
system (often in the same chip) and typically provides EGA, VGA or SuperVGA
functionality.<p>
A CRTC is the component of a graphics controller that is responsible for
reading video memory for output to the screen.
A Draw Engine is an accelerator component that can be programmed to manipulate
video memory contents, thus freeing the CPU for other tasks.<p>
When the VGA CRTC is used, all drawing operations into video memory are the
responsibility of the system's CPU, i.e. no Draw Engine can be used.
On the other hand, if the accelerator's CRTC is chosen to drive the screen,
the Draw Engine can also be used for drawing operations, although the CPU can
still be used for this purpose if it can access the accelerator's video
memory.<p>
Video acceleration refers to the programming of an accelerator's Draw Engine to
offload drawing operations from the CPU, and thus also implies the use of the
accelerator's CRTC.<p>
<sect>Current implementation for ATI adapters<p>
The driver currently supports the SuperVGA capabilities of all ATI adapters
except some early Mach8 and Mach32 adapters that do not provide the required
functionality.
This support works for monochrome, 16-colour and 256-colour video modes, if one
of the following ATI graphics controller chips is present:
<verb>
VGAWonder series: 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6
Mach32 series: 68800-3, 68800-6, 68800AX, 68800LX
Mach64 series: 88800GX-C, 88800GX-D, 88800GX-E, 88800GX-F, 88800CX,
264CT, 264ET, 264VT, 264GT (3D Rage), 264VT-B, 264VT3,
264VT4, 264GT-B (3D Rage II), 3D Rage IIc, 3D Rage Pro,
3D Rage LT, 3D Rage LT Pro, 3D Rage XL, 3D Rage XC,
3D Rage Mobility (including the -M and -P variants)</verb>
The driver also supports 32K, 64K and 16M-colour modes on the 264xT and 3D Rage
series of adapters using the accelerator CRTC (but not the VGA CRTC).<p>
The newer Rage 128 and Radeon chips are not yet supported by this driver.
Rage 128's and Radeon's are, however, supported by separate drivers, and
owners of such adapters should consult the documentation provided with these
drivers.
This driver will also invoke the appropriate driver if it finds Rage 128 and/or
Radeon adapter(s) in the system.<p>
Adapters based on the above chips have been marketed under a rather large
number of names over the years.
Among them are:
<verb>
VGAWonder series: VGAWonder V3, VGAWonder V4, VGAWonder V5, VGAWonder+,
VGAWonder XL, VGAWonder XL24, VGAWonder VLB, VGA Basic,
VGA Basic 16, VGA Edge, VGA Edge 16, VGA Integra,
VGA Charger, VGAStereo F/X, VGA 640, VGA 800, VGA 1024,
VGA 1024D, VGA 1024 XL, VGA 1024 DXL, VGA 1024 VLB
Mach8 series: Graphics Ultra, Graphics Vantage, VGAWonder GT
(None of the 8514/Ultra and 8514 Vantage series is
supported at this time)
Mach32 series: Graphics Ultra+, Graphics Ultra Pro, Graphics Wonder,
Graphics Ultra XLR, Graphics Ultra AXO, VLB mach32-D,
PCI mach32-D, ISA mach32
Mach64 series: Graphics Xpression, Graphics Pro Turbo, WinBoost,
WinTurbo, Graphics Pro Turbo 1600, Video Xpression,
3D Xpression, Video Xpression+, 3D Xpression+,
3D Charger, Video Charger, WinCharger, All-In-Wonder,
All-In-Wonder PRO, 3D Pro Turbo, XPERT@Play,
XPERT@Play 98, XPERT@Work, XPERT 98, XPERT LCD,
XPERT XL</verb>
Also, a number of mainboards, laptops and notebooks harbour a Mach32 or Mach64
controller.<p>
VGAWonder, Mach8 and Mach32 ISA adapters are available with or without a
mouse.<p>
These adapters are available with a variety of clock generators and RAMDACs.
The 264xT and 3D Rage series of chips are integrated controllers, meaning that
they include a programmable clock generator and a RAMDAC.<p>
For all but Mach64 adapters, this driver still does not provide support for
accelerated drawing to the screen.
This means that all drawing is done by the CPU, rather than by any accelerator
present in the system.
This can make opaque moves, for example, quite ``jerky''.
Also, given that IBM 8514/A and ATI Mach8 do not allow CPU access to their
frame buffer, the driver will currently ignore these accelerators.
Most Mach32 adapters provide both accelerated function and SuperVGA
functionality, but the driver currently only uses the VGA.<p>
The driver <it>does</it> however support the accelerator CRTC present in all
ATI Mach64 adapters.
For 256-colour, and higher depth modes, this support will be used by default,
although an xorg.conf option can be specified to use the SuperVGA CRTC
instead.
A linear video memory aperture is also available in 256-colour and higher depth
modes and enabled by default if a 264xT or 3D Rage controller is detected or,
on 88800 controllers, if the accelerator CRTC is used.
xorg.conf options are available to disable this aperture, or (for non-PCI
adapters) enable it or move it to some other address.<p>
By default, the driver provides some acceleration for Mach64 if the accelerator
CRTC is used, and modes whose colour depth greater than or equal to 8 are to be
used.
This support is as yet incomplete and can be disabled entirely with an
xorg.conf option.<p>
On non-Intel platforms, the driver can, currently, only support PCI Mach64
adapters.<p>
<sect>Current implementation of generic VGA support for non-ATI adapters<p>
Support for generic VGA with non-ATI adapters is also implemented, but has
undergone only limited testing.
The driver will intentionally disallow the use of this support with ATI
adapters.
This support must be explicitly requested through an xorg.conf ChipSet
specification.
This prevents the current VGA generic driver from being disabled.<p>
This driver's generic VGA support is intended as an extension of that provided
by the current generic driver.
Specifically, within the architectural bounds defined by IBM's VGA standard,
this driver will allow the use of any 256-colour mode, and any dot clock
frequencies both of which allow for many more mode possibilities.<p>
The driver will enforce the following limitations derived from IBM's original
VGA implementation:
<itemize>
<item>There can only be a set of four (non-programmable) clocks to choose from.
<item>Video memory is limited to 256kB in monochrome and 16-colour modes.
<item>Video memory is limited to 64kB in 256-colour modes.
<item>Interlaced modes are not available.
<item>Colour depths higher than 8 are not available.
</itemize>
<sect>xorg.conf specifications<p>
The driver recognises a number of xorg.conf options.
In general, all such options should be specified in a ``Device'' section, and
affect only that ``Device'' section.<p>
Those options that affect how the driver associates adapters with ``Device''
sections are described first.
The driver will ignore (with a message) a ``Device'' section if the section
cannot be associated with exactly one adapter in the system.
Similarly, the driver will ignore, or disable, (with a message) any adapter
that cannot be associated with exactly one ``Device'' section.
Thus, these options will be required in those uncommon cases where such unique
associations cannot automatically be made by the driver.<p>
Other options affect the driver's operation once an adapter has been assigned
to the ``Device'' section which contains them.<p>
<sect1>Driver ``ati''<p>
The use of this specification is highly recommended if the ``Device'' section
is to be recognised by the driver.
In fact, it is almost (but not quite) mandatory, particularly when using the
loader server as it indicates what driver is to be loaded and associated with
the ``Device'' section.<p>
<sect1>ChipSet ``name''<p>
The default ChipSet name for this driver is ``<it>ati</it>''.
In this case, any ATI adapter can be associated with the ``Device'' section.
If an ATI accelerator is detected and the driver supports it, the accelerator's
CRTC will be used to drive the screen.
Otherwise, the driver will programme the adapter's SuperVGA CRTC.<p>
If ``<it>ativga</it>'' is specified instead, the driver will ignore any ATI
accelerator it detects, but otherwise operate as if ``<it>ati</it>'' had been
specified.
This specification ensures the VGA CRTC is used.<p>
A ChipSet name of ``<it>ibmvga</it>'' causes any VGA-capable adapter in the
system to be associated with the ``Device'' section.
It enables the driver's generic VGA support, but only for non-ATI adapters.
If an ATI adapter is associated with the ``Device'' section, the driver will
operate as if ``<it>ativga</it>'' had been specified instead.<p>
A ChipSet name of ``<it>vgawonder</it>'' is equivalent to ``<it>ativga</it>'',
except that only VGAWonder-capable adapters can be assigned to the ``Device''
section.
This specifically excludes the newer integrated Mach64 controllers.<p>
In some PCI or AGP systems, the driver will not, by default, probe for non-PCI
Mach32's or Mach64's.
This is because, before doing any such probe, the driver attempts to determine
if the probe can cause a lockup.
If the driver has enough information to determine that a lockup would occur, it
will skip the probe.
In some situations, this determination cannot be accurate, and the driver will
err on the side of caution, skipping the probe.
Specifying a ChipSet name of ``<it>mach32</it>'' or ``<it>mach64</it>'', as
appropriate, will force the driver to probe for the non-PCI adapter.
These ChipSet names should, therefore, only be used when there is in fact such
an adapter in the system.
They are otherwise equivalent to ``<it>ati</it>''.<p>
On non-Intel platforms, only ``<it>ati</it>'' and ``<it>mach64</it>'' ChipSet
values are operative.<p>
<sect1>ChipID & ChipRev specifications<p>
These specifications will cause the driver to associate the ``Device'' section
only with an adapter having the same attributes, or an adapter whose PCI device
ID the driver does not recognise.
In the second case, these options cause the driver to treat the adapter as if
it was one with the specified PCI device ID or revision.
ChipID can only be used with Mach32 or Mach64 adapters, and, thus, specifically
excludes any other adapter from matching the ``Device'' section.
ChipRev is meaningful only with Mach64 adapters, and then only if ChipID is
also specified in the same ``Device'' section.<p>
<sect1>IOBase<p>
This option limits the adapters that can be associated with the ``Device''
section to the one with the specified I/O base.
This option only applies to Mach64 adapters and specifically excludes other
adapters.<p>
<sect1>BusID<p>
This option limits the adapters that can be associated with the ``Device''
section to the one with the specified PCI Bus ID.
This specification excludes non-PCI adapters.<p>
<sect1>Clocks<p>
For the purpose of specifying a clock line in your xorg.conf, one of four
different situations can occur, as follows.<p>
Those configuring the driver's generic VGA support for a non-ATI adapter,
can skip ahead to the <bf>``Clocks for non-ATI adapters''</bf> section below.
Those <it>not</it> trying to configure the driver for a Mach64 adapter, can
skip ahead to the <bf>``Clocks for fixed clock generators on ATI
adapters''</bf> section below.<p>
The very earliest Mach64 adapters use fixed (i.e. non-programmable) clock
generators.
Very few of these (mostly prototypes) are known to exist, but if you have one
of these, you can also skip ahead to the <bf>``Clocks for fixed clock
generators on ATI adapters''</bf> section below.<p>
The two cases that are left deal with programmable clock generators, which are
used on the great majority of Mach64 adapters.<p>
If you are uncertain which situation applies to your adapter, you can run a
clock probe with the command ``<tt>X -probeonly</tt>''.<p>
<sect2>Clocks for supported programmable clock generators<p>
At bootup, video BIOS initialisation programmes an initial set of frequencies.
Two of these are reserved to allow the setting of modes that do not use a
frequency from this initial set.
One of these reserved slots is used by the BIOS mode set routine, the other by
the particular driver used (e.g. MS-Windows, AutoCAD, X, etc.).
The clock numbers reserved in this way are dependent on the particular clock
generator used by the adapter.<p>
The driver currently supports all programmable clock generators known to exist
on Mach64 adapters.
In this case, the driver will completely ignore any xorg.conf clock
specification, and programme the clock generator as needed by the modes used
during the X session.<p>
<sect2>Clocks for unsupported programmable clock generators<p>
This case is unlikely to occur, but is documented for the sake of
completeness.<p>
In this situation, the driver will probe the adapter for clock frequencies
unless xorg.conf clocks are already specified.
In either case, the driver will then attempt to normalise the clocks to one of
the following specifications:
<verb>
BIOS setting 1:
Clocks 0.000 110.000 126.000 135.000 50.350 56.640 63.000 72.000
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
0.000 55.000 63.000 67.500 25.180 28.320 31.500 36.000
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000</verb>
<verb>
BIOS setting 2:
Clocks 0.000 110.000 126.000 135.000 25.180 28.320 31.500 36.000
0.000 80.000 75.000 65.000 40.000 44.900 49.500 50.000
0.000 55.000 63.000 67.500 12.590 14.160 15.750 18.000
0.000 40.000 37.500 32.500 20.000 22.450 24.750 25.000</verb>
<verb>
BIOS setting 3:
Clocks 0.000 0.000 0.000 0.000 25.180 28.320 0.000 0.000
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
0.000 0.000 0.000 0.000 12.590 14.160 0.000 0.000
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000</verb>
If the driver matches the clocks to the third setting above, functionality will
be <it>extremely</it> limited (assuming the driver works at all).<p>
<sect2>Clocks for fixed clock generators on ATI adapters<p>
This section applies to all VGAWonder and Mach32 adapters, and to early Mach64
prototypes.<p>
One of the following clocks specifications (or an initial subset thereof) can
be used depending on what the adapter uses to generate dot clocks:
<verb>
Crystals (VGA Wonder V3 and V4 adapters only):
Clocks 50.000 56.644 0.000 44.900 44.900 50.000 0.000 36.000
25.000 28.322 0.000 22.450 22.450 25.000 0.000 18.000
16.667 18.881 0.000 14.967 14.967 16.667 0.000 12.000
12.500 14.161 0.000 11.225 11.225 12.500 0.000 9.000</verb>
<verb>
ATI 18810 clock generator:
Clocks 30.240 32.000 37.500 39.000 42.954 48.771 0.000 36.000
40.000 0.000 75.000 65.000 50.350 56.640 0.000 44.900
15.120 16.000 18.750 19.500 21.477 24.386 0.000 18.000
20.000 0.000 37.500 32.500 25.175 28.320 0.000 22.450
10.080 10.667 12.500 13.000 14.318 16.257 0.000 12.000
13.333 0.000 25.000 21.667 16.783 18.880 0.000 14.967
7.560 8.000 9.375 9.750 10.739 12.193 0.000 9.000
10.000 0.000 18.750 16.250 12.586 14.160 0.000 11.225</verb>
<verb>
ATI 18811-0 and ATI 18812-0 clock generators:
Clocks 30.240 32.000 110.000 80.000 42.954 48.771 92.400 36.000
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
15.120 16.000 55.000 40.000 21.477 24.386 46.200 18.000
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
10.080 10.667 36.667 26.667 14.318 16.257 30.800 12.000
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
7.560 8.000 27.500 20.000 10.739 12.193 23.100 9.000
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225</verb>
<verb>
ATI 18811-1 and ATI 18811-2 clock generators:
Clocks 135.000 32.000 110.000 80.000 100.000 126.000 92.400 36.000
39.910 44.900 75.000 65.000 50.350 56.640 0.000 44.900
67.500 16.000 55.000 40.000 50.000 63.000 46.200 18.000
19.955 22.450 37.500 32.500 25.175 28.320 0.000 22.450
45.000 10.667 36.667 26.667 33.333 42.000 30.800 12.000
13.303 14.967 25.000 21.667 16.783 18.880 0.000 14.967
33.750 8.000 27.500 20.000 25.000 31.500 23.100 9.000
9.978 11.225 18.750 16.250 12.588 14.160 0.000 11.225</verb>
<verb>
ICS 2494-AM clock generators (found on some Dell motherboards):
Clocks 75.000 77.500 80.000 90.000 25.175 28.322 31.500 36.000
100.000 110.000 126.000 135.000 40.000 44.900 50.000 65.000
37.500 38.750 40.000 45.000 12.588 14.161 15.750 18.000
50.000 55.000 63.000 67.500 20.000 22.450 25.000 32.500
25.000 25.833 26.667 30.000 8.392 9.441 10.500 12.000
33.333 36.667 42.000 45.000 13.333 14.767 16.667 21.667
18.750 19.375 20.000 22.500 6.294 7.081 7.875 9.000
25.000 27.500 31.500 33.750 10.000 11.225 12.500 16.250</verb>
VGAWonder VLB, VGA 1024 VLB, Mach32 and Mach64 owners should only specify up to
the first 32 frequencies.
Any more will be ignored.<p>
Other clock generators that have been used on ATI adapters (which can all be
said to be clones of one of the above) might generate non-zero frequencies for
those that are zero above, or vice-versa.<p>
The order of the clocks <it>is</it> very important, although the driver will
reorder the specified clocks if it deems it appropriate to do so.
Mach32 and Mach64 owners should note that this order is different than what
they would use for previous accelerated servers.<p>
<sect2>Clocks for non-ATI adapters<p>
If no clocks are specified in the xorg.conf, the driver will probe for four
clocks, the second of which will be assumed to be 28.322 MHz.
The first clock will typically be 25.175 MHz, but there are exceptions.
You can include up to four clock frequencies in your xorg.conf to specify the
actual values used by the adapter.
Any more will be ignored.<p>
<sect1>Option <it>``nopanel_display''</it><p>
This specification is only effective when the driver detects that the adapter's
BIOS has initialised both the digital flat panel and CRT interfaces.
In such a situation, the driver will normally drive both the panel and the CRT.
This specification causes the driver to disable the digital flat panel and
display the screen image on the CRT instead, which could potentially allow for
larger physical resolutions than the panel can handle.<p>
<sect1>Option <it>``crt_display''</it><p>
This specification is only effective when the driver detects that the adapter's
BIOS has initialised the digital flat panel interface, but has disabled the
CRT interface.
In such a situation the driver will normally drive only the panel.
This specification causes the driver to instead display the same image on both
the panel and the CRT.<p>
<sect1>Option <it>``noaccel''</it><p>
By default, the driver will accelerate draw operations if a Mach64 CRTC is used
to drive the display.
As implemented in this driver, acceleration does not require a linear video
memory aperture.
This option disables this acceleration.<p>
<sect1>Option <it>``nolinear''</it><p>
By default, the driver will enable a linear video memory aperture for
256-colour and higher depth modes if it is also using a Mach64 accelerator CRTC
or an integrated Mach64 graphics chip.
This option disables this linear aperture.<p>
On non-Intel platforms, the driver requires a linear aperture and, so, this
option is ignored.<p>
<sect1>Option <it>``HWCursor''</it> and Option <it>``SWCursor''</it><p>
Option <it>``HWCursor''</it>, which is the default, specifies that hardware
facilities are to be used to paint the mouse pointer on the screen.
Option <it>``SWCursor''</it> specifies that the mouse pointer is to be drawn by
software, which is much slower.
If both options are specified, option <it>``SWCursor''</it> prevails.
Currently, these options are only acted upon for 256-colour or higher depth
modes, if a Mach64 accelerator CRTC, or a Mach64 integrated controller is being
used.
In all other situations, a software cursor will be used, regardless of what
these options specify.<p>
<sect1>Option <it>``SilkenMouse''</it><p>
This option is only acted upon when a hardware cursor is being used.
It specifies that the cursor's position on the screen is to be updated as
quickly as possible when the mouse is moved.
This is the default behaviour.
If this option is negated, the cursor may lag the mouse when the X server is
very busy.<p>
<sect1>Option <it>``shadowfb''</it><p>
If this option is enabled, the driver will cause the CPU to do each drawing
operation first into a shadow frame buffer in system virtual memory and then
copy the result into video memory.
If this option is not active, the CPU will draw directly into video memory.
Enabling this option is beneficial for those systems where reading from video
memory is, on average, slower than the corresponding read/modify/write
operation in system virtual memory.
This is normally the case for PCI or AGP adapters, and, so, this option is
enabled by default.
For other bus types, the default behaviour is to disable this option.<p>
Note that, due to various limitations, this option is forcibly disabled when a
linear video memory aperture is not enabled, when the frame buffer depth is
less than 8, or when acceleration is used.<p>
<sect1>Option <it>``dpms''</it><p>
This option enables the driver's support for VESA's Display Power Management
Specification.<p>
<sect1>Option <it>``backingstore''</it><p>
This is not specifically a driver option.
It is used to enable the server's support for backing store, a mechanism by
which pixel data for occluded window regions is remembered by the server
thereby alleviating the need to send expose events to X clients when the data
needs to be redisplayed.<p>
<sect1>MemBase <it>address</it><p>
This specification is only effective for non-PCI Mach64 adapters, and is used
to override the CPU address at which the adapter will map its video memory.
Normally, for non-PCI adapters, this address is set by a DOS install utility
provided with the adapter.
The MemBase option can also be used to enable the linear aperture in those
cases where ATI's utility was not, or can not be, used.<p>
For PCI and AGP adapters, this address is determined at system bootup according
to the PCI Plug'n'Play specification which arbitrates the resource requirements
of most devices in the system.
This means the driver can not easily change the linear aperture address.<p>
<sect1>Option <it>``ReferenceClock''</it> ``frequency''<p>
This option is only applicable to non-Intel platforms, where an adapter BIOS is
not available to the driver.
The option specifies the reference frequency used by the adapter's clock
generator.
The default is 14.318 MHz, and other typical values are 28.636, or 29.5 MHz.<p>
<sect1>ClockChip <it>``name''</it><p>
This option is only applicable to non-Intel platforms, where an adapter BIOS is
not available to the driver, and the driver cannot reliably determine whether
the clock generator the adapter uses is a variant of an ATI 18818 (a.k.a.
ICS 2595) or an unsupported clock generator.
The only values that are acted upon are <it>``ATI 18818-0''</it> or
<it>``ATI 18818-1''</it>.
From this specification, the driver derives a reference divider of 43 or 46
(respectively) for use in clock programming calculations.
The driver's default behaviour, in this case, is to assume an unsupported clock
generator, which means it will treat it as a fixed-frequency clock generator,
as described under the heading <bf>``Clocks for unsupported programmable clock
generators''</bf> above.<p>
<sect>Video modes<p>
Mode timings can be derived from the information in X's doc subdirectory.
However, it is no longer required to specify such timings in an xorg.conf's
``Monitor'' section(s), if only standard mode timings are to be used.
The server automatically inserts VESA standard mode timings in every
``Monitor'' section, and these modes will be checked first for mode constraints
(monitor sync tolerances, video memory size, etc.).<p>
Furthermore, it is also no longer required to specify mode names in ``Display''
subsections.
Should no mode names be specified (or those specified do not yield a usable
mode), the server will automatically select as a default resolution the largest
usable mode, whether or not the chosen mode is specified in the corresponding
``Monitor'' section.<p>
For a digital flat panel, any sync tolerances should be removed from the
corresponding ``Monitor'' section.
The driver will automatically calculate these from the mode that is active on
server entry.
The driver also inserts timings for a mode called <it>"Native panel mode"</it>
that represents the panel's native resolution.<p>
<sect>Known problems and limitations<p>
There are several known problems or limitations related to the ATI
driver.
They include:<p>
<itemize>
<item>When using a Mach64's accelerator CRTC, the virtual resolution must be
less than 8192 pixels wide.
The VGA CRTC further limits the virtual resolution width to less than 4096
pixels, or to less than 2048 pixels for adapters based on 18800-x's (with 256kB
of memory) and on Mach64 integrated controllers.
These are hardware limits that cannot be circumvented.
<item>Virtual resolutions requiring more than 1MB of video memory (256kB in the
monochrome case) are not supported by the VGA CRTC on 88800GX and 88800CX
adapters.
This is a hardware limit that cannot be circumvented.
<item>Due to hardware limitations, doublescanned modes are not supported by the
accelerator CRTC in 88800GX, 88800CX, 264CT and 264ET adapters.
<item>The ``VScan'' modeline parameter is only supported when using the VGA
CRTC.
<item>Interlaced modes are not supported on 18800-x and 28800-x adapters when
using a virtual resolution that is 2048 pixels or wider.
When using a 18800-x with 256kB of video memory in 256-colour modes, this limit
is reduced to 1024.
This is yet another hardware limitation that cannot be circumvented.
<item>Video memory banking does not work in monochrome and 16-colour modes on
18800-x adapters.
This appears to be another hardware limit, but this conclusion cannot be
confirmed at this time.
The driver's default behaviour in this case is to limit video memory to 256kB.
<item>Video memory corruption can still occur during mode switches on 18800-x
adapters.
Symptoms of this problem include garbled fonts on return to text mode, and
various effects (snow, dashed lines, etc) on initial entry into a graphics
mode.
In the first case, the workaround is to use some other means of restoring the
text font.
On Linux, this can be accomplished with the kbd or svgalib packages.
In the second case, <htmlurl name="xrefresh(1)" url="xrefresh.1.html">
will usually clean up the image.
No complete solution to this problem is currently known.
It appears this corruption occurs due to either video memory bandwidth or
RAMDAC limitations, and so the driver will limit mode clocks to 40MHz.
<item>There is some controversy over what the maximum allowed clock frequency
should be on 264xT and 3D Rage adapters.
For now, clocks will, by default, be limited to 80MHz, 135MHz, 170MHz, 200MHz
or 230MHz, depending on the specific controller.
This limit can only be increased (up to a driver-calculated absolute maximum)
through the DACSpeed specification in xorg.conf.
Be aware however that doing so is untested and might damage the adapter.
<item>Except as in the previous items, clocks are limited to 80MHz on most
adapters, although many are capable of higher frequencies.
This will eventually be fixed in a future release.
<item>The use of a laptop's hot-keys to switch displays while this driver is
active can cause lockups and/or other woes, and is therefore not recommended.
It is not currently possible to solve this problem.<p>
<item>In situations where the driver is to simultaneously display on both a
panel and a CRT, the same image will be seen on both.
In particular, this means the CRT must be able to synchronise with the timings
of the panel's native resolution.
This is quite evident when the panel has ``odd-ball'' dimensions, such as
1400x1050, a resolution not commonly possible on CRTs or projection
equipment.<p>
Also, the display of independent images on the panel and CRT is not currently
implemented, and might never be, pending resolution of the previous item.<p>
</itemize>
Support for the following will be added in a future release:
<itemize>
<item>Mach32's accelerator CRTC.
This support is the first step towards accelerated support for Mach32's,
Mach8's, 8514/A's and other clones.
<item>Colour depth greater than 8 on non-integrated controllers, where
permitted by the hardware.
<item>Mach32, Mach8 and 8514/A Draw Engines.
<item>Hardware cursors where implemented by hardware.
This has already been done for Mach64 integrated controllers.
<item>TVOut, i.e. the ability to use a television screen as a monitor.
<item>Motion Video, i.e. displaying an asynchronous data stream (TV signal,
DVD, etc.) in a window or full-screen.
<item>3D operations.
</itemize>
<sect>Reporting problems<p>
If you are experiencing problems that are not already recorded in this
document, first ensure that you have the latest current release of this driver
and the Xorg X server.
Check the server's log (usually found in /var/log/Xorg.0.log) and <htmlurl
name="ftp://ftp.freedesktop.org/pub/Xorg"
url="ftp://ftp.freedesktop.org/pub/Xorg"> if you are uncertain.<p>
Secondly, please check Xorg's doc directory for additional information.<p>
Thirdly, a scan through the comp.windows.x.i386unix and comp.os.linux.x
newsgroups, the xorg mailing list archives at <htmlurl
name="http://lists.freedesktop.org/mailman/listinfo/xorg"
url="http://lists.freedesktop.org/mailman/listinfo/xorg">, and
the Xorg bug database at <htmlurl
name="https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
url="https://bugs.freedesktop.org/enter_bug.cgi?product=xorg">
can also prove useful in resolving problems.<p>
If you are still experiencing problems, you can send <it>non-HTMLised</it>
e-mail to <email>xorg@lists.fredesktop.org</email>.
Please be as specific as possible when describing the problem(s), and include
an <it>unedited</it> copy of the server's log and the xorg.conf file used.<p>
<sect>Driver history<p>
The complete history of the driver is rather cloudy.
The following is more than likely to be incomplete and inaccurate.<p>
Apparently, Per Lindqvist first got a driver working with an early ATI adapter
under X386 1.1a.
This original driver might have actually been based on a non-functional ATI
driver written by Thomas Roell (currently of Xi Graphics).<p>
Then Doug Evans added support for the ATI VGA Wonder XL, trying in the process
to make the driver work with all other ATI adapters available at the time.<p>
Rik Faith obtained the X11R4 driver from Doug Evans in the summer of 1992 and
ported the code to the X386 part of X11R5.
This subsequently became part of XFree86.<p>
Marc Aurele La France took over development and maintenance of the driver
in the fall of 1993 after Rik got rid of his VGA Wonder adapter.<p>
<sect>Driver versions<p>
Due to the introduction of loadable drivers in XFree86 4.0, it has become
necessary to track driver versions separately.
Driver releases use the following version numbering scheme.<p>
Version 1 of this driver is the one I inherited from Rik Faith.
This is the version found in XFree86 2.0 and 2.1.<p>
Version 2 is my first rewrite of this code which only ended up being a
partially unsuccessful attempt at generalising the driver for all VGA Wonder,
Mach32, and early Mach64 adapters.
Various releases of this version of the driver can be found in XFree86 2.1.1,
3.1, 3.1.1 and 3.1.2.<p>
Version 3 represents my second rewrite (although a rather lame one as rewrites
go).
Into version 3, I introduced clock programming for Mach64 adapters and merged
in the old ati_test debugging tool.
This is the version found in XFree86 3.2, 3.3 and 3.3.1.<p>
Version 4 is a rather major restructuring of version 3, which became larger
than I could comfortably handle in one source file.
This is the version found in XFree86 3.3.2, 3.3.3, 3.3.3.1, 3.3.3.2, 3.3.4,
3.3.5 and 3.3.6.<p>
Version 5 is an almost complete restructuring of version 4 to fit in the newer
driver API of XFree86 4.0 and later.<p>
The introduction of version 6 is a first swipe at porting the driver to
non-Intel architectures.<p>
</article>

File diff suppressed because it is too large Load Diff

View File

@ -41,6 +41,10 @@
/* xextproto 7.1 available */
#undef HAVE_XEXTPROTO_71
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
/* Name of package */
#undef PACKAGE

File diff suppressed because it is too large Load Diff

View File

@ -20,70 +20,66 @@
#
# Process this file with autoconf to produce a configure script
AC_PREREQ(2.57)
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-mach64],
6.8.2,
[6.9.1],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-mach64)
[xf86-video-mach64])
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
# Require xorg-macros: XORG_CWARNFLAGS, XORG_CHANGELOG
m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.2 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.2)
# 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
# Checks for programs.
# Initialize libtool
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
AC_PROG_CC
XORG_CWARNFLAGS
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"])
AC_ARG_ENABLE(dri, AC_HELP_STRING([--disable-dri],
AC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri],
[Disable DRI support [[default=auto]]]),
[DRI="$enableval"],
[DRI=auto])
AC_ARG_ENABLE(exa,
AC_HELP_STRING([--disable-exa],
AS_HELP_STRING([--disable-exa],
[Disable EXA support [[default=enabled]]]),
[EXA="$enableval"],
[EXA=yes])
# Checks for extensions
XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
# 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(XF86MISC, xf86miscproto)
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.2 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)
sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
# Checks for libraries.
# Checks for header files.
AC_HEADER_STDC
if test "$DRI" != no; then
AC_CHECK_FILE([${sdkdir}/dri.h],
[have_dri_h="yes"], [have_dri_h="no"])
@ -210,31 +206,25 @@ CPPFLAGS="$SAVE_CPPFLAGS"
AM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes)
if test "x$XSERVER_LIBPCIACCESS" = xyes; then
PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.12.901])
XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
fi
AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
AC_SUBST([XORG_CFLAGS])
AC_SUBST([DRI_CFLAGS])
AC_SUBST([moduledir])
DRIVER_NAME=mach64
AC_SUBST([DRIVER_NAME])
XORG_MANPAGE_SECTIONS
XORG_RELEASE_VERSION
XORG_CHECK_LINUXDOC
XORG_CHANGELOG
AC_MSG_NOTICE(
[Please change the Driver line in xorg.conf from "ati" to "mach64"]
[ or install the ati wrapper as well:]
[ git://anongit.freedesktop.org/git/xorg/driver/xf86-video-ati]
)
AC_OUTPUT([
Makefile
src/Makefile
man/Makefile
AC_CONFIG_FILES([
Makefile
src/Makefile
man/Makefile
])
AC_OUTPUT

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +1,25 @@
# $Id: Makefile.am,v 1.1.1.1 2008/07/12 15:43:42 oga Exp $
#
# 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.
#
# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
#
# 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)
@ -35,25 +31,11 @@ EXTRA_DIST =
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) < $< > $@

View File

@ -14,32 +14,28 @@
@SET_MAKE@
# $Id: Makefile.in,v 1.3 2010/05/24 09:28:57 matthieu Exp $
#
# 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.
#
# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
#
# 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.
#
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@ -50,9 +46,9 @@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
install_sh_DATA = ${SHELL} $(install_sh) -c -m 644
install_sh_PROGRAM = ${SHELL} $(install_sh) -c
install_sh_SCRIPT = ${SHELL} $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
@ -90,6 +86,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
@ -103,10 +100,7 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_LINUXDOC_FALSE = @BUILD_LINUXDOC_FALSE@
BUILD_LINUXDOC_TRUE = @BUILD_LINUXDOC_TRUE@
BUILD_PDFDOC_FALSE = @BUILD_PDFDOC_FALSE@
BUILD_PDFDOC_TRUE = @BUILD_PDFDOC_TRUE@
BASE_CFLAGS = @BASE_CFLAGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@ -114,13 +108,10 @@ CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@
@ -129,44 +120,47 @@ DRI_FALSE = @DRI_FALSE@
DRI_LIBS = @DRI_LIBS@
DRI_TRUE = @DRI_TRUE@
DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
HAVE_XEXTPROTO_71_FALSE = @HAVE_XEXTPROTO_71_FALSE@
HAVE_XEXTPROTO_71_TRUE = @HAVE_XEXTPROTO_71_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LINUXDOC = @LINUXDOC@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MAKE_HTML = @MAKE_HTML@
MAKE_PDF = @MAKE_PDF@
MAKE_PS = @MAKE_PS@
MAKE_TEXT = @MAKE_TEXT@
MANIFEST_TOOL = @MANIFEST_TOOL@
MAN_SUBSTS = @MAN_SUBSTS@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@ -177,11 +171,11 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@
PCIACCESS_LIBS = @PCIACCESS_LIBS@
PKG_CONFIG = @PKG_CONFIG@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
SED = sed
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
USE_EXA_FALSE = @USE_EXA_FALSE@
USE_EXA_TRUE = @USE_EXA_TRUE@
@ -190,16 +184,14 @@ XEXT_CFLAGS = @XEXT_CFLAGS@
XEXT_LIBS = @XEXT_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
XORG_SGML_PATH = @XORG_SGML_PATH@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XSERVER_LIBPCIACCESS_FALSE = @XSERVER_LIBPCIACCESS_FALSE@
XSERVER_LIBPCIACCESS_TRUE = @XSERVER_LIBPCIACCESS_TRUE@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@ -247,21 +239,7 @@ driverman_DATA = $(driverman_PRE:man=@DRIVER_MAN_SUFFIX@)
EXTRA_DIST =
CLEANFILES = $(driverman_DATA)
# Strings to replace in man pages
XORGRELSTRING = @PACKAGE_STRING@
XORGMANNAME = X Version 11
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'
# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
all: all-am
@ -276,9 +254,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu man/Makefile
$(AUTOMAKE) --foreign man/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@ -448,7 +426,7 @@ uninstall-am: uninstall-drivermanDATA uninstall-info-am
.man.$(DRIVER_MAN_SUFFIX):
sed $(MAN_SUBSTS) < $< > $@
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -50,9 +50,9 @@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
install_sh_DATA = ${SHELL} $(install_sh) -c -m 644
install_sh_PROGRAM = ${SHELL} $(install_sh) -c
install_sh_SCRIPT = ${SHELL} $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
@ -128,6 +128,7 @@ ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
@ -141,10 +142,7 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_LINUXDOC_FALSE = @BUILD_LINUXDOC_FALSE@
BUILD_LINUXDOC_TRUE = @BUILD_LINUXDOC_TRUE@
BUILD_PDFDOC_FALSE = @BUILD_PDFDOC_FALSE@
BUILD_PDFDOC_TRUE = @BUILD_PDFDOC_TRUE@
BASE_CFLAGS = @BASE_CFLAGS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@ -152,13 +150,10 @@ CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@
@ -167,44 +162,47 @@ DRI_FALSE = @DRI_FALSE@
DRI_LIBS = @DRI_LIBS@
DRI_TRUE = @DRI_TRUE@
DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
HAVE_XEXTPROTO_71_FALSE = @HAVE_XEXTPROTO_71_FALSE@
HAVE_XEXTPROTO_71_TRUE = @HAVE_XEXTPROTO_71_TRUE@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LINUXDOC = @LINUXDOC@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MAKE_HTML = @MAKE_HTML@
MAKE_PDF = @MAKE_PDF@
MAKE_PS = @MAKE_PS@
MAKE_TEXT = @MAKE_TEXT@
MANIFEST_TOOL = @MANIFEST_TOOL@
MAN_SUBSTS = @MAN_SUBSTS@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@ -215,11 +213,11 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@
PCIACCESS_LIBS = @PCIACCESS_LIBS@
PKG_CONFIG = @PKG_CONFIG@
PS2PDF = @PS2PDF@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRICT_CFLAGS = @STRICT_CFLAGS@
STRIP = @STRIP@
USE_EXA_FALSE = @USE_EXA_FALSE@
USE_EXA_TRUE = @USE_EXA_TRUE@
@ -228,16 +226,14 @@ XEXT_CFLAGS = @XEXT_CFLAGS@
XEXT_LIBS = @XEXT_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
XORG_SGML_PATH = @XORG_SGML_PATH@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XSERVER_LIBPCIACCESS_FALSE = @XSERVER_LIBPCIACCESS_FALSE@
XSERVER_LIBPCIACCESS_TRUE = @XSERVER_LIBPCIACCESS_TRUE@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@ -362,9 +358,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
$(AUTOMAKE) --foreign src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \

View File

@ -506,5 +506,5 @@ ATIProcessOptions
#endif
}
xfree(PublicOption);
free(PublicOption);
}

View File

@ -792,33 +792,26 @@ ATIFreeScreen
int flags
)
{
ScreenPtr pScreen = screenInfo.screens[iScreen];
ScrnInfoPtr pScreenInfo = xf86Screens[iScreen];
ATIPtr pATI = ATIPTR(pScreenInfo);
if (pATI->Closeable || (serverGeneration > 1))
ATII2CFreeScreen(iScreen);
if (pATI->Closeable)
(void)(*pScreen->CloseScreen)(iScreen, pScreen);
ATILeaveGraphics(pScreenInfo, pATI);
ATII2CFreeScreen(iScreen);
#ifndef AVOID_CPIO
xfree(pATI->OldHW.frame_buffer);
xfree(pATI->NewHW.frame_buffer);
free(pATI->OldHW.frame_buffer);
free(pATI->NewHW.frame_buffer);
#endif /* AVOID_CPIO */
xfree(pATI->pShadow);
free(pATI->pShadow);
#ifndef AVOID_DGA
xfree(pATI->pDGAMode);
free(pATI->pDGAMode);
#endif /* AVOID_DGA */
xfree(pATI);
free(pATI);
pScreenInfo->driverPrivate = NULL;
}

View File

@ -324,7 +324,7 @@ ATIDGAAddModes
if ((modePitch * bitsPerPixel * pMode->VDisplay) <= videoBits)
{
/* Stop generating modes on out-of-memory conditions */
pDGAMode = xrealloc(pATI->pDGAMode,
pDGAMode = realloc(pATI->pDGAMode,
(pATI->nDGAMode + 1) * SizeOf(DGAModeRec));
if (!pDGAMode)
break;

View File

@ -109,14 +109,14 @@ static Bool ATIInitVisualConfigs( ScreenPtr pScreen )
pATIConfigs = (ATIConfigPrivPtr)
xnfcalloc( sizeof(ATIConfigPrivRec), numConfigs );
if ( !pATIConfigs ) {
xfree( pConfigs );
free( pConfigs );
return FALSE;
}
pATIConfigPtrs = (ATIConfigPrivPtr*)
xnfcalloc( sizeof(ATIConfigPrivPtr), numConfigs );
if ( !pATIConfigPtrs ) {
xfree( pConfigs );
xfree( pATIConfigs );
free( pConfigs );
free( pATIConfigs );
return FALSE;
}
@ -190,14 +190,14 @@ static Bool ATIInitVisualConfigs( ScreenPtr pScreen )
pATIConfigs = (ATIConfigPrivPtr)
xnfcalloc( sizeof(ATIConfigPrivRec), numConfigs );
if ( !pATIConfigs ) {
xfree( pConfigs );
free( pConfigs );
return FALSE;
}
pATIConfigPtrs = (ATIConfigPrivPtr*)
xnfcalloc( sizeof(ATIConfigPrivPtr), numConfigs );
if ( !pATIConfigPtrs ) {
xfree( pConfigs );
xfree( pATIConfigs );
free( pConfigs );
free( pATIConfigs );
return FALSE;
}
@ -553,11 +553,11 @@ static void ATIDRIMoveBuffers( WindowPtr pWin, DDXPointRec ptOldOrg,
if (nbox > 1) {
/* Keep ordering in each band, reverse order of bands */
pboxNew1 = (BoxPtr)xalloc(sizeof(BoxRec)*nbox);
pboxNew1 = (BoxPtr)malloc(sizeof(BoxRec)*nbox);
if (!pboxNew1) return;
pptNew1 = (DDXPointPtr)xalloc(sizeof(DDXPointRec)*nbox);
pptNew1 = (DDXPointPtr)malloc(sizeof(DDXPointRec)*nbox);
if (!pptNew1) {
xfree(pboxNew1);
free(pboxNew1);
return;
}
pboxBase = pboxNext = pbox+nbox-1;
@ -588,13 +588,13 @@ static void ATIDRIMoveBuffers( WindowPtr pWin, DDXPointRec ptOldOrg,
if (nbox > 1) {
/* reverse order of rects in each band */
pboxNew2 = (BoxPtr)xalloc(sizeof(BoxRec)*nbox);
pptNew2 = (DDXPointPtr)xalloc(sizeof(DDXPointRec)*nbox);
pboxNew2 = (BoxPtr)malloc(sizeof(BoxRec)*nbox);
pptNew2 = (DDXPointPtr)malloc(sizeof(DDXPointRec)*nbox);
if (!pboxNew2 || !pptNew2) {
xfree(pptNew2);
xfree(pboxNew2);
xfree(pptNew1);
xfree(pboxNew1);
free(pptNew2);
free(pboxNew2);
free(pptNew1);
free(pboxNew1);
return;
}
pboxBase = pboxNext = pbox;
@ -665,10 +665,10 @@ static void ATIDRIMoveBuffers( WindowPtr pWin, DDXPointRec ptOldOrg,
outf(SRC_OFF_PITCH, pATI->NewHW.dst_off_pitch);
outf(DST_OFF_PITCH, pATI->NewHW.src_off_pitch);
xfree(pptNew2);
xfree(pboxNew2);
xfree(pptNew1);
xfree(pboxNew1);
free(pptNew2);
free(pboxNew2);
free(pptNew1);
free(pboxNew1);
ATIDRIMarkSyncInt(pScreenInfo);
#endif
@ -1237,7 +1237,7 @@ Bool ATIDRIScreenInit( ScreenPtr pScreen )
if (xf86LoaderCheckSymbol("DRICreatePCIBusID")) {
pDRIInfo->busIdString = DRICreatePCIBusID(pATI->PCIInfo);
} else {
pDRIInfo->busIdString = xalloc( 64 );
pDRIInfo->busIdString = malloc( 64 );
sprintf( pDRIInfo->busIdString,
"PCI:%d:%d:%d",
PCI_DEV_BUS(pATI->PCIInfo),
@ -1283,7 +1283,7 @@ Bool ATIDRIScreenInit( ScreenPtr pScreen )
pATIDRIServer = (ATIDRIServerInfoPtr)
xnfcalloc( sizeof(ATIDRIServerInfoRec), 1 );
if ( !pATIDRIServer ) {
xfree( pATIDRI );
free( pATIDRI );
DRIDestroyInfoRec( pATI->pDRIInfo );
pATI->pDRIInfo = NULL;
xf86DrvMsg( pScreenInfo->scrnIndex, X_ERROR,
@ -1322,9 +1322,9 @@ Bool ATIDRIScreenInit( ScreenPtr pScreen )
pATI->have3DWindows = FALSE;
if ( !DRIScreenInit( pScreen, pDRIInfo, &pATI->drmFD ) ) {
xfree( pATIDRIServer );
free( pATIDRIServer );
pATI->pDRIServerInfo = NULL;
xfree( pDRIInfo->devPrivate );
free( pDRIInfo->devPrivate );
pDRIInfo->devPrivate = NULL;
DRIDestroyInfoRec( pDRIInfo );
pDRIInfo = NULL;
@ -1619,22 +1619,22 @@ void ATIDRICloseScreen( ScreenPtr pScreen )
/* De-allocate all DRI data structures */
if ( pATI->pDRIInfo ) {
if ( pATI->pDRIInfo->devPrivate ) {
xfree( pATI->pDRIInfo->devPrivate );
free( pATI->pDRIInfo->devPrivate );
pATI->pDRIInfo->devPrivate = NULL;
}
DRIDestroyInfoRec( pATI->pDRIInfo );
pATI->pDRIInfo = NULL;
}
if ( pATI->pDRIServerInfo ) {
xfree( pATI->pDRIServerInfo );
free( pATI->pDRIServerInfo );
pATI->pDRIServerInfo = NULL;
}
if ( pATI->pVisualConfigs ) {
xfree( pATI->pVisualConfigs );
free( pATI->pVisualConfigs );
pATI->pVisualConfigs = NULL;
}
if ( pATI->pVisualConfigsPriv ) {
xfree( pATI->pVisualConfigsPriv );
free( pATI->pVisualConfigsPriv );
pATI->pVisualConfigsPriv = NULL;
}
}

View File

@ -324,7 +324,7 @@ ATICreateI2CBusRec
if (!(pI2CBus = xf86CreateI2CBusRec()))
{
xf86DrvMsg(iScreen, X_WARNING, "Unable to allocate I2C Bus record.\n");
xfree(pATII2C);
free(pATII2C);
return NULL;
}
@ -348,7 +348,7 @@ ATICreateI2CBusRec
xf86DrvMsg(iScreen, X_WARNING,
"I2C bus %s initialisation failure.\n", BusName);
xf86DestroyI2CBusRec(pI2CBus, TRUE, TRUE);
xfree(pATII2C);
free(pATII2C);
return NULL;
}
@ -392,8 +392,8 @@ ATII2CFreeScreen
pATII2C = pI2CBus->DriverPrivate.ptr;
xf86DestroyI2CBusRec(pI2CBus, TRUE, TRUE);
xfree(pATII2C);
free(pATII2C);
}
xfree(ppI2CBus);
free(ppI2CBus);
}

View File

@ -43,11 +43,6 @@ ATILoadModules
{
pointer fbPtr = NULL;
/* Load shadow frame buffer code if needed */
if (pATI->OptionShadowFB &&
!xf86LoadSubModule(pScreenInfo, "shadowfb"))
return NULL;
/* Load depth-specific entry points */
switch (pATI->bitsPerPixel)
{
@ -90,9 +85,18 @@ ATILoadModules
#ifdef USE_XAA
/* Load XAA if needed */
if (!pATI->useEXA && pATI->OptionAccel &&
!xf86LoadSubModule(pScreenInfo, "xaa"))
return NULL;
!xf86LoadSubModule(pScreenInfo, "xaa")) {
xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
"Falling back to shadowfb\n");
pATI->OptionAccel = 0;
pATI->OptionShadowFB = 1;
}
#endif
/* Load shadow frame buffer code if needed */
if (pATI->OptionShadowFB &&
!xf86LoadSubModule(pScreenInfo, "shadowfb"))
return NULL;
return fbPtr;
}

View File

@ -686,7 +686,7 @@ Bool ATIMach64ExaInit(ScreenPtr pScreen)
pATI->RenderAccelEnabled ? "enabled" : "disabled");
if (!exaDriverInit(pScreen, pATI->pExa)) {
xfree(pATI->pExa);
free(pATI->pExa);
pATI->pExa = NULL;
return FALSE;
}

View File

@ -347,7 +347,7 @@ ATITVAddOnProbe
return TRUE;
}
xfree(pI2CDev);
free(pI2CDev);
return FALSE;
}

View File

@ -206,7 +206,7 @@ Mach64Probe(DriverPtr pDriver, int flags)
Mach64Chipsets, Mach64PciChipsets,
devSections, numDevSections,
pDriver, &usedChips);
xfree(devSections);
free(devSections);
if (numUsed <= 0)
return FALSE;
@ -238,7 +238,7 @@ Mach64Probe(DriverPtr pDriver, int flags)
}
}
xfree(usedChips);
free(usedChips);
return ProbeSuccess;
}

View File

@ -1467,8 +1467,8 @@ ATIMach64XVInitialiseAdaptor
if (pppAdaptor)
*pppAdaptor = ppAdaptor;
else {
xfree(ppAdaptor[0]);
xfree(ppAdaptor);
free(ppAdaptor[0]);
free(ppAdaptor);
}
return 1;
@ -1505,9 +1505,9 @@ ATIXVFreeAdaptorInfo
return;
while (nAdaptor > 0)
xfree(ppAdaptor[--nAdaptor]);
free(ppAdaptor[--nAdaptor]);
xfree(ppAdaptor);
free(ppAdaptor);
}
/*
@ -1552,6 +1552,9 @@ ATICloseXVideo
ATIPtr pATI
)
{
if (!pATI->Block1Base)
return;
ATIMach64StopVideo(pScreenInfo, pATI, TRUE);
REGION_UNINIT(pScreen, &pATI->VideoClip);

View File

@ -114,7 +114,7 @@ ATISwap
if (!pATIHW->frame_buffer)
{
pATIHW->frame_buffer =
(pointer)xalloc(pATIHW->nBank * pATIHW->nPlane * 0x00010000U);
(pointer)malloc(pATIHW->nBank * pATIHW->nPlane * 0x00010000U);
if (!pATIHW->frame_buffer)
{
xf86DrvMsg(iScreen, X_WARNING,

View File

@ -562,7 +562,7 @@ ATIPreInit
#endif
pVideo = xf86GetPciInfoForEntity(pATI->iEntity);
xfree(pEntity);
free(pEntity);
#ifndef XSERVER_LIBPCIACCESS
if (!pResources)

View File

@ -92,11 +92,11 @@ ATIPrintBIOS
static void
ATIPrintIndexedRegisters
(
const IOADDRESS Port,
const unsigned long Port,
const CARD8 StartIndex,
const CARD8 EndIndex,
const char *Name,
const IOADDRESS GenS1
const unsigned long GenS1
)
{
int Index;

View File

@ -373,7 +373,7 @@ ATIMach64ProbeIO
#ifndef AVOID_CPIO
static const IOADDRESS Mach64SparseIOBases[] = {
static const unsigned long Mach64SparseIOBases[] = {
0x02ECU,
0x01CCU,
0x01C8U

View File

@ -388,7 +388,7 @@ ATIScreenInit
{
pATI->FBBytesPerPixel = pATI->bitsPerPixel >> 3;
pATI->FBPitch = PixmapBytePad(pATI->displayWidth, pATI->depth);
if ((pATI->pShadow = xalloc(pATI->FBPitch * pScreenInfo->virtualY)))
if ((pATI->pShadow = malloc(pATI->FBPitch * pScreenInfo->virtualY)))
{
pFB = pATI->pShadow;
}
@ -628,7 +628,6 @@ ATICloseScreen
{
ScrnInfoPtr pScreenInfo = xf86Screens[iScreen];
ATIPtr pATI = ATIPTR(pScreenInfo);
Bool Closed = TRUE;
#ifdef XF86DRI_DEVEL
@ -647,7 +646,7 @@ ATICloseScreen
if (pATI->pExa)
{
exaDriverFini(pScreen);
xfree(pATI->pExa);
free(pATI->pExa);
pATI->pExa = NULL;
}
#endif
@ -658,35 +657,28 @@ ATICloseScreen
pATI->pXAAInfo = NULL;
}
#endif
if ((pScreen->CloseScreen = pATI->CloseScreen))
{
pATI->CloseScreen = NULL;
Closed = (*pScreen->CloseScreen)(iScreen, pScreen);
}
pATI->Closeable = FALSE;
if (pATI->pCursorInfo)
{
xf86DestroyCursorInfoRec(pATI->pCursorInfo);
pATI->pCursorInfo = NULL;
}
pATI->Closeable = FALSE;
ATILeaveGraphics(pScreenInfo, pATI);
#ifdef USE_XAA
if (!pATI->useEXA)
{
xfree(pATI->ExpansionBitmapScanlinePtr[1]);
free(pATI->ExpansionBitmapScanlinePtr[1]);
pATI->ExpansionBitmapScanlinePtr[0] = NULL;
pATI->ExpansionBitmapScanlinePtr[1] = NULL;
}
#endif
xfree(pATI->pShadow);
free(pATI->pShadow);
pATI->pShadow = NULL;
pScreenInfo->pScreen = NULL;
return Closed;
pScreen->CloseScreen = pATI->CloseScreen;
return (*pScreen->CloseScreen)(iScreen, pScreen);
}

View File

@ -234,19 +234,19 @@ typedef struct _ATIRec
* Processor I/O decoding definitions.
*/
CARD8 CPIODecoding;
IOADDRESS CPIOBase;
unsigned long CPIOBase;
#ifndef AVOID_CPIO
/*
* Processor I/O port definition for VGA.
*/
IOADDRESS CPIO_VGABase;
unsigned long CPIO_VGABase;
/*
* Processor I/O port definitions for VGA Wonder.
*/
IOADDRESS CPIO_VGAWonder;
unsigned long CPIO_VGAWonder;
#endif /* AVOID_CPIO */
@ -256,7 +256,7 @@ typedef struct _ATIRec
#ifndef AVOID_CPIO
IOADDRESS CPIO_DAC_MASK, CPIO_DAC_DATA, CPIO_DAC_READ, CPIO_DAC_WRITE,
unsigned long CPIO_DAC_MASK, CPIO_DAC_DATA, CPIO_DAC_READ, CPIO_DAC_WRITE,
CPIO_DAC_WAIT;
#endif /* AVOID_CPIO */

View File

@ -84,7 +84,11 @@ ATIUnmapVGA
if (!pATI->pBank)
return;
#ifndef XSERVER_LIBPCIACCESS
xf86UnMapVidMem(iScreen, pATI->pBank, 0x00010000U);
#else
(void) pci_device_unmap_legacy(pATI->PCIInfo, pATI->pBank, 0x00010000U);
#endif
pATI->pBank = NULL;
}
@ -219,8 +223,14 @@ ATIMapApertures
* No relocation, resizing, caching or write-combining of this
* aperture is supported. Hence, the hard-coded values here...
*/
pATI->pBank = xf86MapDomainMemory(iScreen, VIDMEM_MMIO_32BIT,
Tag, 0x000A0000U, 0x00010000U);
#ifndef XSERVER_LIBPCIACCESS
pATI->pBank = xf86MapDomainMemory(iScreen, VIDMEM_MMIO_32BIT,
Tag, 0x000A0000U, 0x00010000U);
#else
(void) pci_device_map_legacy(Tag, 0x000A0000U, 0x00010000U,
PCI_DEV_MAP_FLAG_WRITABLE,
&pATI->pBank);
#endif
if (!pATI->pBank)
return FALSE;