.gitignore          |   70 +++++++++-
 COPYING             |   68 +++++++++-
 ChangeLog           |   67 ----------
 Makefile.am         |   13 +-
 README              |   24 +++
 configure.ac        |   66 ++++++----
 man/.cvsignore      |    2 
 man/Makefile.am     |   63 +++------
 man/cirrus.man      |    6 
 src/.cvsignore      |    6 
 src/CirrusClk.c     |    5 
 src/Makefile.am     |    5 
 src/alp.h           |    4 
 src/alp_driver.c    |  336 ++++++++++++++++++++++++++++------------------------
 src/alp_hwcurs.c    |    7 -
 src/alp_i2c.c       |    3 
 src/alp_xaa.c       |    8 -
 src/alp_xaam.c      |   10 -
 src/cir.h           |   13 +-
 src/cir_dga.c       |   27 ++--
 src/cir_driver.c    |   68 +++-------
 src/cir_pcirename.h |   51 +++++++
 src/cir_shadow.c    |   22 +--
 src/compat-api.h    |   99 +++++++++++++++
 src/lg.h            |    4 
 src/lg_driver.c     |  196 +++++++++---------------------
 src/lg_hwcurs.c     |    6 
 src/lg_i2c.c        |    3 
 src/lg_xaa.c        |    8 -
 src/lg_xaa.h        |    1 
 30 files changed, 705 insertions(+), 556 deletions(-)

New commits:
commit e443ede15981549ff5f6b01f42c3cb8dc909d778
Author: Dave Airlie <airl...@gmail.com>
Date:   Fri Jul 13 14:47:40 2012 +1000

    cirrus: handle server with no XAA
    
    this fixes cirrus to work with a server with no XAA module.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/configure.ac b/configure.ac
index 1cc4d93..1157ab1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -72,6 +72,24 @@ AC_CHECK_HEADER(xf1bpp.h,[AC_DEFINE(HAVE_XF1BPP, 1, [Have 
1bpp support])],[])
 AC_CHECK_HEADER(xf4bpp.h,[AC_DEFINE(HAVE_XF4BPP, 1, [Have 4bpp support])],[])
 CPPFLAGS="$SAVE_CPPFLAGS"
 
+AC_ARG_ENABLE(xaa,
+              AS_HELP_STRING([--enable-xaa],
+                             [Enable legacy X Acceleration Architecture (XAA) 
[default=auto]]),
+              [XAA="$enableval"],
+              [XAA=auto])
+if test "x$XAA" != xno; then
+        save_CFLAGS=$CFLAGS
+        save_CPPFLAGS=$CPPFLAGS
+        CFLAGS=$XORG_CFLAGS
+        CPPFLAGS="$XORG_CFLAGS"
+        AC_CHECK_HEADERS([xaa.h], XAA=yes, XAA=no)
+        CFLAGS=$save_CFLAGS
+        CPPFLAGS=$save_CPPFLAGS
+fi
+AC_MSG_CHECKING([whether to include XAA support])
+AM_CONDITIONAL(XAA, test "x$XAA" = xyes)
+AC_MSG_RESULT([$XAA])
+
 if test "x$XSERVER_LIBPCIACCESS" = xyes; then
     PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
     XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
diff --git a/src/alp.h b/src/alp.h
index a182d0c..c09e24b 100644
--- a/src/alp.h
+++ b/src/alp.h
@@ -40,8 +40,10 @@ typedef struct {
 } AlpRegRec, *AlpRegPtr;
 
 extern Bool AlpHWCursorInit(ScreenPtr pScreen, int size);
+#ifdef HAVE_XAA_H
 extern Bool AlpXAAInit(ScreenPtr pScreen);
 extern Bool AlpXAAInitMMIO(ScreenPtr pScreen);
+#endif
 extern Bool AlpDGAInit(ScreenPtr pScreen);
 extern Bool AlpI2CInit(ScrnInfoPtr pScrn);
 
diff --git a/src/alp_driver.c b/src/alp_driver.c
index d1300df..e38c613 100644
--- a/src/alp_driver.c
+++ b/src/alp_driver.c
@@ -1088,7 +1088,12 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
 
        /* Load XAA if needed */
        if (!pCir->NoAccel) {
-               if (!xf86LoadSubModule(pScrn, "xaa")) {
+#ifdef HAVE_XAA_H
+               if (!xf86LoadSubModule(pScrn, "xaa"))
+#else
+               if (1)
+#endif
+                {
                        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                                   "Falling back to shadowfb\n");
                        pCir->NoAccel = TRUE;
@@ -1096,6 +1101,7 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
                }
        }
 
+
        /* Load ramdac if needed */
        if (pCir->HWCursor) {
                if (!xf86LoadSubModule(pScrn, "ramdac")) {
@@ -1650,10 +1656,12 @@ AlpScreenInit(SCREEN_INIT_ARGS_DECL)
 
        if (!pCir->NoAccel) { /* Initialize XAA functions */
            AlpOffscreenAccelInit(pScrn);
+#ifdef HAVE_XAA_H
            if (!(pCir->UseMMIO ? AlpXAAInitMMIO(pScreen) :
                  AlpXAAInit(pScreen)))
              xf86DrvMsg(pScrn->scrnIndex, X_ERROR, 
                         "Could not initialize XAA\n");
+#endif
        }
 
 #if 1
@@ -1860,9 +1868,11 @@ AlpCloseScreen(CLOSE_SCREEN_ARGS_DECL)
            CirUnmapMem(pCir, pScrn->scrnIndex);
        }
 
+#ifdef HAVE_XAA_H
        if (pCir->AccelInfoRec)
                XAADestroyInfoRec(pCir->AccelInfoRec);
        pCir->AccelInfoRec = NULL;
+#endif
        if (pCir->CursorInfoRec)
                xf86DestroyCursorInfoRec(pCir->CursorInfoRec);
        pCir->CursorInfoRec = NULL;
diff --git a/src/alp_xaa.c b/src/alp_xaa.c
index 5a43357..b3ddd64 100644
--- a/src/alp_xaa.c
+++ b/src/alp_xaa.c
@@ -16,6 +16,7 @@
 #define _ALP_PRIVATE_
 #include "alp.h"
 
+#ifdef HAVE_XAA_H
 #define WAIT   outb(pCir->PIOReg, 0x31); \
                while(inb(pCir->PIOReg + 1) & pCir->chip.alp->waitMsk){};
 #define WAIT_1 outb(pCir->PIOReg, 0x31); \
@@ -683,4 +684,4 @@ AlpXAAInit(ScreenPtr pScreen)
 
     return TRUE;
 }
-
+#endif
diff --git a/src/alp_xaam.c b/src/alp_xaam.c
index 79f621d..8e9fd52 100644
--- a/src/alp_xaam.c
+++ b/src/alp_xaam.c
@@ -17,6 +17,7 @@
 #define _ALP_PRIVATE_
 #include "alp.h"
 
+#ifdef HAVE_XAA_H
 #ifdef DEBUG
 #define minb(p) \
         (ErrorF("minb(%X)\n", p),\
@@ -266,7 +267,4 @@ AlpXAAInitMMIO(ScreenPtr pScreen)
        return TRUE;
 }
 
-
-
-
-
+#endif
diff --git a/src/cir.h b/src/cir.h
index 3915a31..0a5d403 100644
--- a/src/cir.h
+++ b/src/cir.h
@@ -4,7 +4,9 @@
 #define CIR_H
 
 #include "xf86Cursor.h"
+#ifdef HAVE_XAA_H
 #include "xaa.h"
+#endif
 #include "xf86i2c.h"
 #include <string.h>
 #include <stdlib.h>
@@ -44,7 +46,9 @@ typedef struct {
        Bool                    NoAccel;
        Bool                    HWCursor;
        Bool                    UseMMIO;
+#ifdef HAVE_XAA_H
        XAAInfoRecPtr           AccelInfoRec;
+#endif
        xf86CursorInfoPtr       CursorInfoRec;
        int                     DGAnumModes;
        DGAModePtr              DGAModes;
diff --git a/src/cir_dga.c b/src/cir_dga.c
index b841be3..bf3a9dd 100644
--- a/src/cir_dga.c
+++ b/src/cir_dga.c
@@ -30,8 +30,10 @@
 #include "xf86.h"
 #include "xf86_OSproc.h"
 #include "xf86Pci.h"
+#ifdef HAVE_XAA_H
 #include "xaa.h"
 #include "xaalocal.h"
+#endif
 #include "vgaHW.h"
 #include "cir.h"
 #include "dgaproc.h"
@@ -39,15 +41,17 @@
 static Bool Cir_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **, 
                                  int *, int *, int *);
 static Bool Cir_SetMode(ScrnInfoPtr, DGAModePtr);
-static void Cir_Sync(ScrnInfoPtr);
 static int  Cir_GetViewport(ScrnInfoPtr);
 static void Cir_SetViewport(ScrnInfoPtr, int, int, int);
+#ifdef HAVE_XAA_H
+static void Cir_Sync(ScrnInfoPtr);
 static void Cir_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
 static void Cir_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
 /*
 static void Cir_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int, 
                                 unsigned long);
 */
+#endif
 
 static
 DGAFunctionRec CirDGAFuncs = {
@@ -56,9 +60,13 @@ DGAFunctionRec CirDGAFuncs = {
    Cir_SetMode,
    Cir_SetViewport,
    Cir_GetViewport,
+#ifdef HAVE_XAA_H
    Cir_Sync,
    Cir_FillRect,
    Cir_BlitRect,
+#else
+   NULL, NULL, NULL,
+#endif
    NULL  /* Cir_BlitTransRect */
 };
 
@@ -207,14 +215,12 @@ Cir_GetViewport(
     return pCir->DGAViewportStatus;
 }
 
-
-
+#ifdef HAVE_XAA_H
 static void 
 Cir_Sync(
    ScrnInfoPtr pScrn
 ){
     CirPtr pCir = CIRPTR(pScrn);
-
     if(pCir->AccelInfoRec) {
        (*pCir->AccelInfoRec->Sync)(pScrn);
     }
@@ -255,3 +261,4 @@ Cir_BlitRect(
        SET_SYNC_FLAG(pCir->AccelInfoRec);
     }
 }
+#endif
diff --git a/src/lg.h b/src/lg.h
index 985f634..fa716d6 100644
--- a/src/lg.h
+++ b/src/lg.h
@@ -59,8 +59,10 @@ typedef struct {
 /* lg_driver.c */
 extern LgLineDataRec LgLineData[];
 
+#ifdef HAVE_XAA_H
 /* lg_xaa.c */
 extern Bool LgXAAInit(ScreenPtr pScreen);
+#endif
 
 /* lg_hwcurs.c */
 extern Bool LgHWCursorInit(ScreenPtr pScreen);
diff --git a/src/lg_driver.c b/src/lg_driver.c
index ab613d8..13f222d 100644
--- a/src/lg_driver.c
+++ b/src/lg_driver.c
@@ -797,7 +797,12 @@ LgPreInit(ScrnInfoPtr pScrn, int flags)
 
        /* Load XAA if needed */
        if (!pCir->NoAccel) {
-               if (!xf86LoadSubModule(pScrn, "xaa")) {
+#ifdef HAVE_XAA_H
+               if (!xf86LoadSubModule(pScrn, "xaa"))
+#else
+               if (1)
+#endif
+                {
                        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                                   "Falling back to shadowfb\n");
                        pCir->NoAccel = TRUE;
@@ -1375,10 +1380,12 @@ LgScreenInit(SCREEN_INIT_ARGS_DECL)
         */
        xf86SetBlackWhitePixels(pScreen);
 
+#ifdef HAVE_XAA_H
        if (!pCir->NoAccel) { /* Initialize XAA functions */
                if (!LgXAAInit(pScreen))
                        xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not 
initialize XAA\n");
        }
+#endif
 #if 1
        pCir->DGAModeInit = LgModeInit;
        if (!CirDGAInit(pScreen))
@@ -1609,9 +1616,11 @@ LgCloseScreen(CLOSE_SCREEN_ARGS_DECL)
        CirUnmapMem(pCir, pScrn->scrnIndex);
        }
 
+#ifdef HAVE_XAA_H
        if (pCir->AccelInfoRec)
                XAADestroyInfoRec(pCir->AccelInfoRec);
        pCir->AccelInfoRec = NULL;
+#endif
 
        if (pCir->CursorInfoRec)
                xf86DestroyCursorInfoRec(pCir->CursorInfoRec);
diff --git a/src/lg_xaa.c b/src/lg_xaa.c
index 45ecea7..5e6e72e 100644
--- a/src/lg_xaa.c
+++ b/src/lg_xaa.c
@@ -26,6 +26,8 @@
 #include "cir.h"
 #define _LG_PRIVATE_
 #include "lg.h"
+
+#ifdef HAVE_XAA_H
 #include "lg_xaa.h"
 
 /* Laguna raster operations, source is OP1 and destination is OP0. */
@@ -296,4 +298,4 @@ LgSubsequentScreenToScreenCopy(ScrnInfoPtr pScrn, int x1, 
int y1,
        LgSETDSTXY(x2, y2);
        LgSETEXTENTS(w, h);
 }
-
+#endif

commit 46a9e962c6f33509e89d664115a9a2db51c9b67d
Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Jul 2 11:57:59 2012 +0100

    cirrus: bump to 1.5.0 for release.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/configure.ac b/configure.ac
index e6e22f5..1cc4d93 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-cirrus],
-        [1.4.0],
+        [1.5.0],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-cirrus])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 7ae890b29b12609d410f5558640bb0407b0fdd2d
Author: Johannes Obermayr <johannesoberm...@gmx.de>
Date:   Sat Jun 9 11:29:02 2012 +0100

    use int scrnIndex instead of int i in macro SCREEN_INIT_ARGS_DECL.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/compat-api.h b/src/compat-api.h
index 6bc946f..205ac59 100644
--- a/src/compat-api.h
+++ b/src/compat-api.h
@@ -46,7 +46,7 @@
 #define SCREEN_ARG_TYPE int
 #define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)]
 
-#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv
+#define SCREEN_INIT_ARGS_DECL int scrnIndex, ScreenPtr pScreen, int argc, char 
**argv
 
 #define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, 
pointer pReadmask
 #define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask

commit bab8041291ff81c81a98aca385cce561ecddc9d1
Author: Dave Airlie <airl...@redhat.com>
Date:   Tue Jun 5 19:35:39 2012 +0100

    cirrus: drop xf86PciInfo.
    
    This drops usage of deprecated header file.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/CirrusClk.c b/src/CirrusClk.c
index 6fd6270..a8b24ac 100644
--- a/src/CirrusClk.c
+++ b/src/CirrusClk.c
@@ -17,7 +17,6 @@
 
 #include "xf86.h"
 #include "xf86_OSproc.h"
-#include "xf86PciInfo.h"
 #include "xf86Pci.h"
 
 #include "cir.h"
diff --git a/src/alp_driver.c b/src/alp_driver.c
index 77a5ba9..d1300df 100644
--- a/src/alp_driver.c
+++ b/src/alp_driver.c
@@ -24,13 +24,6 @@
 /* Everything using inb/outb, etc needs "compiler.h" */
 #include "compiler.h"
 
-/* Drivers for PCI hardware need this */
-#include "xf86PciInfo.h"
-
-#ifndef PCI_CHIP_GD7556  /*  for old xf86PciInfo.h  */
-#define PCI_CHIP_GD7556            0x004C
-#endif
-
 /* Drivers that need to access the PCI config space directly need this */
 #include "xf86Pci.h"
 
diff --git a/src/alp_hwcurs.c b/src/alp_hwcurs.c
index 97c72e1..afab7a0 100644
--- a/src/alp_hwcurs.c
+++ b/src/alp_hwcurs.c
@@ -9,7 +9,6 @@
 #include "compiler.h"
 
 #include "xf86Pci.h"
-#include "xf86PciInfo.h"
 
 #include "vgaHW.h"
 
diff --git a/src/alp_i2c.c b/src/alp_i2c.c
index 7365215..9341543 100644
--- a/src/alp_i2c.c
+++ b/src/alp_i2c.c
@@ -9,7 +9,6 @@
 #include "compiler.h"
 
 #include "xf86Pci.h"
-#include "xf86PciInfo.h"
 
 #include "vgaHW.h"
 
diff --git a/src/alp_xaa.c b/src/alp_xaa.c
index cc8c0d9..5a43357 100644
--- a/src/alp_xaa.c
+++ b/src/alp_xaa.c
@@ -9,7 +9,6 @@
 #include "compiler.h"
 
 #include "xf86Pci.h"
-#include "xf86PciInfo.h"
 
 #include "vgaHW.h"
 
diff --git a/src/alp_xaam.c b/src/alp_xaam.c
index 42bbb31..79f621d 100644
--- a/src/alp_xaam.c
+++ b/src/alp_xaam.c
@@ -10,7 +10,6 @@
 #include "compiler.h"
 
 #include "xf86Pci.h"
-#include "xf86PciInfo.h"
 
 #include "vgaHW.h"
 
diff --git a/src/cir_dga.c b/src/cir_dga.c
index 44abfd9..b841be3 100644
--- a/src/cir_dga.c
+++ b/src/cir_dga.c
@@ -30,7 +30,6 @@
 #include "xf86.h"
 #include "xf86_OSproc.h"
 #include "xf86Pci.h"
-#include "xf86PciInfo.h"
 #include "xaa.h"
 #include "xaalocal.h"
 #include "vgaHW.h"
diff --git a/src/cir_driver.c b/src/cir_driver.c
index c6967da..5468b6b 100644
--- a/src/cir_driver.c
+++ b/src/cir_driver.c
@@ -24,13 +24,6 @@
 #endif
 /* All drivers need this */
 
-/* Drivers for PCI hardware need this */
-#include "xf86PciInfo.h"
-
-#ifndef PCI_CHIP_GD7556  /*  for old xf86PciInfo.h  */
-#define PCI_CHIP_GD7556            0x004C
-#endif
-
 /* Drivers that need to access the PCI config space directly need this */
 #include "xf86Pci.h"
 
diff --git a/src/cir_pcirename.h b/src/cir_pcirename.h
index 669b8fe..c1fb249 100644
--- a/src/cir_pcirename.h
+++ b/src/cir_pcirename.h
@@ -146,4 +146,28 @@ typedef struct pci_device *pciVideoPtr;
 
 #endif /* XSERVER_LIBPCIACCESS */
 
+#ifndef _XF86_PCIINFO_H
+
+#define PCI_VENDOR_CIRRUS              0x1013
+/* Cirrus Logic */
+#define PCI_CHIP_GD7548                        0x0038
+#define PCI_CHIP_GD7555                        0x0040
+#define PCI_CHIP_GD7556                 0x004C
+#define PCI_CHIP_GD5430                        0x00A0
+#define PCI_CHIP_GD5434_4              0x00A4
+#define PCI_CHIP_GD5434_8              0x00A8
+#define PCI_CHIP_GD5436                        0x00AC
+#define PCI_CHIP_GD5446                        0x00B8
+#define PCI_CHIP_GD5480                        0x00BC
+#define PCI_CHIP_GD5462                        0x00D0
+#define PCI_CHIP_GD5464                        0x00D4
+#define PCI_CHIP_GD5464BD              0x00D5
+#define PCI_CHIP_GD5465                        0x00D6
+#define PCI_CHIP_6729                  0x1100
+#define PCI_CHIP_6832                  0x1110
+#define PCI_CHIP_GD7542                        0x1200
+#define PCI_CHIP_GD7543                        0x1202
+#define PCI_CHIP_GD7541                        0x1204
+
+#endif
 #endif /* CIRPCIRENAME_H */
diff --git a/src/cir_shadow.c b/src/cir_shadow.c
index 5dc8d08..a9b425b 100644
--- a/src/cir_shadow.c
+++ b/src/cir_shadow.c
@@ -9,7 +9,6 @@
 
 #include "xf86.h"
 #include "xf86_OSproc.h"
-#include "xf86PciInfo.h"
 #include "xf86Pci.h"
 #include "shadowfb.h"
 #include "servermd.h"
diff --git a/src/lg_driver.c b/src/lg_driver.c
index 1ae6765..ab613d8 100644
--- a/src/lg_driver.c
+++ b/src/lg_driver.c
@@ -28,9 +28,6 @@
 
 #include "compiler.h"
 
-/* Drivers for PCI hardware need this */
-#include "xf86PciInfo.h"
-
 /* Drivers that need to access the PCI config space directly need this */
 #include "xf86Pci.h"
 
diff --git a/src/lg_hwcurs.c b/src/lg_hwcurs.c
index 80d1dff..4012db0 100644
--- a/src/lg_hwcurs.c
+++ b/src/lg_hwcurs.c
@@ -20,7 +20,6 @@
 #include "compiler.h"
 
 #include "xf86Pci.h"
-#include "xf86PciInfo.h"
 
 #include "vgaHW.h"
 
diff --git a/src/lg_i2c.c b/src/lg_i2c.c
index 145cc2e..3e8c962 100644
--- a/src/lg_i2c.c
+++ b/src/lg_i2c.c
@@ -9,7 +9,6 @@
 #include "compiler.h"
 
 #include "xf86Pci.h"
-#include "xf86PciInfo.h"
 
 #include "vgaHW.h"
 
diff --git a/src/lg_xaa.c b/src/lg_xaa.c
index 7abfb20..45ecea7 100644
--- a/src/lg_xaa.c
+++ b/src/lg_xaa.c
@@ -20,7 +20,6 @@
 #include "compiler.h"
 
 #include "xf86Pci.h"
-#include "xf86PciInfo.h"
 
 #include "vgaHW.h"
 

commit 9a5e19597be4f5ee4c1030e4a716207789e78668
Author: Dave Airlie <airl...@redhat.com>
Date:   Tue Jun 5 19:26:15 2012 +0100

    cirrus: convert to compat server API.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>

diff --git a/src/Makefile.am b/src/Makefile.am
index f2cb24f..c649b3d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -34,7 +34,8 @@ cirrus_drv_la_SOURCES = \
          cir.h \
          CirrusClk.c \
          cir_shadow.c \
-         cir_pcirename.h
+         cir_pcirename.h \
+         compat-api.h
 
 cirrus_alpine_la_LTLIBRARIES = cirrus_alpine.la
 cirrus_alpine_la_LDFLAGS = -module -avoid-version
diff --git a/src/alp_driver.c b/src/alp_driver.c
index 2e19461..77a5ba9 100644
--- a/src/alp_driver.c
+++ b/src/alp_driver.c
@@ -92,20 +92,20 @@ static void AlpProbeI2C(int scrnIndex);
 /* Mandatory functions */
 
 Bool AlpPreInit(ScrnInfoPtr pScrn, int flags);
-Bool AlpScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv);
-Bool AlpEnterVT(int scrnIndex, int flags);
-void AlpLeaveVT(int scrnIndex, int flags);
-static Bool    AlpCloseScreen(int scrnIndex, ScreenPtr pScreen);
+Bool AlpScreenInit(SCREEN_INIT_ARGS_DECL);
+Bool AlpEnterVT(VT_FUNC_ARGS_DECL);
+void AlpLeaveVT(VT_FUNC_ARGS_DECL);
+static Bool    AlpCloseScreen(CLOSE_SCREEN_ARGS_DECL);
 static Bool    AlpSaveScreen(ScreenPtr pScreen, int mode);
 
 /* Required if the driver supports mode switching */
-Bool AlpSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
+Bool AlpSwitchMode(SWITCH_MODE_ARGS_DECL);
 /* Required if the driver supports moving the viewport */
-void AlpAdjustFrame(int scrnIndex, int x, int y, int flags);
+void AlpAdjustFrame(ADJUST_FRAME_ARGS_DECL);
 
 /* Optional functions */
-void AlpFreeScreen(int scrnIndex, int flags);
-ModeStatus AlpValidMode(int scrnIndex, DisplayModePtr mode,
+void AlpFreeScreen(FREE_SCREEN_ARGS_DECL);
+ModeStatus AlpValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode,
                        Bool verbose, int flags);
 /* Internally used functions */
 static void    AlpSave(ScrnInfoPtr pScrn);
@@ -781,7 +781,7 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
      }
      else
        xf86SetDDCproperties(pScrn,xf86PrintEDID(
-           xf86DoEDID_DDC2(pScrn->scrnIndex,pCir->I2CPtr1)));
+                xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn),pCir->I2CPtr1)));
  
      /* Probe the possible LCD display */
      AlpProbeLCD(pScrn);
@@ -1457,9 +1457,9 @@ AlpRestore(ScrnInfoPtr pScrn)
 /* This gets called at the start of each server generation */
 
 Bool
-AlpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+AlpScreenInit(SCREEN_INIT_ARGS_DECL)
 {
-       ScrnInfoPtr pScrn;
+       ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
        vgaHWPtr hwp;
        CirPtr pCir;
        int i, ret;
@@ -1473,11 +1473,6 @@ AlpScreenInit(int scrnIndex, ScreenPtr pScreen, int 
argc, char **argv)
        ErrorF("AlpScreenInit\n");
 #endif
 
-       /*
-        * First get the ScrnInfoRec
-        */
-       pScrn = xf86Screens[pScreen->myNum];
-
        hwp = VGAHWPTR(pScrn);
        pCir = CIRPTR(pScrn);
        
@@ -1513,7 +1508,7 @@ AlpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, 
char **argv)
        AlpSaveScreen(pScreen, SCREEN_SAVER_ON);
 
        /* Set the viewport */
-       AlpAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
+       AlpAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, 
pScrn->frameY0));
 
        /*
         * The next step is to setup the screen's visuals, and initialise the
@@ -1591,7 +1586,7 @@ AlpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, 
char **argv)
            init_picture = 1;
            break;
        default:
-           xf86DrvMsg(scrnIndex, X_ERROR,
+           xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                       "X11: Internal error: invalid bpp (%d) in 
AlpScreenInit\n",
                       pScrn->bitsPerPixel);
            ret = FALSE;
@@ -1747,9 +1742,10 @@ AlpScreenInit(int scrnIndex, ScreenPtr pScreen, int 
argc, char **argv)
 
 /* Usually mandatory */
 Bool
-AlpSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+AlpSwitchMode(SWITCH_MODE_ARGS_DECL)
 {
-       return AlpModeInit(xf86Screens[scrnIndex], mode);
+       SCRN_INFO_PTR(arg);
+       return AlpModeInit(pScrn, mode);
 }
 
 
@@ -1759,13 +1755,12 @@ AlpSwitchMode(int scrnIndex, DisplayModePtr mode, int 
flags)
  */
 /* Usually mandatory */
 void
-AlpAdjustFrame(int scrnIndex, int x, int y, int flags)
+AlpAdjustFrame(ADJUST_FRAME_ARGS_DECL)
 {
-       ScrnInfoPtr pScrn;
+       SCRN_INFO_PTR(arg);
        int Base, tmp;
        vgaHWPtr hwp;
 
-       pScrn = xf86Screens[scrnIndex];
        hwp = VGAHWPTR(pScrn);
 
        Base = ((y * pScrn->displayWidth + x) / 8);
@@ -1803,9 +1798,9 @@ AlpAdjustFrame(int scrnIndex, int x, int y, int flags)
 
 /* Mandatory */
 Bool
-AlpEnterVT(int scrnIndex, int flags)
+AlpEnterVT(VT_FUNC_ARGS_DECL)
 {
-       ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+       SCRN_INFO_PTR(arg);
        CirPtr pCir = CIRPTR(pScrn);
        Bool ret;
 
@@ -1833,9 +1828,9 @@ AlpEnterVT(int scrnIndex, int flags)
 
 /* Mandatory */
 void
-AlpLeaveVT(int scrnIndex, int flags)
+AlpLeaveVT(VT_FUNC_ARGS_DECL)
 {
-       ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+       SCRN_INFO_PTR(arg);
        vgaHWPtr hwp = VGAHWPTR(pScrn);
 #ifdef ALP_DEBUG
        ErrorF("AlpLeaveVT\n");
@@ -1860,9 +1855,9 @@ AlpLeaveVT(int scrnIndex, int flags)
 
 /* Mandatory */
 static Bool
-AlpCloseScreen(int scrnIndex, ScreenPtr pScreen)
+AlpCloseScreen(CLOSE_SCREEN_ARGS_DECL)
 {
-       ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+       ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
        vgaHWPtr hwp = VGAHWPTR(pScrn);
        CirPtr pCir = CIRPTR(pScrn);
 
@@ -1891,7 +1886,7 @@ AlpCloseScreen(int scrnIndex, ScreenPtr pScreen)
 #endif
 
        pScreen->CloseScreen = pCir->CloseScreen;
-       return (*pScreen->CloseScreen)(scrnIndex, pScreen);
+       return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);
 }
 
 
@@ -1899,8 +1894,9 @@ AlpCloseScreen(int scrnIndex, ScreenPtr pScreen)
 
 /* Optional */
 void
-AlpFreeScreen(int scrnIndex, int flags)
+AlpFreeScreen(FREE_SCREEN_ARGS_DECL)
 {
+       SCRN_INFO_PTR(arg);
 #ifdef ALP_DEBUG
        ErrorF("AlpFreeScreen\n");
 #endif
@@ -1909,8 +1905,8 @@ AlpFreeScreen(int scrnIndex, int flags)
         * get called routinely at the end of a server generation.
         */
        if (xf86LoaderCheckSymbol("vgaHWFreeHWRec"))
-               vgaHWFreeHWRec(xf86Screens[scrnIndex]);
-       AlpFreeRec(xf86Screens[scrnIndex]);
+               vgaHWFreeHWRec(pScrn);
+       AlpFreeRec(pScrn);
 }
 
 
@@ -1918,7 +1914,7 @@ AlpFreeScreen(int scrnIndex, int flags)
 
 /* Optional */
 ModeStatus
-AlpValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
+AlpValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags)
 {
        int lace;
 
diff --git a/src/alp_hwcurs.c b/src/alp_hwcurs.c
index 9891eb4..97c72e1 100644
--- a/src/alp_hwcurs.c
+++ b/src/alp_hwcurs.c
@@ -187,7 +187,7 @@ AlpShowCursor(ScrnInfoPtr pScrn)
 static Bool
 AlpUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
 {
-       ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+       ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 #ifdef ALP_DEBUG
        ErrorF("AlpUseHWCursor\n");
 #endif
@@ -200,7 +200,7 @@ AlpUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
 Bool
 AlpHWCursorInit(ScreenPtr pScreen, int size)
 {
-       ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+       ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
        const CirPtr pCir = CIRPTR(pScrn);
        const AlpPtr pAlp = ALPPTR(pCir);
        
diff --git a/src/alp_xaa.c b/src/alp_xaa.c
index 7a96e1a..cc8c0d9 100644
--- a/src/alp_xaa.c
+++ b/src/alp_xaa.c
@@ -588,7 +588,7 @@ AlpAccelEngineInit(ScrnInfoPtr pScrn)
 Bool
 AlpXAAInit(ScreenPtr pScreen)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     CirPtr pCir = CIRPTR(pScrn);
     AlpPtr pAlp = ALPPTR(pCir);
     XAAInfoRecPtr XAAPtr;
diff --git a/src/alp_xaam.c b/src/alp_xaam.c
index 3ecc7de..42bbb31 100644
--- a/src/alp_xaam.c
+++ b/src/alp_xaam.c
@@ -222,7 +222,7 @@ AlpAccelEngineInit(ScrnInfoPtr pScrn)
 Bool
 AlpXAAInitMMIO(ScreenPtr pScreen)
 {
-       ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+       ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
        CirPtr pCir = CIRPTR(pScrn);
        XAAInfoRecPtr XAAPtr;
        
diff --git a/src/cir.h b/src/cir.h
index 861966d..3915a31 100644
--- a/src/cir.h
+++ b/src/cir.h
@@ -9,6 +9,7 @@
 #include <string.h>
 #include <stdlib.h>
 
+#include "compat-api.h"
 #include "cir_pcirename.h"
 
 /* Card-specific driver information */
@@ -59,7 +60,7 @@ typedef struct {
        int                     rotate;
        int                     ShadowPitch;
        unsigned char *         ShadowPtr;
-       void                    (*PointerMoved)(int index, int x, int y);
+       void                    (*PointerMoved)(SCRN_ARG_TYPE arg, int x, int 
y);
        int                     pitch;
 
        unsigned char **        ScanlineColorExpandBuffers;
@@ -85,7 +86,7 @@ extern void cirProbeDDC(ScrnInfoPtr pScrn, int index);
 extern Bool CirDGAInit(ScreenPtr pScreen);
 
 /* in cir_shadow.c */
-void cirPointerMoved(int index, int x, int y);
+void cirPointerMoved(SCRN_ARG_TYPE arg, int x, int y);
 void cirRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
 void cirRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
 void cirRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
diff --git a/src/cir_dga.c b/src/cir_dga.c
index f930231..44abfd9 100644
--- a/src/cir_dga.c
+++ b/src/cir_dga.c
@@ -69,7 +69,7 @@ DGAFunctionRec CirDGAFuncs = {
 _X_EXPORT Bool
 CirDGAInit(ScreenPtr pScreen)
 {
-  ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+  ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
   CirPtr pCir = CIRPTR(pScrn);
   DGAModePtr modes = NULL, newmodes = NULL, currentMode;
   DisplayModePtr pMode, firstMode;
@@ -191,7 +191,7 @@ Cir_SetViewport(
    CirPtr pCir = CIRPTR(pScrn);
    vgaHWPtr hwp = VGAHWPTR(pScrn);
 
-   pScrn->AdjustFrame(pScrn->pScreen->myNum, x, y, flags);
+   pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y));
 
    while((hwp->readST01(hwp) & 0x08));
    while(!(hwp->readST01(hwp) & 0x08));
diff --git a/src/cir_shadow.c b/src/cir_shadow.c
index 0716a64..5dc8d08 100644
--- a/src/cir_shadow.c
+++ b/src/cir_shadow.c
@@ -44,9 +44,9 @@ cirRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
 } 
 
 _X_EXPORT void
-cirPointerMoved(int index, int x, int y)
+cirPointerMoved(SCRN_ARG_TYPE arg, int x, int y)
 {
-    ScrnInfoPtr pScrn = xf86Screens[index];
+    SCRN_INFO_PTR(arg);
     CirPtr pCir = CIRPTR(pScrn);
     int newX, newY;
 
@@ -58,7 +58,7 @@ cirPointerMoved(int index, int x, int y)
        newY = pScrn->pScreen->width - x - 1;
     }
 
-    (*pCir->PointerMoved)(index, newX, newY);
+    (*pCir->PointerMoved)(arg, newX, newY);
 }
 
 _X_EXPORT void
diff --git a/src/compat-api.h b/src/compat-api.h
new file mode 100644
index 0000000..6bc946f
--- /dev/null
+++ b/src/compat-api.h
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2012 Red Hat, Inc.
+ *
+ * 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.
+ *
+ * Author: Dave Airlie <airl...@redhat.com>
+ */
+
+/* this file provides API compat between server post 1.13 and pre it,
+   it should be reused inside as many drivers as possible */
+#ifndef COMPAT_API_H
+#define COMPAT_API_H
+
+#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR
+#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum]
+#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p
+#endif
+
+#ifndef XF86_HAS_SCRN_CONV
+#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum]
+#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex]
+#endif
+
+#ifndef XF86_SCRN_INTERFACE
+
+#define SCRN_ARG_TYPE int
+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)]
+
+#define SCREEN_ARG_TYPE int
+#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)]
+
+#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv
+
+#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, 
pointer pReadmask
+#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask


-- 
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/e1sqlwt-00088d...@vasks.debian.org

Reply via email to