configure.ac         |    6 -
 src/Makefile.am      |    1 
 src/savage_accel.c   |    4 -
 src/savage_bci.h     |    7 --
 src/savage_common.h  |    6 -
 src/savage_dri.c     |  170 +++++++++++++++------------------------------------
 src/savage_dri.h     |    6 -
 src/savage_dripriv.h |    6 -
 src/savage_driver.c  |   46 +++++++------
 src/savage_driver.h  |   11 ++-
 src/savage_drm.h     |   12 +--
 src/savage_exa.c     |    8 +-
 src/savage_hwmc.c    |    1 
 src/savage_i2c.c     |    5 -
 src/savage_pciids.h  |   55 ++++++++++++++++
 src/savage_regs.h    |    6 -
 src/savage_sarea.h   |   12 +--
 src/savage_streams.h |    7 --
 src/savage_vbe.h     |    6 -
 src/savage_video.c   |   12 +--
 20 files changed, 187 insertions(+), 200 deletions(-)

New commits:
commit 63dd44674a28263c5d8d6aec8b72e95f94d3fe6c
Author: Alan Coopersmith <alan.coopersm...@oracle.com>
Date:   Fri Mar 23 19:46:12 2012 -0700

    xf86-video-savage 2.3.4
    
    Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com>

diff --git a/configure.ac b/configure.ac
index 2db5746..d82af14 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-savage],
-        [2.3.3],
+        [2.3.4],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-savage])
 AC_CONFIG_SRCDIR([Makefile.am])

commit dfcc325f55d580eb630f3b236eadf99f6b7d6ad6
Author: Alan Coopersmith <alan.coopersm...@oracle.com>
Date:   Fri Mar 23 19:38:07 2012 -0700

    Add savage_pciids.h to src/Makefile.am to fix distcheck
    
    Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com>

diff --git a/src/Makefile.am b/src/Makefile.am
index 8ae8051..e980c1a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -40,6 +40,7 @@ savage_drv_la_SOURCES = \
          savage_driver.h \
          savage_drm.h \
          savage_i2c.c \
+         savage_pciids.h \
          savage_regs.h \
          savage_sarea.h \
          savage_shadow.c \

commit c4022796ec69bb3223d435d8442f9168aebe9c3d
Author: Peter Hutterer <peter.hutte...@who-t.net>
Date:   Tue Jan 17 15:35:39 2012 +1000

    Untangle XF86DRI from the driver-specific DRI define
    
    XF86DRI is defined by xorg-server.h, so --disable-dri in the driver
    itself does exactly nothing other than not fill in the CFLAGS and thus stop
    the driver from compiling.
    
    Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
    Signed-off-by: Tormod Volden <debian.tor...@gmail.com>

diff --git a/configure.ac b/configure.ac
index 6836350..2db5746 100644
--- a/configure.ac
+++ b/configure.ac
@@ -99,8 +99,8 @@ AC_MSG_RESULT([$DRI])
 AM_CONDITIONAL(DRI, test x$DRI = xyes)
 if test "$DRI" = yes; then
         PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto])
-        AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
-        AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
+        AC_DEFINE(SAVAGEDRI,1,[Enable DRI driver support])
+        AC_DEFINE(SAVAGEDRI_DEVEL,1,[Enable developmental DRI driver support])
 fi
 
 save_CFLAGS="$CFLAGS"
diff --git a/src/savage_accel.c b/src/savage_accel.c
index 24e0a22..0920e22 100644
--- a/src/savage_accel.c
+++ b/src/savage_accel.c
@@ -24,7 +24,7 @@
 #include "savage_bci.h"
 #include "savage_streams.h"
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
 #define _XF86DRI_SERVER_
 #include "savage_dri.h"
 #endif
@@ -1277,7 +1277,7 @@ SavageInitAccel(ScreenPtr pScreen)
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
     SavagePtr psav = SAVPTR(pScrn);
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if (psav->directRenderingEnabled) {
         SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
         int cpp = pScrn->bitsPerPixel / 8;
diff --git a/src/savage_dri.c b/src/savage_dri.c
index 414e724..38d2a86 100644
--- a/src/savage_dri.c
+++ b/src/savage_dri.c
@@ -26,7 +26,7 @@
 #include "config.h"
 #endif
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
 
 #include "xf86.h"
 #include "xf86_OSproc.h"
diff --git a/src/savage_driver.c b/src/savage_driver.c
index 447beec..5e4ca0e 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -67,7 +67,7 @@
 
 #define TRANSPARENCY_KEY 0xff;
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
 #define _XF86DRI_SERVER_
 #include "savage_dri.h"
 #include "savage_sarea.h"
@@ -130,7 +130,7 @@ static unsigned int SavageDDC1Read(ScrnInfoPtr pScrn);
 static void SavageProbeDDC(ScrnInfoPtr pScrn, int index);
 static void SavageGetTvMaxSize(SavagePtr psav);
 static Bool SavagePanningCheck(ScrnInfoPtr pScrn, DisplayModePtr pMode);
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
 static Bool SavageCheckAvailableRamFor3D(ScrnInfoPtr pScrn);
 #endif
 static void SavageResetStreams(ScrnInfoPtr pScrn);
@@ -315,7 +315,7 @@ static const OptionInfoRec SavageOptions[] =
     { OPTION_BCI_FOR_XV,   "BCIforXv",    OPTV_BOOLEAN, {0}, FALSE },
     { OPTION_DVI,          "DVI",       OPTV_BOOLEAN, {0}, FALSE },
     { OPTION_IGNORE_EDID,  "IgnoreEDID",  OPTV_BOOLEAN, {0}, FALSE },
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     { OPTION_BUS_TYPE, "BusType",      OPTV_ANYSTR,  {0}, FALSE },
     { OPTION_DMA_TYPE, "DmaType",      OPTV_ANYSTR,  {0}, FALSE },
     { OPTION_DMA_MODE,  "DmaMode",     OPTV_ANYSTR,  {0}, FALSE },
@@ -1461,7 +1461,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
 
     /* Set AGP Mode from config */
     /* We support 1X 2X and 4X  */
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
 #ifdef XSERVER_LIBPCIACCESS
     /* Try to read the AGP capabilty block from the device.  If there is
      * no AGP info, the device is PCI.
@@ -1672,7 +1672,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
                    "Option: %s Tile Mode and Program it 
\n",(psav->bDisableTile?"Disable":"Enable"));
     }
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     /* disabled by default...doesn't seem to work */
     psav->bDisableXvMC = TRUE; /* if you want to free up more mem for DRI,etc. 
*/
     if (xf86GetOptValBool(psav->Options, OPTION_DISABLE_XVMC, 
&psav->bDisableXvMC)) {
@@ -1702,7 +1702,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
                    "%s DVI port support (Savage4 
only)\n",(psav->dvi?"Force":"Disable"));
     }
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     psav->AGPforXv = FALSE;
     if (xf86GetOptValBool(psav->Options, OPTION_AGP_FOR_XV, &psav->AGPforXv)) {
         if (psav->AGPforXv) {
@@ -2201,7 +2201,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
 static Bool SavageEnterVT(int scrnIndex, int flags)
 {
     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     SavagePtr psav = SAVPTR(pScrn);
     ScreenPtr pScreen;
 #endif
@@ -2211,7 +2211,7 @@ static Bool SavageEnterVT(int scrnIndex, int flags)
     gpScrn = pScrn;
     SavageEnableMMIO(pScrn);
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if (psav->directRenderingEnabled) {
         pScreen = screenInfo.screens[scrnIndex];
         SAVAGEDRIResume(pScreen);
@@ -2239,14 +2239,14 @@ static void SavageLeaveVT(int scrnIndex, int flags)
     SavagePtr psav = SAVPTR(pScrn);
     vgaRegPtr vgaSavePtr = &hwp->SavedReg;
     SavageRegPtr SavageSavePtr = &psav->SavedReg;
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     ScreenPtr pScreen;
 #endif
 
     TRACE(("SavageLeaveVT(%d)\n", flags));
     gpScrn = pScrn;
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if (psav->directRenderingEnabled) {
         pScreen = screenInfo.screens[scrnIndex];
         DRILock(pScreen, 0);
@@ -2459,7 +2459,7 @@ static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr 
vgaSavePtr,
     
     TRACE(("SavageWriteMode(%x)\n", restore->mode));
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if (psav->directRenderingEnabled) {
         DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
         psav->LockHeld = 1;
@@ -2652,7 +2652,7 @@ static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr 
vgaSavePtr,
        SavageSetGBD(pScrn);
 
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
        if (psav->directRenderingEnabled)
            DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
        psav->LockHeld = 0;
@@ -2908,7 +2908,7 @@ static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr 
vgaSavePtr,
     vgaHWProtect(pScrn, FALSE);
 
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if (psav->directRenderingEnabled)
         DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
     psav->LockHeld = 0;
@@ -3114,7 +3114,7 @@ static void SavageUnmapMem(ScrnInfoPtr pScrn, int All)
     return;
 }
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
 static Bool SavageCheckAvailableRamFor3D(ScrnInfoPtr pScrn)
 {
     SavagePtr psav = SAVPTR(pScrn);
@@ -3258,7 +3258,7 @@ static Bool SavageScreenInit(int scrnIndex, ScreenPtr 
pScreen,
 
     vgaHWBlankScreen(pScrn, TRUE);
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if (!xf86ReturnOptValBool(psav->Options, OPTION_DRI, TRUE)) {
        psav->directRenderingEnabled = FALSE;
        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
@@ -3472,7 +3472,7 @@ static Bool SavageScreenInit(int scrnIndex, ScreenPtr 
pScreen,
     if (xf86DPMSInit(pScreen, SavageDPMS, 0) == FALSE)
        xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "DPMS initialization failed\n");
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if (psav->directRenderingEnabled) {
         /* complete the DRI setup.*/
         psav->directRenderingEnabled = SAVAGEDRIFinishScreenInit(pScreen);
@@ -3503,7 +3503,7 @@ static Bool SavageScreenInit(int scrnIndex, ScreenPtr 
pScreen,
     }
 #endif
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if ((psav->directRenderingEnabled) && (!psav->bDisableXvMC)) {
         if (SAVAGEInitMC(pScreen))
             xf86DrvMsg(pScrn->scrnIndex,X_CONFIG,"XvMC is enabled\n");
@@ -3979,7 +3979,7 @@ static Bool SavageCloseScreen(int scrnIndex, ScreenPtr 
pScreen)
 
     TRACE(("SavageCloseScreen\n"));
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if (psav->directRenderingEnabled) {
         SAVAGEDRICloseScreen(pScreen);
        /* reset shadow values */
diff --git a/src/savage_driver.h b/src/savage_driver.h
index 6c6dda8..7b7e01d 100644
--- a/src/savage_driver.h
+++ b/src/savage_driver.h
@@ -70,7 +70,11 @@
 #include "savage_regs.h"
 #include "savage_vbe.h"
 
-#ifdef XF86DRI
+#ifndef XF86DRI
+#undef SAVAGEDRI
+#endif
+
+#ifdef SAVAGEDRI
 #define _XF86DRI_SERVER_
 #include "savage_dripriv.h"
 #include "savage_dri.h"
@@ -457,7 +461,7 @@ typedef struct _Savage {
      int                 overlayDepth;
      int                       primStreamBpp;
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     int                LockHeld;
     Bool               directRenderingEnabled;
     DRIInfoPtr                 pDRIInfo;
@@ -547,7 +551,7 @@ typedef struct _Savage {
 #define writescan savagewritescan
 
 /* add for support DRI */
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
 
 #define SAVAGE_FRONT   0x1
 #define SAVAGE_BACK    0x2
diff --git a/src/savage_exa.c b/src/savage_exa.c
index 4fe43e5..613100b 100644
--- a/src/savage_exa.c
+++ b/src/savage_exa.c
@@ -15,7 +15,7 @@
 #include "savage_bci.h"
 #include "savage_streams.h"
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
 #define _XF86DRI_SERVER_
 #include "savage_dri.h"
 #endif
@@ -441,7 +441,7 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, 
int h, char *src, int
     int i, j, dwords, queue, Bpp;
     unsigned int cmd;
     CARD32 * srcp;
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     unsigned int dst_pitch;
     unsigned int dst_yoffset;
     int agp_possible;
@@ -451,7 +451,7 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, 
int h, char *src, int
 
     Bpp = pDst->drawable.bitsPerPixel / 8;
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     /* 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
@@ -508,7 +508,7 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, 
int h, char *src, int
             return TRUE;
         }
     }
-#endif /* XF86DRI */
+#endif /* SAVAGEDRI */
 
     /* If we reach here, AGP transfer is not possible, or failed to drmMap() */
     psav->sbd_offset = exaGetPixmapOffset(pDst);
diff --git a/src/savage_video.c b/src/savage_video.c
index 5f08a18..b5a6330 100644
--- a/src/savage_video.c
+++ b/src/savage_video.c
@@ -247,7 +247,7 @@ typedef struct {
    void         *video_planarmem;              /* opaque memory management 
information structure */
    CARD32       video_planarbuf;               /* offset in video memory of 
planar YV12 buffer */
    
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
    Bool         tried_agp;                     /* TRUE if AGP allocation has 
been tried */
    CARD32      agpBase;                        /* Physical address of aperture 
base */
    CARD32      agpBufferOffset;                /* Offset of buffer in AGP 
memory, or 0 if unavailable */
@@ -1047,7 +1047,7 @@ SavageStopVideo(ScrnInfoPtr pScrn, pointer data, Bool 
shutdown)
       /*SavageClipVWindow(pScrn);*/
        SavageStreamsOff( pScrn );
 
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
        if (pPriv->agpBufferMap != NULL) {
            SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
 
@@ -1978,7 +1978,7 @@ SavagePutImage(
 
     /* Check whether AGP buffers can be allocated. If not, fall back to 
ordinary
        upload to framebuffer (slower) */
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
     if (!pPriv->tried_agp && !psav->IsPCI && psav->drmFD > 0 && 
psav->DRIServerInfo != NULL) {
        SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
         
@@ -2014,7 +2014,7 @@ SavagePutImage(
            pPriv->agpBufferOffset = 0;
        }
     }
-#endif /* XF86DRI */
+#endif /* SAVAGEDRI */
 
 
     /* Buffer for final packed frame */
@@ -2060,7 +2060,7 @@ SavagePutImage(
        offsetV += tmp;
        nlines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top;
         if (S3_SAVAGE4_SERIES(psav->Chipset) && psav->BCIforXv && (npixels & 
0xF) == 0 && pPriv->video_planarbuf != 0) {
-#ifdef XF86DRI
+#ifdef SAVAGEDRI
             if (pPriv->agpBufferMap != NULL) {
                /* Using copy to AGP memory */
                SavageCopyPlanarDataBCI(
@@ -2073,7 +2073,7 @@ SavagePutImage(
                    pPriv->agpBase + pPriv->agpBufferOffset,
                    srcPitch, srcPitch2, dstPitch, nlines, npixels, TRUE);
             } else
-#endif /* XF86DRI */
+#endif /* SAVAGEDRI */
             {
                /* Using ordinary copy to framebuffer */
                SavageCopyPlanarDataBCI(

commit 05f74bd80018bc503ff5631b357fc0b02df6187f
Author: Andrew Turner <and...@fubar.geek.nz>
Date:   Fri Oct 14 00:18:40 2011 +0200

    Merge almost identical code in SAVAGEInitVisualConfigs
    
    https://bugs.freedesktop.org/show_bug.cgi?id=9961
    
    Signed-off-by: Andrew Turner <and...@fubar.geek.nz>
    [Tormod: Rename table to SAVAGEVisuals]
    Signed-off-by: Tormod Volden <debian.tor...@gmail.com>

diff --git a/src/savage_dri.c b/src/savage_dri.c
index 52a4b7c..414e724 100644
--- a/src/savage_dri.c
+++ b/src/savage_dri.c
@@ -53,6 +53,23 @@
 #include "savage_dri.h"
 #include "savage_sarea.h"
 
+static struct {
+   int bpp;
+   int redSize;
+   int greenSize;
+   int blueSize;
+   int alphaSize;
+   int redMask;
+   int greenMask;
+   int blueMask;
+   int alphaMask;
+   int depthSize;
+} SAVAGEVisuals[] = {
+   { 16, 5, 6, 5, 0, 0x0000F800, 0x000007E0, 0x0000001F, 0, 16 },
+   { 32, 8, 8, 8, 0, 0x00FF0000, 0x0000FF00, 0x000000FF, 0, 24 },
+   {  0, 0, 0, 0, 0,          0,          0,          0, 0,  0 }
+};
+
 static char SAVAGEKernelDriverName[] = "savage";
 static char SAVAGEClientDriverName[] = "savage";
 
@@ -93,7 +110,7 @@ static Bool SAVAGEInitVisualConfigs( ScreenPtr pScreen )
    __GLXvisualConfig *pConfigs = 0;
    SAVAGEConfigPrivPtr pSAVAGEConfigs = 0;
    SAVAGEConfigPrivPtr *pSAVAGEConfigPtrs = 0;
-   int i, db, depth, stencil, accum;
+   int i, db, stencil, accum, visNum;
 
    switch ( pScrn->bitsPerPixel ) {
    case 8:
@@ -101,6 +118,7 @@ static Bool SAVAGEInitVisualConfigs( ScreenPtr pScreen )
       break;
 
    case 16:
+   case 32:
       numConfigs = 8;
 
       pConfigs = (__GLXvisualConfig*)calloc( sizeof(__GLXvisualConfig),
@@ -128,117 +146,32 @@ static Bool SAVAGEInitVisualConfigs( ScreenPtr pScreen )
         pSAVAGEConfigPtrs[i] = &pSAVAGEConfigs[i];
       }
 
-      i = 0;
-      depth = 1;
-      for ( accum = 0 ; accum <= 1 ; accum++ ) {
-         for ( stencil = 0 ; stencil <= 1 ; stencil++ ) {
-            for ( db = 1 ; db >= 0 ; db-- ) {
-               pConfigs[i].vid                 = -1;
-               pConfigs[i].class               = -1;
-               pConfigs[i].rgba                        = TRUE;
-               pConfigs[i].redSize             = 5;
-               pConfigs[i].greenSize           = 6;
-               pConfigs[i].blueSize            = 5;
-               pConfigs[i].alphaSize           = 0;
-               pConfigs[i].redMask             = 0x0000F800;
-               pConfigs[i].greenMask           = 0x000007E0;
-               pConfigs[i].blueMask            = 0x0000001F;
-               pConfigs[i].alphaMask           = 0;
-               if ( accum ) {
-                  pConfigs[i].accumRedSize     = 16;
-                  pConfigs[i].accumGreenSize   = 16;
-                  pConfigs[i].accumBlueSize    = 16;
-                  pConfigs[i].accumAlphaSize   = 0;
-               } else {
-                  pConfigs[i].accumRedSize     = 0;
-                  pConfigs[i].accumGreenSize   = 0;
-                  pConfigs[i].accumBlueSize    = 0;
-                  pConfigs[i].accumAlphaSize   = 0;
-               }
-               if ( db ) {
-                  pConfigs[i].doubleBuffer     = TRUE;
-               } else {
-                  pConfigs[i].doubleBuffer     = FALSE;
-              }
-               pConfigs[i].stereo              = FALSE;
-               pConfigs[i].bufferSize          = 16;
-               if ( depth ) {
-                  pConfigs[i].depthSize                = 16;
-               } else {
-                  pConfigs[i].depthSize                = 0;
-              }
-               if ( stencil ) {
-                  pConfigs[i].stencilSize      = 8;
-               } else {
-                  pConfigs[i].stencilSize      = 0;
-              }
-               pConfigs[i].auxBuffers          = 0;
-               pConfigs[i].level               = 0;
-               if ( accum || stencil ) {
-                 pConfigs[i].visualRating      = GLX_SLOW_CONFIG;
-               } else {
-                  pConfigs[i].visualRating     = GLX_NONE;
-              }
-               pConfigs[i].transparentPixel    = GLX_NONE;
-               pConfigs[i].transparentRed      = 0;
-               pConfigs[i].transparentGreen    = 0;
-               pConfigs[i].transparentBlue     = 0;
-               pConfigs[i].transparentAlpha    = 0;
-               pConfigs[i].transparentIndex    = 0;
-               i++;
-            }
-         }
-      }
-      if ( i != numConfigs ) {
-         xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
-                    "[drm] Incorrect initialization of visuals\n" );
-         return FALSE;
-      }
-      break;
-
-   case 32:
-      numConfigs = 8;
-
-      pConfigs = (__GLXvisualConfig*)calloc( sizeof(__GLXvisualConfig),
-                                               numConfigs );
-      if ( !pConfigs ) {
-        return FALSE;
+      for (visNum = 0; SAVAGEVisuals[visNum].bpp != 0; visNum++) {
+         if ( SAVAGEVisuals[visNum].bpp == pScrn->bitsPerPixel )
+            break;
       }
-
-      pSAVAGEConfigs = (SAVAGEConfigPrivPtr)calloc( 
sizeof(SAVAGEConfigPrivRec),
-                                                numConfigs );
-      if ( !pSAVAGEConfigs ) {
-        free( pConfigs );
-        return FALSE;
-      }
-
-      pSAVAGEConfigPtrs = (SAVAGEConfigPrivPtr*)calloc( 
sizeof(SAVAGEConfigPrivPtr),
-                                                    numConfigs );
-      if ( !pSAVAGEConfigPtrs ) {
+      if ( SAVAGEVisuals[visNum].bpp == 0 ) {
         free( pConfigs );
         free( pSAVAGEConfigs );
-        return FALSE;
-      }
-
-      for ( i = 0 ; i < numConfigs ; i++ ) {
-        pSAVAGEConfigPtrs[i] = &pSAVAGEConfigs[i];
+         return FALSE;
       }
 
       i = 0;
       for ( accum = 0 ; accum <= 1 ; accum++ ) {
          for ( stencil = 0 ; stencil <= 1 ; stencil++ ) {
             for ( db = 1 ; db >= 0 ; db-- ) {
-               pConfigs[i].vid                 = -1;
-               pConfigs[i].class               = -1;
-               pConfigs[i].rgba                        = TRUE;
-               pConfigs[i].redSize             = 8;
-               pConfigs[i].greenSize           = 8;
-               pConfigs[i].blueSize            = 8;
-               pConfigs[i].alphaSize           = 0;
-               pConfigs[i].redMask             = 0x00FF0000;
-               pConfigs[i].greenMask           = 0x0000FF00;
-               pConfigs[i].blueMask            = 0x000000FF;
-               pConfigs[i].alphaMask           = 0;
+               pConfigs[i].vid         = -1;
+               pConfigs[i].class       = -1;
+               pConfigs[i].rgba                = TRUE;
+               pConfigs[i].redSize     = SAVAGEVisuals[visNum].redSize;
+               pConfigs[i].greenSize   = SAVAGEVisuals[visNum].greenSize;
+               pConfigs[i].blueSize    = SAVAGEVisuals[visNum].blueSize;
+               pConfigs[i].alphaSize   = SAVAGEVisuals[visNum].alphaSize;
+               pConfigs[i].redMask     = SAVAGEVisuals[visNum].redMask;
+               pConfigs[i].greenMask   = SAVAGEVisuals[visNum].greenMask;
+               pConfigs[i].blueMask    = SAVAGEVisuals[visNum].blueMask;
+               pConfigs[i].alphaMask   = SAVAGEVisuals[visNum].alphaMask;
+
                if ( accum ) {
                   pConfigs[i].accumRedSize     = 16;
                   pConfigs[i].accumGreenSize   = 16;
@@ -254,24 +187,27 @@ static Bool SAVAGEInitVisualConfigs( ScreenPtr pScreen )
                   pConfigs[i].doubleBuffer     = TRUE;
                } else {
                   pConfigs[i].doubleBuffer     = FALSE;
-              }
+               }
                pConfigs[i].stereo              = FALSE;
-               pConfigs[i].bufferSize          = 32;
+               pConfigs[i].bufferSize          = pScrn->bitsPerPixel;
+               pConfigs[i].depthSize   = SAVAGEVisuals[visNum].depthSize;
                if ( stencil ) {
-                    pConfigs[i].depthSize      = 24;
-                     pConfigs[i].stencilSize   = 8;
-               }
-               else {
-                     pConfigs[i].depthSize     = 24;
-                     pConfigs[i].stencilSize   = 0;
+                  pConfigs[i].stencilSize      = 8;
+               } else {
+                  pConfigs[i].stencilSize      = 0;
                }
+
                pConfigs[i].auxBuffers          = 0;
                pConfigs[i].level               = 0;
-               if ( accum ) {
+
+               pConfigs[i].visualRating        = GLX_NONE;
+               if ( pScrn->bitsPerPixel == 16 ) {
+                  if ( accum || stencil ) {
+                     pConfigs[i].visualRating  = GLX_SLOW_CONFIG;
+                  }
+               } else if ( accum ) {
                   pConfigs[i].visualRating     = GLX_SLOW_VISUAL_EXT;
-               } else {
-                  pConfigs[i].visualRating     = GLX_NONE;
-              }
+               }
                pConfigs[i].transparentPixel    = GLX_NONE;
                pConfigs[i].transparentRed      = 0;
                pConfigs[i].transparentGreen    = 0;

commit 0600b7279382c66445506fa98dc50299574a1abd
Author: Tormod Volden <debian.tor...@gmail.com>
Date:   Sun Dec 4 23:36:19 2011 +0100

    Avoid leading underscores in #include guards
    
    In a user header file, the macro name should not begin with `_'
    http://gcc.gnu.org/onlinedocs/cpp/Once_002dOnly-Headers.html
    
    Signed-off-by: Tormod Volden <debian.tor...@gmail.com>

diff --git a/src/savage_bci.h b/src/savage_bci.h
index 174a26b..9d8d656 100644
--- a/src/savage_bci.h
+++ b/src/savage_bci.h
@@ -1,6 +1,6 @@
 
-#ifndef _S3BCI_H_
-#define _S3BCI_H_
+#ifndef S3BCI_H
+#define S3BCI_H
 
 
 /* BCI Control Register */
@@ -140,5 +140,4 @@
        ((yp) ? 1<<15 : 0) | \
        ((err) << 16))
 
-
-#endif /* _S3BCI_H_ */
+#endif /* S3BCI_H */
diff --git a/src/savage_common.h b/src/savage_common.h
index 9dbd3cb..9664304 100644
--- a/src/savage_common.h
+++ b/src/savage_common.h
@@ -23,8 +23,8 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifndef __SAVAGE_COMMON_H__
-#define __SAVAGE_COMMON_H__
+#ifndef SAVAGE_COMMON_H
+#define SAVAGE_COMMON_H
 
 #include <inttypes.h>
 
@@ -174,4 +174,4 @@ union drmSAVAGECmdHeader {
        } clear1; /* SAVAGE_CMD_CLEAR data */
 };
 
-#endif /* __SAVAGE_COMMON_H__ */
+#endif /* SAVAGE_COMMON_H */
diff --git a/src/savage_dri.h b/src/savage_dri.h
index 214d985..36377c9 100644
--- a/src/savage_dri.h
+++ b/src/savage_dri.h
@@ -23,8 +23,8 @@
  */
 
 
-#ifndef __SAVAGE_DRI_H__
-#define __SAVAGE_DRI_H__
+#ifndef SAVAGE_DRI_H
+#define SAVAGE_DRI_H
 
 #include "drm.h"
 
@@ -73,4 +73,4 @@ typedef struct {
    drm_handle_t xvmcSurfHandle; /* ? */
 } SAVAGEDRIRec, *SAVAGEDRIPtr;
 
-#endif
+#endif /* SAVAGE_DRI_H */
diff --git a/src/savage_dripriv.h b/src/savage_dripriv.h
index 19e4487..4206a9f 100644
--- a/src/savage_dripriv.h
+++ b/src/savage_dripriv.h
@@ -22,8 +22,8 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifndef __SAVAGE_DRIPRIV_H__
-#define __SAVAGE_DRIPRIV_H__
+#ifndef SAVAGE_DRIPRIV_H
+#define SAVAGE_DRIPRIV_H
 
 #include "GL/glxint.h"
 
@@ -43,4 +43,4 @@ typedef struct {
   int dummy;
 } SAVAGEDRIContextRec, *SAVAGEDRIContextPtr;
 
-#endif
+#endif /* SAVAGE_DRIPRIV_H */
diff --git a/src/savage_drm.h b/src/savage_drm.h
index 62bd49b..7d624b5 100644
--- a/src/savage_drm.h
+++ b/src/savage_drm.h
@@ -22,11 +22,11 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifndef __SAVAGE_DRM_H__
-#define __SAVAGE_DRM_H__
+#ifndef SAVAGE_DRM_H
+#define SAVAGE_DRM_H
 
-#ifndef __SAVAGE_SAREA_DEFINES__
-#define __SAVAGE_SAREA_DEFINES__
+#ifndef SAVAGE_SAREA_DEFINES
+#define SAVAGE_SAREA_DEFINES
 
 #define DRM_SAVAGE_MEM_PAGE (1UL<<12)
 #define DRM_SAVAGE_MEM_WORK 32
@@ -96,7 +96,7 @@ typedef struct drm_savage_get_physcis_address
 #define SAVAGE_NR_TEX_REGIONS          16   /* num. of global texture manage 
list element*/
 #define SAVAGE_LOG_MIN_TEX_REGION_SIZE 16   /* each region 64K, Jiayo Hsu */
 
-#endif /* __SAVAGE_SAREA_DEFINES__ */
+#endif /* SAVAGE_SAREA_DEFINES */
 
 /* drm_tex_region_t define in drm.h */
 
@@ -245,4 +245,4 @@ typedef struct _drm_savage_blit {
        int source_pitch, dest_pitch;
 } drm_savage_blit_t;
 
-#endif
+#endif /* SAVAGE_DRM_H */
diff --git a/src/savage_regs.h b/src/savage_regs.h
index 26cc2da..1a71c4e 100644
--- a/src/savage_regs.h
+++ b/src/savage_regs.h
@@ -1,6 +1,6 @@
 
-#ifndef _SAVAGE_REGS_H
-#define _SAVAGE_REGS_H
+#ifndef SAVAGE_REGS_H
+#define SAVAGE_REGS_H
 
 /* Copied and renamed from radeon_reg.h for AGP/PCI detection. */
 #define SAVAGE_STATUS_PCI_CONFIG            0x06
@@ -285,4 +285,4 @@ do {                                            \
 #define EC1_CENTER_ON  0x10
 #define EC1_EXPAND_ON  0x0c
 
-#endif /* _SAVAGE_REGS_H */
+#endif /* SAVAGE_REGS_H */
diff --git a/src/savage_sarea.h b/src/savage_sarea.h
index 1debc6d..e2ea3e5 100644
--- a/src/savage_sarea.h
+++ b/src/savage_sarea.h
@@ -23,11 +23,11 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifndef __SAVAGE_SAREA_H__
-#define __SAVAGE_SAREA_H__
+#ifndef SAVAGE_SAREA_H
+#define SAVAGE_SAREA_H
 
-#ifndef __SAVAGE_SAREA_DEFINES__
-#define __SAVAGE_SAREA_DEFINES__
+#ifndef SAVAGE_SAREA_DEFINES
+#define SAVAGE_SAREA_DEFINES
 
 /* 2 heaps (1 for card, 1 for agp), each divided into upto 128
  * regions, subject to a minimum region size of (1<<16) == 64k.
@@ -42,7 +42,7 @@
 #define SAVAGE_NR_TEX_REGIONS          16
 #define SAVAGE_LOG_MIN_TEX_REGION_SIZE 16
 
-#endif /* __SAVAGE_SAREA_DEFINES__ */
+#endif /* SAVAGE_SAREA_DEFINES */
 
 typedef struct {
        /* LRU lists for texture memory in agp space and on the card.
@@ -55,4 +55,4 @@ typedef struct {
        int ctxOwner;
 }  SAVAGESAREAPrivRec, *SAVAGESAREAPrivPtr;
 
-#endif /* __SAVAGE_SAREA_H__ */
+#endif /* SAVAGE_SAREA_H */
diff --git a/src/savage_streams.h b/src/savage_streams.h
index ad16ad7..9968a1a 100644
--- a/src/savage_streams.h
+++ b/src/savage_streams.h
@@ -1,6 +1,5 @@
-#ifndef __SAVAGE_STREAMS_H__
-
-# define __SAVAGE_STREAMS_H__
+#ifndef SAVAGE_STREAMS_H
+#define SAVAGE_STREAMS_H
 
 /**************************************
    S3 streams processor
@@ -220,4 +219,4 @@
 #define SSTREAMS_MODE(bpp) (bpp > 16 ? (bpp > 24 ? STREAMS_MODE32 :\
                                       STREAMS_MODE24) : STREAMS_MODE16)
 
-#endif /*__SAVAGE_STREAMS_H__*/
+#endif /* SAVAGE_STREAMS_H */
diff --git a/src/savage_vbe.h b/src/savage_vbe.h
index 9b06e0c..45d4a51 100644
--- a/src/savage_vbe.h
+++ b/src/savage_vbe.h
@@ -12,8 +12,8 @@ versions as being modified.
 This software has NO WARRANTY.  Use it at your own risk.
 */
 
-#ifndef _SAVAGEVBE_H
-#define _SAVAGEVBE_H
+#ifndef SAVAGEVBE_H
+#define SAVAGEVBE_H
 
 /*
  *  Common BIOS functions
@@ -161,4 +161,4 @@ struct vbe_palette_entry
        unsigned char align;
        } __attribute__ ((packed));
 
-#endif
+#endif /* SAVAGEVBE_H */

commit 10f319e43f77fef450aa723eff25bd200600c48d
Author: Tormod Volden <debian.tor...@gmail.com>
Date:   Sun Dec 4 23:36:18 2011 +0100

    Do not use the deprecated xf86PciInfo.h from xserver
    
    Instead maintain our own list of supported PCI IDs.
    
    Signed-off-by: Tormod Volden <debian.tor...@gmail.com>

diff --git a/src/savage_dri.c b/src/savage_dri.c
index 6464ffa..52a4b7c 100644
--- a/src/savage_dri.c
+++ b/src/savage_dri.c
@@ -34,7 +34,6 @@
 #include "xaalocal.h"
 #include "xaarop.h"
 
-#include "xf86PciInfo.h"
 #include "xf86Pci.h"
 #include "xf86fbman.h"
 
diff --git a/src/savage_driver.c b/src/savage_driver.c
index 0592232..447beec 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -56,6 +56,7 @@
 #include "xf86xv.h"
 
 #include "savage_driver.h"
+#include "savage_pciids.h"
 #include "savage_regs.h"
 #include "savage_bci.h"
 #include "savage_streams.h"
diff --git a/src/savage_driver.h b/src/savage_driver.h
index 1737362..6c6dda8 100644
--- a/src/savage_driver.h
+++ b/src/savage_driver.h
@@ -55,7 +55,6 @@
 #include "xf86Resources.h"
 #endif
 #include "xf86Pci.h"
-#include "xf86PciInfo.h"
 #include "xf86_OSproc.h"
 #include "xf86Cursor.h"
 #include "mipointer.h"
diff --git a/src/savage_hwmc.c b/src/savage_hwmc.c
index 905ef87..ed881b4 100644
--- a/src/savage_hwmc.c
+++ b/src/savage_hwmc.c
@@ -29,7 +29,6 @@
 #include "xf86.h"
 #include "xf86_OSproc.h"
 #include "compiler.h"
-#include "xf86PciInfo.h"
 #include "xf86Pci.h"
 #include "xf86fbman.h"
 #include "regionstr.h"
diff --git a/src/savage_i2c.c b/src/savage_i2c.c
index d8eb46b..b5739a2 100644
--- a/src/savage_i2c.c
+++ b/src/savage_i2c.c
@@ -32,11 +32,6 @@ in this Software without prior written authorization from 
the XFree86 Project.
 #include "xf86_OSproc.h"
 #include "compiler.h"
 
-#include "xf86Pci.h"
-#include "xf86PciInfo.h"
-
-#include "vgaHW.h"
-
 #include "savage_driver.h"
 
 static void
diff --git a/src/savage_pciids.h b/src/savage_pciids.h
new file mode 100644
index 0000000..cad5172
--- /dev/null
+++ b/src/savage_pciids.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2011 X.Org Foundation
+ *
+ * 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 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,
+ * FITESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER(S) OR AUTHOR(S) 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 holder(s)
+ * and author(s) 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 holder(s) and author(s).
+ */
+
+#ifndef SAVAGE_PCIIDS_H
+#define SAVAGE_PCIIDS_H
+
+#define PCI_CHIP_SAVAGE3D              0x8A20
+#define PCI_CHIP_SAVAGE3D_MV           0x8A21
+#define PCI_CHIP_SAVAGE4               0x8A22
+#define PCI_CHIP_PROSAVAGE_PM          0x8A25
+#define PCI_CHIP_PROSAVAGE_KM          0x8A26


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1srh4s-0001yr...@vasks.debian.org

Reply via email to