[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-savage: Changes to 'debian-unstable'



 ChangeLog                                |  154 +++++++++++++++++++++-
 README                                   |   20 ++
 configure.ac                             |    6 
 debian/README.source                     |   73 ++++++++++
 debian/changelog                         |    9 +
 debian/control                           |    2 
 debian/patches/01_gen_pci_ids.diff       |   39 -----
 debian/patches/series                    |    1 
 debian/xserver-xorg-video-savage.install |    1 
 debian/xsfbs/xsfbs.sh                    |   12 -
 man/savage.man                           |   35 ++++-
 src/savage_accel.c                       |   26 +++
 src/savage_dri.c                         |   42 +++++-
 src/savage_driver.c                      |  217 +++----------------------------
 src/savage_driver.h                      |    4 
 src/savage_exa.c                         |  128 +++++++++++++-----
 src/savage_video.c                       |  196 ++++++++++++++++++++++------
 17 files changed, 627 insertions(+), 338 deletions(-)

New commits:
commit 2347c3e039bbbbffdb93739616279f7a4d44a2a6
Author: Brice Goglin <bgoglin@debian.org>
Date:   Sun Jul 19 22:21:39 2009 +0200

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index 8d23efb..173b4d7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-xserver-xorg-video-savage (1:2.3.0-1) UNRELEASED; urgency=low
+xserver-xorg-video-savage (1:2.3.0-1) unstable; urgency=low
 
   * New upstream release.
   * Bump Standards-Version to 3.8.2.
   * Remove 01_gen_pci_ids.diff. The X server now uses an internal table to
     choose a driver during autoconfiguration.
 
- -- Brice Goglin <bgoglin@debian.org>  Sun, 19 Jul 2009 22:26:31 +0200
+ -- Brice Goglin <bgoglin@debian.org>  Sun, 19 Jul 2009 22:28:54 +0200
 
 xserver-xorg-video-savage (1:2.2.1-5) unstable; urgency=low
 

commit 1579cd7cb9872b96630bcffc590eea344dd0b7b1
Author: Brice Goglin <bgoglin@debian.org>
Date:   Sun Jul 19 22:28:15 2009 +0200

    Remove 01_gen_pci_ids.diff

diff --git a/debian/changelog b/debian/changelog
index bec1672..8d23efb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,8 +2,10 @@ xserver-xorg-video-savage (1:2.3.0-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * Bump Standards-Version to 3.8.2.
+  * Remove 01_gen_pci_ids.diff. The X server now uses an internal table to
+    choose a driver during autoconfiguration.
 
- -- Brice Goglin <bgoglin@debian.org>  Sun, 19 Jul 2009 22:17:50 +0200
+ -- Brice Goglin <bgoglin@debian.org>  Sun, 19 Jul 2009 22:26:31 +0200
 
 xserver-xorg-video-savage (1:2.2.1-5) unstable; urgency=low
 
diff --git a/debian/patches/01_gen_pci_ids.diff b/debian/patches/01_gen_pci_ids.diff
deleted file mode 100644
index d1d3811..0000000
--- a/debian/patches/01_gen_pci_ids.diff
+++ /dev/null
@@ -1,39 +0,0 @@
-Index: xserver-xorg-video-savage/src/savage.ids
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver-xorg-video-savage/src/savage.ids	2007-08-31 18:03:03.000000000 -0400
-@@ -0,0 +1,23 @@
-+53338A22
-+53338A20
-+53338A21
-+53339102
-+53338C10
-+53338C11
-+53338C12
-+53338C13
-+53338A25
-+53338A26
-+53338D01
-+53338D02
-+53338C22
-+53338C24
-+53338C26
-+53338C2A
-+53338C2B
-+53338C2C
-+53338C2D
-+53338C2E
-+53338C2F
-+53338D03
-+53338D04
-Index: xserver-xorg-video-savage/src/Makefile.am
-===================================================================
---- xserver-xorg-video-savage.orig/src/Makefile.am	2007-08-31 18:03:21.000000000 -0400
-+++ xserver-xorg-video-savage/src/Makefile.am	2007-08-31 18:04:03.000000000 -0400
-@@ -56,3 +56,6 @@
-          savage_dri.h \
-          savage_dripriv.h 
- endif
-+
-+pcidatadir = $(datadir)/xserver-xorg/pci
-+pcidata_DATA = savage.ids
diff --git a/debian/patches/series b/debian/patches/series
index dc070a7..d7eb8d6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1 @@
-01_gen_pci_ids.diff
 03_request_16bit_depth.diff
diff --git a/debian/xserver-xorg-video-savage.install b/debian/xserver-xorg-video-savage.install
index 8a9f4ba..614cfb4 100644
--- a/debian/xserver-xorg-video-savage.install
+++ b/debian/xserver-xorg-video-savage.install
@@ -1,3 +1,2 @@
 usr/lib/xorg/modules/drivers/*.so
 usr/share/man/man4/*
-usr/share/xserver-xorg/pci/*

commit ccb3c05dc4bc9afcd1b47538180420fd88c5fba4
Author: Brice Goglin <bgoglin@debian.org>
Date:   Sun Jul 19 22:18:24 2009 +0200

    Adding README.source means we can bump Standards-Version

diff --git a/debian/changelog b/debian/changelog
index 80d24f2..bec1672 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
 xserver-xorg-video-savage (1:2.3.0-1) UNRELEASED; urgency=low
 
   * New upstream release.
+  * Bump Standards-Version to 3.8.2.
 
- -- Brice Goglin <bgoglin@debian.org>  Sun, 19 Jul 2009 22:10:34 +0200
+ -- Brice Goglin <bgoglin@debian.org>  Sun, 19 Jul 2009 22:17:50 +0200
 
 xserver-xorg-video-savage (1:2.2.1-5) unstable; urgency=low
 
diff --git a/debian/control b/debian/control
index 7edc777..37edece 100644
--- a/debian/control
+++ b/debian/control
@@ -22,7 +22,7 @@ Build-Depends:
  automake,
  libtool,
  xutils-dev
-Standards-Version: 3.7.3
+Standards-Version: 3.8.2
 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-savage
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-savage.git
 

commit ee675ff795ad0e494749c34fcfd20b5e6e378637
Author: Brice Goglin <bgoglin@debian.org>
Date:   Sun Jul 19 22:11:49 2009 +0200

    New upstream release

diff --git a/ChangeLog b/ChangeLog
index 2af1d53..76d0280 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,147 @@
+commit 75ce40850ea2ce2ed7122cf62856dcf8022187d2
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Thu Jul 2 11:39:22 2009 -0400
+
+    savage 2.3.0
+
+commit a75f0eaba6cb907a6ca9e506858d41f9c6f66b8b
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Thu May 28 15:16:22 2009 -0400
+
+    Remove useless loader symbol lists.
+
+commit f2742755352d49a1ff4cbf9a1a5050a0a50e9e6b
+Author: Alex Villacís Lasso <a_villacis@palosanto.com>
+Date:   Sun Apr 12 16:07:06 2009 -0500
+
+    Do not use XAAGetCopyROP outside of XAA-specific code
+    
+    The DRI code attempts to use XAAGetCopyROP without checking whether XAA or EXA is in effect. This results in the server crashing with an undefined-symbol error when enabling EXA, then starting glxgears under GNOME/Metacity and attempting to drag the glxgears window.
+    
+    The EXA code happens to have a functional duplicate of the required code under the name SavageGetCopyROP(). This patch moves the code to savage_accel.c where it is now shared between EXA and the DRI code.
+    
+    It is disturbing that this has not been caught before.
+
+commit a5ad3e8f509ca07c429a43810cc3e2f80e70a1dc
+Author: Alex Villacís Lasso <alex@karlalex.palosanto.com>
+Date:   Sat Apr 11 19:12:31 2009 -0500
+
+    Implement use of Mastered Image Transfer through AGP for UploadToScreen EXA acceleration.
+    
+    Under some conditions (documented in this patch), the UploadToScreen implementation can make use of the AGP scratch buffer used for XVideo as a convenient source for Mastered Image Transfer. The previous implementation is still available as a fallback for when AGP acceleration is not possible. This requires the AGP scratch buffer to be persistent, so the XVideo code is also made aware of an existing DRM mapping for the scratch buffer.
+
+commit 0f4369c95b6ef948743c9b244709e454b8b8ef7f
+Author: Alex Villacís Lasso <alex@karlalex.palosanto.com>
+Date:   Sat Mar 14 21:34:48 2009 -0500
+
+    Fix crash by null pointer access when DRI is not available.
+
+commit 343b2f312b1e555f9d03a499ddbe4c9b33b3a6e5
+Author: Chris Ball <cjb@laptop.org>
+Date:   Fri Feb 27 10:55:58 2009 -0500
+
+    Revert EXA 3 build fix.
+    
+    The EXA developers have backed out this ABI bump.
+    
+    Signed-off-by: Chris Ball <cjb@laptop.org>
+
+commit 08692dd381dc6e98d484d5bffabcbd04ebf83df6
+Author: Chris Ball <cjb@laptop.org>
+Date:   Tue Feb 24 12:54:13 2009 -0500
+
+    configure: use AC_DEFINE instead of shell substitution
+    
+    (This is just cosmetic.)
+    
+    Signed-off-by: Chris Ball <cjb@laptop.org>
+
+commit 26f9e78d9b4f93f34792a31583cb5e8700c5ed52
+Author: Chris Ball <cjb@laptop.org>
+Date:   Tue Feb 24 11:54:06 2009 -0500
+
+    Build fix: EXA now requires -DEXA_DRIVER_KNOWN_MAJOR=3
+    
+    This driver doesn't use {Prepare,Finish}Access, so this is safe.
+    
+    Signed-off-by: Chris Ball <cjb@laptop.org>
+
+commit f4a3a1cd1bfbf6df583c913030ca2e9ce239d0c3
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Fri Jan 30 20:59:46 2009 -0800
+
+    Add README with pointers to mailing list, bugzilla & git repos
+
+commit 0fae48235841f05d7e52e61a2450835fdb8892b3
+Author: Tormod Volden <debian.tormod@gmail.com>
+Date:   Thu Jan 22 01:22:53 2009 -0500
+
+    Savage: Do not add panel modes when there is no panel
+    
+    SavageGetPanelInfo will reset DisplayType if the panel is not
+    active, so check again before calling SavageAddPanelMode so that
+    bogus modes are not added.
+    
+    This fixes startup failures in some cases, for instance when there is no
+    real panel and EDID is missing. The bogus sync ranges (typically 0 Hz)
+    would also block the default sync ranges from being applied.
+    
+    Thanks to Peter Belew for testing.
+    https://bugs.launchpad.net/bugs/294899
+
+commit 8241b8edaf1f100b0d9f308fdf921b2ab548f3dc
+Author: Alex Villacís Lasso <a_villacis@palosanto.com>
+Date:   Fri Jan 16 16:22:42 2009 -0500
+
+    EXA: UTS Optimization
+    
+    use one memcpy per scanline instead of a conditional inside
+    a loop for every dword
+
+commit 50bcd4bd6f32ed2fd9631b3607a203a187b2e4a2
+Author: Alex Villacís Lasso <a_villacis@palosanto.com>
+Date:   Fri Jan 16 16:20:23 2009 -0500
+
+    Add AGPforXv Option
+    
+    Instructs the BCI Xv pixel formatter to use AGP memory as a scratch buffer
+    for Xv image upload
+
+commit 91d5c09c891c944ae4188ecac607ebdb44ed81d7
+Author: Alex Villacís Lasso <a_villacis@palosanto.com>
+Date:   Fri Jan 16 16:18:25 2009 -0500
+
+    YUV packed buffer and YV12 planar buffer (if required) are now separate allocations
+    
+    BCI-mediated planar conversion can now use arbitrary offset in framebuffer as planar
+    buffer, no longer restricted to space past packed buffer.
+
+commit 9bcbdcc0e2535ea1e7c5e234b07d0a4be173a78f
+Author: Alex Villacís Lasso <a_villacis@palosanto.com>
+Date:   Fri Jan 16 16:16:46 2009 -0500
+
+    Document the existence of the IgnoreEDID option
+
+commit 0cf24c6f66d4832180b2246c20c74dec031fe45f
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Fri Jan 9 16:33:29 2009 -0800
+
+    Remove xorgconfig & xorgcfg from See Also list in man page
+
+commit aea0496f662fa25b40c59e65a50daf58a8a0d6d0
+Author: Alex Villacís Lasso <a_villacis@palosanto.com>
+Date:   Thu Nov 6 16:10:30 2008 -0500
+
+    Fix EXA Copy
+    
+    patch from Alex Villacís Lasso with minor updates from me
+
+commit e6b6506a0e77e1198d6a83eecddf342b746f31f4
+Author: Alex Villacís Lasso <a_villacis@palosanto.com>
+Date:   Thu Nov 6 14:11:49 2008 -0500
+
+    Bug #18378: Use xfVillKeyHelperDrawable if available.
+
 commit de3350e7937240686a90e51243e701b51a7f5249
 Author: Adam Jackson <ajax@redhat.com>
 Date:   Wed May 21 16:04:31 2008 -0400
@@ -5,7 +149,7 @@ Date:   Wed May 21 16:04:31 2008 -0400
     no, really, savage 2.2.1
 
 commit 5c0617874a49533f16b97277cd42584abb80f720
-Merge: 97a9d24... a01c9d1...
+Merge: 97a9d24 a01c9d1
 Author: Adam Jackson <ajax@redhat.com>
 Date:   Wed May 21 16:03:25 2008 -0400
 
@@ -167,7 +311,7 @@ Date:   Fri Sep 14 20:13:33 2007 -0400
     should fix bug 12260
 
 commit 53a2088c5590bb96ce9a7ad30d908c7ea1d54027
-Merge: 7da1a03... 0287432...
+Merge: 7da1a03 0287432
 Author: James Cloos <cloos@jhcloos.com>
 Date:   Mon Sep 3 06:08:13 2007 -0400
 
@@ -192,7 +336,7 @@ Date:   Thu Aug 30 17:53:11 2007 -0700
     Update to use new libpciaccess interfaces for mapping with MTRR support.
 
 commit 1eec792391d9ce9127817107100a53382f167749
-Merge: 4a87cab... ffc5ba7...
+Merge: 4a87cab ffc5ba7
 Author: Ian Romanick <idr@us.ibm.com>
 Date:   Thu Aug 23 18:21:37 2007 -0700
 
@@ -215,7 +359,7 @@ Date:   Wed Aug 22 12:38:14 2007 -0700
     testing, so it may take another hour or two.
 
 commit 68ceead721aeb75b9faed6297407a320a83499e4
-Merge: da23218... bf5e2a5...
+Merge: da23218 bf5e2a5
 Author: Ian Romanick <idr@us.ibm.com>
 Date:   Wed Aug 22 11:45:43 2007 -0700
 
@@ -334,7 +478,7 @@ Date:   Wed Jan 3 21:50:22 2007 -0500
     never maps it again.
 
 commit 36c444e80324c82f7d02d9d95372123c923336a0
-Merge: f2191d4... e361a95...
+Merge: f2191d4 e361a95
 Author: Ian Romanick <idr@us.ibm.com>
 Date:   Mon Dec 11 13:16:53 2006 -0800
 
diff --git a/debian/changelog b/debian/changelog
index d9ac365..80d24f2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-savage (1:2.3.0-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Brice Goglin <bgoglin@debian.org>  Sun, 19 Jul 2009 22:10:34 +0200
+
 xserver-xorg-video-savage (1:2.2.1-5) unstable; urgency=low
 
   * Merge bugfix from 1:2.2.1-2.lenny1 stable update.

commit 75ce40850ea2ce2ed7122cf62856dcf8022187d2
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu Jul 2 11:39:22 2009 -0400

    savage 2.3.0

diff --git a/configure.ac b/configure.ac
index 80c91bc..33be4d8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
 
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-savage],
-        2.2.1, 
+        2.3.0, 
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         xf86-video-savage)
 

commit 8f72294ada477f003888b6776883c1dd98289f3f
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Jun 3 03:37:37 2009 +0200

    Kill custom readlink function
    
    This was needed for very, very old versions of debianutils.
    Closes: #498890

diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh
index 197eb74..781826f 100644
--- a/debian/xsfbs/xsfbs.sh
+++ b/debian/xsfbs/xsfbs.sh
@@ -303,16 +303,6 @@ EOF
   fi
 }
 
-# we require a readlink command or shell function
-if ! which readlink > /dev/null 2>&1; then
-  message "The readlink command was not found.  Please install version" \
-          "1.13.1 or later of the debianutils package."
-  readlink () {
-    # returns what symlink in $1 actually points to
-    perl -e '$l = shift; exit 1 unless -l $l; $r = readlink $l; exit 1 unless $r; print "$r\n"' "$1"
-  }
-fi
-
 check_symlink () {
   # syntax: check_symlink symlink
   #

commit a75f0eaba6cb907a6ca9e506858d41f9c6f66b8b
Author: Adam Jackson <ajax@redhat.com>
Date:   Thu May 28 15:16:22 2009 -0400

    Remove useless loader symbol lists.

diff --git a/src/savage_driver.c b/src/savage_driver.c
index 4115fb0..ec2083c 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -339,178 +339,6 @@ _X_EXPORT DriverRec SAVAGE =
 #endif
 };
 
-
-
-static const char *vgaHWSymbols[] = {
-    "vgaHWBlankScreen",
-    "vgaHWCopyReg",
-    "vgaHWGetHWRec",
-    "vgaHWGetIOBase",
-    "vgaHWGetIndex",
-    "vgaHWInit",
-    "vgaHWLock",
-    "vgaHWProtect",
-    "vgaHWRestore",
-    "vgaHWSave",
-    "vgaHWSaveScreen",
-    "vgaHWSetMmioFuncs",
-    "vgaHWSetStdFuncs",
-    "vgaHWUnmapMem",
-    "vgaHWddc1SetSpeedWeak",
-#if 0
-    "vgaHWFreeHWRec",
-    "vgaHWMapMem",
-    "vgaHWUnlock",
-#endif
-    NULL
-};
-
-#ifdef XF86DRI
-static const char *drmSymbols[] = {
-    "drmAvailable",
-    "drmAddBufs",
-    "drmAddMap",
-    "drmCtlInstHandler",
-    "drmGetInterruptFromBusID",
-    "drmFreeVersion",
-    "drmGetVersion",
-    "drmMap",
-    "drmUnmap",
-    "drmMapBufs",
-    "drmUnmapBufs",
-    "drmAgpAcquire",
-    "drmAgpRelease",
-    "drmAgpEnable",
-    "drmAgpAlloc",
-    "drmAgpFree",
-    "drmAgpBind",
-    "drmAgpUnbind",
-    "drmAgpGetMode",
-    "drmAgpBase",
-    "drmAgpSize",
-    "drmAgpVendorId",
-    "drmAgpDeviceId",
-    "drmMGAInitDMA",
-    "drmMGACleanupDMA",
-    "drmMGAFlushDMA",
-    "drmMGAEngineReset",
-    NULL
-};
-
-static const char *driSymbols[] = {
-    "DRIGetDrawableIndex",
-    "DRIFinishScreenInit",
-    "DRIDestroyInfoRec",
-    "DRICloseScreen",
-    "DRIDestroyInfoRec",
-    "DRIScreenInit",
-    "DRIDestroyInfoRec",
-    "DRICreateInfoRec",
-    "DRILock",
-    "DRIUnlock",
-    "DRIGetSAREAPrivate",
-    "DRIGetContext",
-    "DRIQueryVersion",
-    "DRIAdjustFrame",
-    "DRIOpenFullScreen",
-    "DRICloseFullScreen",
-    "GlxSetVisualConfigs",
-    NULL
-};
-#endif
-
-
-static const char *ramdacSymbols[] = {
-    "xf86CreateCursorInfoRec",
-#if 0
-    "xf86DestroyCursorInfoRec",
-#endif
-    "xf86InitCursor",
-    NULL
-};
-
-static const char *int10Symbols[] = {
-    "xf86ExecX86int10",
-    "xf86Int10AllocPages",
-    "xf86int10Addr",
-    "xf86Int10FreePages"
-};
-
-static const char *vbeSymbols[] = {
-    "VBEInit",
-    "vbeDoEDID",
-#if 0
-    "vbeFree",
-#endif
-    NULL
-};
-
-static const char *vbeOptSymbols[] = {
-    "vbeModeInit",
-    "VBESetVBEMode",
-    "VBEGetVBEInfo",
-    "VBEFreeVBEInfo",
-    NULL
-};
-
-static const char *ddcSymbols[] = {
-    "xf86DoEDID_DDC1",
-    "xf86DoEDID_DDC2",
-    "xf86PrintEDID",
-    "xf86SetDDCproperties",
-    NULL
-};
-
-static const char *i2cSymbols[] = {
-    "xf86CreateI2CBusRec",
-    "xf86I2CBusInit",
-    "xf86CreateI2CDevRec",
-    "xf86I2CDevInit",
-    "xf86I2CWriteByte",
-    "xf86I2CWriteBytes",
-    "xf86I2CReadByte",
-    "xf86I2CReadBytes",
-    "xf86I2CWriteRead",
-    "xf86DestroyI2CDevRec",
-    NULL
-};
-
-static const char *xaaSymbols[] = {
-    "XAAGetCopyROP",
-    "XAAGetCopyROP_PM",
-    "XAACreateInfoRec",
-    "XAADestroyInfoRec",
-    "XAAFillSolidRects",
-    "XAAHelpPatternROP",
-    "XAAHelpSolidROP", 
-    "XAAInit",
-    "XAAScreenIndex",
-    NULL
-};
-
-static const char *exaSymbols[] = {
-    "exaDriverAlloc",
-    "exaDriverInit",
-    "exaDriverFini",
-    "exaOffscreenAlloc",
-    "exaOffscreenFree",
-    "exaGetPixmapOffset",
-    "exaGetPixmapPitch",
-    "exaGetPixmapSize",
-    NULL
-};
-
-static const char *shadowSymbols[] = {
-    "ShadowFBInit",
-    NULL
-};
-
-static const char *fbSymbols[] = {
-    "fbPictureInit",
-    "fbScreenInit",
-    NULL
-};
-
 #ifdef XFree86LOADER
 
 static MODULESETUPPROTO(SavageSetup);
@@ -542,14 +370,6 @@ static pointer SavageSetup(pointer module, pointer opts, int *errmaj,
     if (!setupDone) {
 	setupDone = TRUE;
 	xf86AddDriver(&SAVAGE, module, 1);
-	LoaderRefSymLists(vgaHWSymbols, fbSymbols, ramdacSymbols, 
-			  xaaSymbols,
-			  exaSymbols,
-			  shadowSymbols, vbeSymbols, vbeOptSymbols,
-#ifdef XF86DRI
-                          drmSymbols, driSymbols,
-#endif
-			  int10Symbols, i2cSymbols, ddcSymbols, NULL);
 	return (pointer) 1;
     } else {
 	if (errmaj)
@@ -1052,7 +872,6 @@ static void SavageDoDDC(ScrnInfoPtr pScrn)
     /* Do the DDC dance. */ /* S3/VIA's DDC code */
     ddc = xf86LoadSubModule(pScrn, "ddc");
     if (ddc) {
-        xf86LoaderReqSymLists(ddcSymbols, NULL);
         switch( psav->Chipset ) {
             case S3_SAVAGE3D:
             case S3_SAVAGE_MX:
@@ -1074,7 +893,6 @@ static void SavageDoDDC(ScrnInfoPtr pScrn)
         if (!SavageDDC1(pScrn->scrnIndex)) {
             /* DDC1 failed,switch to DDC2 */
             if (xf86LoadSubModule(pScrn, "i2c")) {
-                xf86LoaderReqSymLists(i2cSymbols,NULL);
                 if (SavageI2CInit(pScrn)) {
                     unsigned char tmp;
                     xf86MonPtr pMon;
@@ -1276,7 +1094,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
     if (!xf86LoadSubModule(pScrn, "vgahw"))
 	return FALSE;
 
-    xf86LoaderReqSymLists(vgaHWSymbols, NULL);
     if (!vgaHWGetHWRec(pScrn))
 	return FALSE;
 
@@ -1579,7 +1396,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
     psav->EntityIndex = pEnt->index;
 
     if (xf86LoadSubModule(pScrn, "vbe")) {
-	xf86LoaderReqSymLists(vbeSymbols, NULL);
 	psav->pVbe = VBEInit(NULL, pEnt->index);
     }
 
@@ -2313,16 +2129,11 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
 	return FALSE;
     }
 
-    xf86LoaderReqSymLists(fbSymbols, NULL);
-
     if( !psav->NoAccel ) {
-
         char *modName = NULL;
-        const char **symNames = NULL;
 
 	if (psav->useEXA) {
 	    modName = "exa";
-	    symNames = exaSymbols;
 	    XF86ModReqInfo req;
 	    int errmaj, errmin;
 	    memset(&req, 0, sizeof(req));
@@ -2339,7 +2150,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
 	    }
 	} else {
 	    modName = "xaa";
-	    symNames = xaaSymbols;
 	    if( !xf86LoadSubModule(pScrn, modName) ) {
 	    	SavageFreeRec(pScrn);
 	    	vbeFree(psav->pVbe);
@@ -2347,9 +2157,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
 	    	return FALSE;
 	    } 
 	}
-
-	xf86LoaderReqSymLists(symNames, NULL );
-
     }
 
     if (psav->hwcursor) {
@@ -2359,7 +2166,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
 	    psav->pVbe = NULL;
 	    return FALSE;
 	}
-	xf86LoaderReqSymLists(ramdacSymbols, NULL);
     }
 
     if (psav->shadowFB) {
@@ -2369,7 +2175,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
 	    psav->pVbe = NULL;
 	    return FALSE;
 	}
-	xf86LoaderReqSymLists(shadowSymbols, NULL);
     }
     vbeFree(psav->pVbe);
 
@@ -4740,7 +4545,6 @@ SavageProbeDDC(ScrnInfoPtr pScrn, int index)
     vbeInfoPtr pVbe;
     
     if (xf86LoadSubModule(pScrn, "vbe")) {
-	xf86LoaderReqSymLists(vbeSymbols, NULL);
 	pVbe = VBEInit(NULL, index);
 	ConfiguredMonitor = vbeDoEDID(pVbe, NULL);
 	vbeFree(pVbe);

commit f2742755352d49a1ff4cbf9a1a5050a0a50e9e6b
Author: Alex Villacís Lasso <a_villacis@palosanto.com>
Date:   Sun Apr 12 16:07:06 2009 -0500

    Do not use XAAGetCopyROP outside of XAA-specific code
    
    The DRI code attempts to use XAAGetCopyROP without checking whether XAA or EXA is in effect. This results in the server crashing with an undefined-symbol error when enabling EXA, then starting glxgears under GNOME/Metacity and attempting to drag the glxgears window.
    
    The EXA code happens to have a functional duplicate of the required code under the name SavageGetCopyROP(). This patch moves the code to savage_accel.c where it is now shared between EXA and the DRI code.
    
    It is disturbing that this has not been caught before.

diff --git a/src/savage_accel.c b/src/savage_accel.c
index 450b402..73c2d90 100644
--- a/src/savage_accel.c
+++ b/src/savage_accel.c
@@ -1537,6 +1537,32 @@ SavageInitAccel(ScreenPtr pScreen)
     	return SavageXAAInit(pScreen);
 }
 
+int SavageGetCopyROP(int rop) {
+
+    int ALUCopyROP[16] =
+    {
+       0x00, /*ROP_0 GXclear */
+       0x88, /*ROP_DSa GXand */
+       0x44, /*ROP_SDna GXandReverse */
+       0xCC, /*ROP_S GXcopy */
+       0x22, /*ROP_DSna GXandInverted */
+       0xAA, /*ROP_D GXnoop */
+       0x66, /*ROP_DSx GXxor */
+       0xEE, /*ROP_DSo GXor */
+       0x11, /*ROP_DSon GXnor */
+       0x99, /*ROP_DSxn GXequiv */
+       0x55, /*ROP_Dn GXinvert*/
+       0xDD, /*ROP_SDno GXorReverse */
+       0x33, /*ROP_Sn GXcopyInverted */
+       0xBB, /*ROP_DSno GXorInverted */
+       0x77, /*ROP_DSan GXnand */
+       0xFF, /*ROP_1 GXset */
+    };
+
+    return (ALUCopyROP[rop]);
+
+}
+
 /* Routines for debugging. */
 
 
diff --git a/src/savage_dri.c b/src/savage_dri.c
index 216c915..190e8ee 100644
--- a/src/savage_dri.c
+++ b/src/savage_dri.c
@@ -1578,6 +1578,9 @@ SAVAGEDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
 	psav->AccelInfoRec->NeedToSync = TRUE;
 }
 
+/* Definition in savage_accel.c */
+int SavageGetCopyROP(int rop);
+
 static void 
 SAVAGEDRISetupForScreenToScreenCopy(
     ScrnInfoPtr pScrn,
@@ -1591,7 +1594,7 @@ SAVAGEDRISetupForScreenToScreenCopy(
     int cmd =0;
 
     cmd = BCI_CMD_RECT | BCI_CMD_DEST_PBD | BCI_CMD_SRC_PBD_COLOR;
-    BCI_CMD_SET_ROP( cmd, XAAGetCopyROP(rop) );
+    BCI_CMD_SET_ROP( cmd, SavageGetCopyROP(rop) );
     if (transparency_color != -1)
         cmd |= BCI_CMD_SEND_COLOR | BCI_CMD_SRC_TRANSPARENT;
 
diff --git a/src/savage_exa.c b/src/savage_exa.c
index 08524f0..3fc8f30 100644
--- a/src/savage_exa.c
+++ b/src/savage_exa.c
@@ -69,31 +69,8 @@ SavageDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst,
 #define	GXset	0xFF
 #endif
 
-static int SavageGetCopyROP(int rop) {
-
-    int ALUCopyROP[16] =
-    {
-       0x00, /*ROP_0 GXclear */
-       0x88, /*ROP_DSa GXand */
-       0x44, /*ROP_SDna GXandReverse */
-       0xCC, /*ROP_S GXcopy */
-       0x22, /*ROP_DSna GXandInverted */
-       0xAA, /*ROP_D GXnoop */
-       0x66, /*ROP_DSx GXxor */
-       0xEE, /*ROP_DSo GXor */
-       0x11, /*ROP_DSon GXnor */
-       0x99, /*ROP_DSxn GXequiv */
-       0x55, /*ROP_Dn GXinvert*/
-       0xDD, /*ROP_SDno GXorReverse */
-       0x33, /*ROP_Sn GXcopyInverted */
-       0xBB, /*ROP_DSno GXorInverted */
-       0x77, /*ROP_DSan GXnand */
-       0xFF, /*ROP_1 GXset */
-    };
-
-    return (ALUCopyROP[rop]);
-
-}
+/* Definition moved to savage_accel.c */
+int SavageGetCopyROP(int rop);
 
 static int SavageGetSolidROP(int rop) {
 

commit a5ad3e8f509ca07c429a43810cc3e2f80e70a1dc
Author: Alex Villacís Lasso <alex@karlalex.palosanto.com>
Date:   Sat Apr 11 19:12:31 2009 -0500

    Implement use of Mastered Image Transfer through AGP for UploadToScreen EXA acceleration.
    
    Under some conditions (documented in this patch), the UploadToScreen implementation can make use of the AGP scratch buffer used for XVideo as a convenient source for Mastered Image Transfer. The previous implementation is still available as a fallback for when AGP acceleration is not possible. This requires the AGP scratch buffer to be persistent, so the XVideo code is also made aware of an existing DRM mapping for the scratch buffer.

diff --git a/man/savage.man b/man/savage.man
index 822a233..a1cbb1e 100644
--- a/man/savage.man
+++ b/man/savage.man
@@ -180,7 +180,7 @@ and twister (use BCI for Xv); off for savage4 (do not use the BCI for Xv).
 Instructs the BCI Xv pixel formatter to use AGP memory as a scratch buffer.
 Ordinarily the BCI formatter uses a an area in framebuffer memory to hold 
 YV12 planar data to be converted for display. This requires a somewhat expensive
-upload of YV12 data to framebuffer memory. The \*qAGPforXv\*q causes the BCI
+upload of YV12 data to framebuffer memory. The \*qAGPforXv\*q option causes the BCI
 formatter to place the YV12 data in AGP memory instead, which can be uploaded
 faster than the framebuffer. Use of this option cuts upload overhead by 25%
 according to benchmarks. This option also smooths out most of the shearing
@@ -189,6 +189,10 @@ present when using BCI for pixel conversion. Currently this option is
 and is disabled by default. Video width restrictions that apply to \*qBCIforXv\*q 
 also apply here. Only valid when \*qDRI\*q and \*qBCIforXv\*q are both active, 
 and only on AGP chipsets. Default: \*qoff\*q.
+.br
+If \*qAccelMethod\*q is set to \*qEXA\*q and \*qAGPforXv\*q is enabled, then the
+driver will also attempt to reuse the AGP scratch buffer for UploadToScreen 
+acceleration.
 .TP 
 .BI "Option \*qAGPMode\*q \*q" integer \*q
 Set AGP data transfer rate.
diff --git a/src/savage_exa.c b/src/savage_exa.c
index 538e000..08524f0 100644
--- a/src/savage_exa.c
+++ b/src/savage_exa.c
@@ -463,10 +463,73 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int
     BCI_GET_PTR;
     int i, j, dwords, queue, Bpp;
     unsigned int cmd;
-    CARD32 * srcp; 
+    CARD32 * srcp;
+    unsigned int dst_pitch;
+    unsigned int dst_yoffset;
+    int agp_possible;
     
+    exaWaitSync(pDst->drawable.pScreen);
+
     Bpp = pDst->drawable.bitsPerPixel / 8;
 
+    /* Test for conditions for AGP Mastered Image Transfer (MIT). AGP memory
+       needs to be available, the XVideo AGP needs to be enabled, the 
+       framebuffer destination must be a multiple of 32 bytes, and the source
+       pitch must span the entirety of the destination pitch. This last 
+       condition allows the code to consider this upload as equivalent to a 
+       plain memcpy() call. */
+    dst_pitch = exaGetPixmapPitch(pDst);
+    dst_yoffset = exaGetPixmapOffset(pDst) + y * dst_pitch;
+    agp_possible = 
+        (!psav->IsPCI && psav->drmFD > 0 && psav->DRIServerInfo != NULL &&
+        psav->DRIServerInfo->agpXVideo.size > 0 &&
+        x == 0 && src_pitch == dst_pitch && w * Bpp == dst_pitch &&
+        (dst_yoffset & 0x1f) == 0);
+
+    if (agp_possible) {
+      	SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
+        if (pSAVAGEDRIServer->agpXVideo.map != NULL || 
+            0 <= drmMap( psav->drmFD,
+		pSAVAGEDRIServer->agpXVideo.handle,
+		pSAVAGEDRIServer->agpXVideo.size,
+		&pSAVAGEDRIServer->agpXVideo.map)) {
+        
+            unsigned char * agpMap = pSAVAGEDRIServer->agpXVideo.map;
+            unsigned int agpOffset = drmAgpBase(psav->drmFD) + pSAVAGEDRIServer->agpXVideo.offset;
+            unsigned int bytesTotal = dst_pitch * h;            
+
+            while (bytesTotal > 0) {
+                unsigned int bytesTransfer = 
+                    (bytesTotal > pSAVAGEDRIServer->agpXVideo.size) 
+                    ? pSAVAGEDRIServer->agpXVideo.size 
+                    : bytesTotal;
+                unsigned int qwordsTransfer = bytesTransfer >> 3;
+
+                /* Copy source into AGP buffer */
+                memcpy(agpMap, src, bytesTransfer);
+                
+                psav->WaitQueue(psav,6);
+                BCI_SEND(BCI_SET_REGISTER | BCI_SET_REGISTER_COUNT(2) | 0x51);
+                BCI_SEND(agpOffset | 3);        /* Source buffer in AGP memory */
+                BCI_SEND(dst_yoffset);          /* Destination buffer in framebuffer */
+
+                BCI_SEND(BCI_SET_REGISTER | BCI_SET_REGISTER_COUNT(1) | 0x50);
+                BCI_SEND(0x00000002 | ((qwordsTransfer - 1) << 3)); /* Select MIT, sysmem to framebuffer */
+
+                /* I want to wait here for any reads from AGP memory and any 
+                   framebuffer writes performed by the MIT to stop. */
+                BCI_SEND(0xC0000000 | ((0x08 | 0x01) << 16));
+
+                bytesTotal -= bytesTransfer;
+                src += bytesTransfer;
+                dst_yoffset += bytesTransfer;
+            }
+            exaMarkSync(pDst->drawable.pScreen);
+            return TRUE;
+        }
+    }
+
+    /* If we reach here, AGP transfer is not possible, or failed to drmMap() */
     psav->sbd_offset = exaGetPixmapOffset(pDst);
     psav->sbd_high = SavageSetBD(psav, pDst);
 
@@ -515,7 +578,7 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int
     }
 
     /*exaWaitSync(pDst->drawable.pScreen);*/
-
+    exaMarkSync(pDst->drawable.pScreen);
     return TRUE;
 }
 
diff --git a/src/savage_video.c b/src/savage_video.c
index bccb801..cf51ba0 100644
--- a/src/savage_video.c
+++ b/src/savage_video.c
@@ -1048,8 +1048,12 @@ SavageStopVideo(ScrnInfoPtr pScrn, pointer data, Bool shutdown)
 
 	if (pPriv->agpBufferMap != NULL) {
 	    SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
-	    drmUnmap(pPriv->agpBufferMap, pSAVAGEDRIServer->agpXVideo.size);
-	    pSAVAGEDRIServer->agpXVideo.map = NULL;
+
+            /* agpXVideo is reused to implement UploadToScreen in EXA */            
+            if (!psav->useEXA) {
+	        drmUnmap(pPriv->agpBufferMap, pSAVAGEDRIServer->agpXVideo.size);
+	        pSAVAGEDRIServer->agpXVideo.map = NULL;
+            }
 	    pPriv->agpBufferMap = NULL;
 	    pPriv->agpBufferOffset = 0;
 	}
@@ -1971,7 +1975,8 @@ SavagePutImage(
         
 	pPriv->tried_agp = TRUE;
 	if (pSAVAGEDRIServer->agpXVideo.size >= max(new_size, planarFrameSize)) {
-	    if ( drmMap( psav->drmFD,
+	    if (pSAVAGEDRIServer->agpXVideo.map == NULL &&
+	        drmMap( psav->drmFD,
 		pSAVAGEDRIServer->agpXVideo.handle,
 		pSAVAGEDRIServer->agpXVideo.size,
 		&pSAVAGEDRIServer->agpXVideo.map ) < 0 ) {

commit 7deebf983f53c505bc25171ab77fdc408f250a6e
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue May 26 15:58:19 2009 +0200

    xsfbs: don't run dpkg --print-installation-architecture
    
    This is deprecated in new dpkg, and had no users anyway.

diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh
index 8840ff9..197eb74 100644
--- a/debian/xsfbs/xsfbs.sh


Reply to: