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

xserver-xorg-video-r128: Changes to 'debian-experimental'



 .gitignore            |   84 +++++++++--
 COPYING               |   95 ++++++++++++-
 ChangeLog             |  354 ++++++++++++++++++++++++++++++++++++++++++++++++++
 Makefile.am           |   16 --
 README                |  159 ++++++++++++++++++++++
 README.r128           |  160 ----------------------
 README.r128.sgml      |  138 -------------------
 configure.ac          |   77 ++++++----
 debian/changelog      |   13 +
 debian/control        |    6 
 debian/patches/series |    1 
 man/Makefile.am       |   63 +++-----
 man/r128.man          |    1 
 src/Makefile.am       |    1 
 src/atipcirename.h    |   27 +++
 src/compat-api.h      |   99 +++++++++++++
 src/r128.h            |   30 ++--
 src/r128_accel.c      |   40 ++++-
 src/r128_cursor.c     |    4 
 src/r128_dga.c        |   32 ++--
 src/r128_dri.c        |   76 ++++++----
 src/r128_driver.c     |  203 +++++++++++++---------------
 src/r128_misc.c       |    3 
 src/r128_probe.c      |   10 -
 src/r128_probe.h      |   14 -
 src/r128_video.c      |   22 +--
 26 files changed, 1113 insertions(+), 615 deletions(-)

New commits:
commit 1592e880e50acceb83883bdbcd55197cda50059d
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Jul 18 16:17:18 2012 +0200

    Add missing misc:Depends to shut up lintian

diff --git a/debian/control b/debian/control
index eba422e..45eec5e 100644
--- a/debian/control
+++ b/debian/control
@@ -46,7 +46,9 @@ Description: X.Org X server -- ATI r128 display driver
 
 Package: xserver-xorg-video-r128-dbg
 Architecture: any
-Depends: xserver-xorg-video-r128 (= ${binary:Version})
+Depends:
+ xserver-xorg-video-r128 (= ${binary:Version}),
+ ${misc:Depends},
 Section: debug
 Priority: extra
 Description: X.Org X server -- ATI r128 display driver (debugging symbols)

commit 10ff322effd588ae9ece92e19a3885915d959eae
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Jul 18 16:15:03 2012 +0200

    Bump Standards-Version to 3.9.3

diff --git a/debian/changelog b/debian/changelog
index f8774b1..ef69746 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 xserver-xorg-video-r128 (6.8.4-1) UNRELEASED; urgency=low
 
   * New upstream release.
+  * Bump Standards-Version to 3.9.3
 
  -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Wed, 18 Jul 2012 16:13:52 +0200
 
diff --git a/debian/control b/debian/control
index 5567265..eba422e 100644
--- a/debian/control
+++ b/debian/control
@@ -21,7 +21,7 @@ Build-Depends:
  x11proto-xf86dri-dev,
  quilt,
  xutils-dev
-Standards-Version: 3.9.1
+Standards-Version: 3.9.3
 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-r128
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-r128.git
 
diff --git a/debian/patches/series b/debian/patches/series
index e69de29..fdffa2a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -0,0 +1 @@
+# placeholder

commit 1dd257e2ae08b4ecf373431b1e1cb05c5421bf73
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Jul 18 16:14:41 2012 +0200

    New upstream release.

diff --git a/debian/changelog b/debian/changelog
index 499a397..f8774b1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-r128 (6.8.4-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Wed, 18 Jul 2012 16:13:52 +0200
+
 xserver-xorg-video-r128 (6.8.2-1) unstable; urgency=low
 
   * New upstream release.

commit c0418e1fb0407fcdfa665386ddd33ebad219d7a8
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Jul 18 16:13:46 2012 +0200

    Bump changelog.

diff --git a/ChangeLog b/ChangeLog
index eb9ceaf..bb89291 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,37 @@
+commit a4231073010096f689df72c1f8f1453852f28d81
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Tue Jul 17 16:05:09 2012 +1000
+
+    xf86-video-r128: bump to version 6.8.4
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 16df5622c550c64711a25a9d8ece9152c3047a94
+Author: Dave Airlie <airlied@gmail.com>
+Date:   Sun Jul 15 17:14:10 2012 +1000
+
+    r128: drop XAA support.
+    
+    this just makes XAA conditional.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 734e9ff97b81af732ab7065761212e8eb8f6aa3c
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Jul 2 12:26:11 2012 +0100
+
+    r128: bump 6.8.3 release
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit b027633fcfc0e226b78036e27c66ccd76542e43f
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Jun 6 11:02:27 2012 +0100
+
+    r128: port to new compat API.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
 commit 1ac4cd4b41d0e8232660df78ff136df1214f3907
 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 Date:   Fri Mar 23 19:23:54 2012 -0700

commit a4231073010096f689df72c1f8f1453852f28d81
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Jul 17 16:05:09 2012 +1000

    xf86-video-r128: bump to version 6.8.4
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/configure.ac b/configure.ac
index 6c4f5d9..e45a402 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-r128],
-        [6.8.3],
+        [6.8.4],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-r128])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 16df5622c550c64711a25a9d8ece9152c3047a94
Author: Dave Airlie <airlied@gmail.com>
Date:   Sun Jul 15 17:14:10 2012 +1000

    r128: drop XAA support.
    
    this just makes XAA conditional.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/configure.ac b/configure.ac
index 8049006..6c4f5d9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -117,6 +117,24 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
 	      [#include "xorg-server.h"])
 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])
+
 AM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes)
 
 if test "x$XSERVER_LIBPCIACCESS" = xyes; then
diff --git a/src/r128.h b/src/r128.h
index 3c51879..bee1562 100644
--- a/src/r128.h
+++ b/src/r128.h
@@ -44,7 +44,10 @@
 #include "xf86Pci.h"
 
 				/* XAA and Cursor Support */
+#ifdef HAVE_XAA_H
 #include "xaa.h"
+#endif
+#include "xf86fbman.h"
 #include "xf86Cursor.h"
 
 				/* DDC support */
@@ -65,6 +68,8 @@
 #include "GL/glxint.h"
 #endif
 
+#include "fb.h"
+
 #include "compat-api.h"
 #include "atipcirename.h"
 
@@ -276,7 +281,9 @@ typedef struct {
 
     Bool              PaletteSavedOnVT; /* Palette saved on last VT switch   */
 
+#ifdef HAVE_XAA_H
     XAAInfoRecPtr     accel;
+#endif
     Bool              accelOn;
     xf86CursorInfoPtr cursor;
     unsigned long     cursor_start;
diff --git a/src/r128_accel.c b/src/r128_accel.c
index 7708bda..defc076 100644
--- a/src/r128_accel.c
+++ b/src/r128_accel.c
@@ -101,6 +101,7 @@
 				/* X and server generic header files */
 #include "xf86.h"
 
+#ifdef HAVE_XAA_H
 static struct {
     int rop;
     int pattern;
@@ -122,6 +123,7 @@ static struct {
     { R128_ROP3_DSan, R128_ROP3_DPan }, /* GXnand         */
     { R128_ROP3_ONE,  R128_ROP3_ONE  }  /* GXset          */
 };
+#endif
 
 extern int getR128EntityIndex(void);
 
@@ -317,6 +319,7 @@ int R128CCEStop(ScrnInfoPtr pScrn)
 
 #endif
 
+#ifdef HAVE_XAA_H
 /* Setup for XAA SolidFill. */
 static void R128SetupForSolidFill(ScrnInfoPtr pScrn,
 				  int color, int rop, unsigned int planemask)
@@ -1006,6 +1009,7 @@ static void R128SubsequentImageWriteScanline(ScrnInfoPtr pScrn, int bufno)
 	}
     }
 }
+#endif
 
 /* Initialize the acceleration hardware. */
 void R128EngineInit(ScrnInfoPtr pScrn)
@@ -1098,6 +1102,8 @@ void R128EngineInit(ScrnInfoPtr pScrn)
 
 #ifdef R128DRI
 
+#ifdef HAVE_XAA_H
+
 /* Setup for XAA SolidFill. */
 static void R128CCESetupForSolidFill(ScrnInfoPtr pScrn,
 				     int color, int rop,
@@ -1540,6 +1546,7 @@ static void R128CCESubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn,
 
     ADVANCE_RING();
 }
+#endif
 
 /* Get an indirect buffer for the CCE 2D acceleration commands.
  */
@@ -1634,6 +1641,7 @@ void R128CCEFlushIndirect( ScrnInfoPtr pScrn, int discard )
     info->indirectStart = buffer->used;
 }
 
+#ifdef HAVE_XAA_H
 /* Flush and release the indirect buffer.
  */
 void R128CCEReleaseIndirect( ScrnInfoPtr pScrn )
@@ -1743,7 +1751,9 @@ static void R128CCEAccelInit(ScrnInfoPtr pScrn, XAAInfoRecPtr a)
 
 }
 #endif
+#endif
 
+#ifdef HAVE_XAA_H
 /* This callback is required for multihead cards using XAA */
 static
 void R128RestoreAccelState(ScrnInfoPtr pScrn)
@@ -1857,11 +1867,15 @@ static void R128MMIOAccelInit(ScrnInfoPtr pScrn, XAAInfoRecPtr a)
     }
 
 }
+#endif
 
 /* Initialize XAA for supported acceleration and also initialize the
    graphics hardware for acceleration. */
 Bool R128AccelInit(ScreenPtr pScreen)
 {
+#ifndef HAVE_XAA_H
+    return FALSE;
+#else
     ScrnInfoPtr   pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr   info  = R128PTR(pScrn);
     XAAInfoRecPtr a;
@@ -1880,4 +1894,5 @@ Bool R128AccelInit(ScreenPtr pScreen)
 
     R128EngineInit(pScrn);
     return XAAInit(pScreen, a);
+#endif
 }
diff --git a/src/r128_dga.c b/src/r128_dga.c
index 71e1b42..d7fee02 100644
--- a/src/r128_dga.c
+++ b/src/r128_dga.c
@@ -29,10 +29,12 @@ static Bool R128_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **,
 static Bool R128_SetMode(ScrnInfoPtr, DGAModePtr);
 static int  R128_GetViewport(ScrnInfoPtr);
 static void R128_SetViewport(ScrnInfoPtr, int, int, int);
+#ifdef HAVE_XAA_H
 static void R128_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
 static void R128_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
 static void R128_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int,
 			       unsigned long);
+#endif
 
 static DGAModePtr R128SetupDGAMode(ScrnInfoPtr pScrn,
 				     DGAModePtr modes,
@@ -81,6 +83,7 @@ SECOND_PASS:
 	    if (pixmap)
 		currentMode->flags     |= DGA_PIXMAP_AVAILABLE;
 
+#ifdef HAVE_XAA_H
 	    if (info->accel) {
 	      if (info->accel->SetupForSolidFill &&
 		  info->accel->SubsequentSolidFillRect)
@@ -93,6 +96,7 @@ SECOND_PASS:
 		   DGA_BLIT_RECT | DGA_BLIT_RECT_TRANS))
 		  currentMode->flags   &= ~DGA_CONCURRENT_ACCESS;
 	    }
+#endif
 	    if (pMode->Flags & V_DBLSCAN)
 		currentMode->flags     |= DGA_DOUBLESCAN;
 	    if (pMode->Flags & V_INTERLACE)
@@ -211,6 +215,7 @@ R128DGAInit(ScreenPtr pScreen)
    info->DGAFuncs.BlitRect           = NULL;
    info->DGAFuncs.BlitTransRect      = NULL;
 
+#ifdef HAVE_XAA_H
    if (info->accel) {
       info->DGAFuncs.Sync            = info->accel->Sync;
       if (info->accel->SetupForSolidFill &&
@@ -222,6 +227,7 @@ R128DGAInit(ScreenPtr pScreen)
 	info->DGAFuncs.BlitTransRect = R128_BlitTransRect;
       }
    }
+#endif
 
    return DGAInit(pScreen, &(info->DGAFuncs), modes, num);
 }
@@ -317,7 +323,7 @@ R128_SetViewport(
    info->DGAViewportStatus = 0;  /* FIXME */
 }
 
-
+#ifdef HAVE_XAA_H
 static void
 R128_FillRect (
    ScrnInfoPtr pScrn,
@@ -379,7 +385,7 @@ R128_BlitTransRect(
     if (pScrn->bitsPerPixel == info->CurrentLayout.bitsPerPixel)
 	SET_SYNC_FLAG(info->accel);
 }
-
+#endif
 
 static Bool
 R128_OpenFramebuffer(
diff --git a/src/r128_dri.c b/src/r128_dri.c
index 4f318ef..09b3cff 100644
--- a/src/r128_dri.c
+++ b/src/r128_dri.c
@@ -301,10 +301,11 @@ static void R128DestroyContext(ScreenPtr pScreen, drm_context_t hwContext,
    can start/stop the engine. */
 static void R128EnterServer(ScreenPtr pScreen)
 {
+#ifdef HAVE_XAA_H
     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr info = R128PTR(pScrn);
-
     if (info->accel) info->accel->NeedToSync = TRUE;
+#endif
 }
 
 /* Called when the X server goes to sleep to allow the X server's
@@ -358,9 +359,11 @@ static void R128DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 indx)
     ScreenPtr   pScreen = pWin->drawable.pScreen;
     ScrnInfoPtr pScrn   = xf86ScreenToScrn(pScreen);
     R128InfoPtr info    = R128PTR(pScrn);
+#ifdef HAVE_XAA_H
     BoxPtr      pbox, pboxSave;
     int         nbox, nboxSave;
     int         depth;
+#endif
 
     /* FIXME: Use accel when CCE 2D code is written
      * EA: What is this code kept for? Radeon doesn't have it and
@@ -369,7 +372,7 @@ static void R128DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 indx)
      */
     if (info->directRenderingEnabled)
 	return;
-
+#ifdef HAVE_XAA_H
     /* FIXME: This should be based on the __GLXvisualConfig info */
     switch (pScrn->bitsPerPixel) {
     case  8: depth = 0x000000ff; break;
@@ -413,6 +416,7 @@ static void R128DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 indx)
 						pbox->y2 - pbox->y1);
 
     info->accel->NeedToSync = TRUE;
+#endif
 }
 
 /* Copy the back and depth buffers when the X server moves a window. */
@@ -1386,8 +1390,10 @@ void R128DRICloseScreen(ScreenPtr pScreen)
 
 static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
 {
+#ifdef HAVE_XAA_H
     R128InfoPtr         info       = R128PTR(pScrn);
     int                 i;
+#endif
     R128SAREAPrivPtr    pSAREAPriv = DRIGetSAREAPrivate(pScrn->pScreen);
 
     /* Don't want to do this when no 3d is active and pages are
@@ -1396,6 +1402,7 @@ static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
     if (!pSAREAPriv->pfAllowPageFlip && pSAREAPriv->pfCurrentPage == 0)
 	return;
 
+#ifdef HAVE_XAA_H
     (*info->accel->SetupForScreenToScreenCopy)(pScrn,
 					       1, 1, GXcopy,
 					       (CARD32)(-1), -1);
@@ -1412,10 +1419,12 @@ static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
 							 yb - ya + 1);
 	}
     }
+#endif
 }
 
 static void R128EnablePageFlip(ScreenPtr pScreen)
 {
+#ifdef HAVE_XAA_H
     ScrnInfoPtr         pScrn      = xf86ScreenToScrn(pScreen);
     R128InfoPtr         info       = R128PTR(pScrn);
     R128SAREAPrivPtr    pSAREAPriv = DRIGetSAREAPrivate(pScreen);
@@ -1436,6 +1445,7 @@ static void R128EnablePageFlip(ScreenPtr pScreen)
 
 	pSAREAPriv->pfAllowPageFlip = 1;
     }
+#endif
 }
 
 static void R128DisablePageFlip(ScreenPtr pScreen)
diff --git a/src/r128_driver.c b/src/r128_driver.c
index bfa3dfd..9714896 100644
--- a/src/r128_driver.c
+++ b/src/r128_driver.c
@@ -78,8 +78,6 @@
 #include "r128_sarea.h"
 #endif
 
-#include "fb.h"
-
 				/* colormap initialization */
 #include "micmap.h"
 
@@ -4298,8 +4296,10 @@ static Bool R128CloseScreen(CLOSE_SCREEN_ARGS_DECL)
 	R128UnmapMem(pScrn);
     }
 
+#ifdef HAVE_XAA_H
     if (info->accel)             XAADestroyInfoRec(info->accel);
     info->accel                  = NULL;
+#endif
 
     if (info->scratch_save)      free(info->scratch_save);
     info->scratch_save           = NULL;

commit 734e9ff97b81af732ab7065761212e8eb8f6aa3c
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jul 2 12:26:11 2012 +0100

    r128: bump 6.8.3 release
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/configure.ac b/configure.ac
index ecbe3d3..8049006 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-r128],
-        [6.8.2],
+        [6.8.3],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-r128])
 AC_CONFIG_SRCDIR([Makefile.am])

commit b027633fcfc0e226b78036e27c66ccd76542e43f
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Jun 6 11:02:27 2012 +0100

    r128: port to new compat API.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/src/Makefile.am b/src/Makefile.am
index df7c65c..f8bc8d1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -40,6 +40,7 @@ r128_drv_la_SOURCES = \
 	r128_video.c r128_misc.c r128_probe.c $(R128_DRI_SRCS)
 
 EXTRA_DIST = \
+        compat-api.h \
 	r128_common.h \
 	r128_dri.h \
 	r128_dripriv.h \
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 <airlied@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
+
+#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen
+#define CLOSE_SCREEN_ARGS scrnIndex, pScreen
+
+#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags
+#define ADJUST_FRAME_ARGS(arg, x, y) (arg)->scrnIndex, x, y, 0
+
+#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags
+#define SWITCH_MODE_ARGS(arg, m) (arg)->scrnIndex, m, 0
+
+#define FREE_SCREEN_ARGS_DECL int arg, int flags
+
+#define VT_FUNC_ARGS_DECL int arg, int flags
+#define VT_FUNC_ARGS pScrn->scrnIndex, 0
+
+#define XF86_SCRN_ARG(x) ((x)->scrnIndex)
+#else
+#define SCRN_ARG_TYPE ScrnInfoPtr
+#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1)
+
+#define SCREEN_ARG_TYPE ScreenPtr
+#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1)
+
+#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
+
+#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
+
+#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+#define CLOSE_SCREEN_ARGS pScreen
+
+#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y
+#define ADJUST_FRAME_ARGS(arg, x, y) arg, x, y
+
+#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode
+#define SWITCH_MODE_ARGS(arg, m) arg, m
+
+#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg
+
+#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg
+#define VT_FUNC_ARGS pScrn
+
+#define XF86_SCRN_ARG(x) (x)
+
+#endif
+
+#endif
diff --git a/src/r128.h b/src/r128.h
index fcef00c..3c51879 100644
--- a/src/r128.h
+++ b/src/r128.h
@@ -53,8 +53,6 @@
 				/* Xv support */
 #include "xf86xv.h"
 
-#include "r128_probe.h"
-
 				/* DRI support */
 #ifndef XF86DRI
 #undef R128DRI
@@ -67,8 +65,11 @@
 #include "GL/glxint.h"
 #endif
 
+#include "compat-api.h"
 #include "atipcirename.h"
 
+#include "r128_probe.h"
+
 #define R128_DEBUG          0   /* Turn off debugging output               */
 #define R128_IDLE_RETRY    32   /* Fall out of idle loops after this count */
 #define R128_TIMEOUT  2000000   /* Fall out of wait loops after this count */
@@ -270,8 +271,8 @@ typedef struct {
 
     R128SaveRec       SavedReg;     /* Original (text) mode                  */
     R128SaveRec       ModeReg;      /* Current mode                          */
-    Bool              (*CloseScreen)(int, ScreenPtr);
-    void              (*BlockHandler)(int, pointer, pointer, pointer);
+    Bool              (*CloseScreen)(CLOSE_SCREEN_ARGS_DECL);
+    void              (*BlockHandler)(BLOCKHANDLER_ARGS_DECL);
 
     Bool              PaletteSavedOnVT; /* Palette saved on last VT switch   */
 
diff --git a/src/r128_accel.c b/src/r128_accel.c
index 056b0b3..7708bda 100644
--- a/src/r128_accel.c
+++ b/src/r128_accel.c
@@ -1862,7 +1862,7 @@ static void R128MMIOAccelInit(ScrnInfoPtr pScrn, XAAInfoRecPtr a)
    graphics hardware for acceleration. */
 Bool R128AccelInit(ScreenPtr pScreen)
 {
-    ScrnInfoPtr   pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr   pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr   info  = R128PTR(pScrn);
     XAAInfoRecPtr a;
 
diff --git a/src/r128_cursor.c b/src/r128_cursor.c
index 8321284..62d277d 100644
--- a/src/r128_cursor.c
+++ b/src/r128_cursor.c
@@ -241,7 +241,7 @@ static void R128ShowCursor(ScrnInfoPtr pScrn)
 /* Determine if hardware cursor is in use. */
 static Bool R128UseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr info  = R128PTR(pScrn);
 
     return info->cursor_start ? TRUE : FALSE;
@@ -250,7 +250,7 @@ static Bool R128UseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
 /* Initialize hardware cursor support. */
 Bool R128CursorInit(ScreenPtr pScreen)
 {
-    ScrnInfoPtr           pScrn   = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr           pScrn   = xf86ScreenToScrn(pScreen);
     R128InfoPtr           info    = R128PTR(pScrn);
     xf86CursorInfoPtr     cursor;
     FBAreaPtr             fbarea;
diff --git a/src/r128_dga.c b/src/r128_dga.c
index 1c8a8dd..71e1b42 100644
--- a/src/r128_dga.c
+++ b/src/r128_dga.c
@@ -142,7 +142,7 @@ SECOND_PASS:
 Bool
 R128DGAInit(ScreenPtr pScreen)
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    R128InfoPtr info = R128PTR(pScrn);
    DGAModePtr modes = NULL;
    int num = 0;
@@ -243,7 +243,7 @@ R128_SetMode(
 
 	pScrn->currentMode = info->CurrentLayout.mode;
 
-	pScrn->SwitchMode(indx, pScrn->currentMode, 0);
+	pScrn->SwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode));
 #ifdef R128DRI
 	if (info->directRenderingEnabled) {
 	    R128CCE_STOP(pScrn, info);
@@ -256,7 +256,7 @@ R128_SetMode(
 	    R128CCE_START(pScrn, info);
 	}
 #endif
-	pScrn->AdjustFrame(indx, 0, 0, 0);
+	pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, 0, 0));
 	info->DGAactive = FALSE;
    } else {
 	if(!info->DGAactive) {  /* save the old parameters */
@@ -274,7 +274,7 @@ R128_SetMode(
 					  : pMode->depth);
 	/* R128ModeInit() will set the mode field */
 
-	pScrn->SwitchMode(indx, pMode->mode, 0);
+	pScrn->SwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode));
 
 #ifdef R128DRI
 	if (info->directRenderingEnabled) {
@@ -313,7 +313,7 @@ R128_SetViewport(
 ){
    R128InfoPtr info = R128PTR(pScrn);
 
-   pScrn->AdjustFrame(pScrn->pScreen->myNum, x, y, flags);
+   pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y));
    info->DGAViewportStatus = 0;  /* FIXME */
 }
 
diff --git a/src/r128_dri.c b/src/r128_dri.c
index 624e3a5..4f318ef 100644
--- a/src/r128_dri.c
+++ b/src/r128_dri.c
@@ -77,7 +77,7 @@ static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
    client. */
 static Bool R128InitVisualConfigs(ScreenPtr pScreen)
 {
-    ScrnInfoPtr       pScrn            = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr       pScrn            = xf86ScreenToScrn(pScreen);
     R128InfoPtr       info             = R128PTR(pScrn);
     int               numConfigs       = 0;
     __GLXvisualConfig *pConfigs        = NULL;
@@ -279,7 +279,7 @@ static Bool R128CreateContext(ScreenPtr pScreen, VisualPtr visual,
 			      drm_context_t hwContext, void *pVisualConfigPriv,
 			      DRIContextType contextStore)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr info = R128PTR(pScrn);
 
     info->drmCtx = hwContext;
@@ -301,7 +301,7 @@ static void R128DestroyContext(ScreenPtr pScreen, drm_context_t hwContext,
    can start/stop the engine. */
 static void R128EnterServer(ScreenPtr pScreen)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr info = R128PTR(pScrn);
 
     if (info->accel) info->accel->NeedToSync = TRUE;
@@ -315,7 +315,7 @@ static void R128EnterServer(ScreenPtr pScreen)
    can start/stop the engine. */
 static void R128LeaveServer(ScreenPtr pScreen)
 {
-    ScrnInfoPtr   pScrn     = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr   pScrn     = xf86ScreenToScrn(pScreen);
     R128InfoPtr   info      = R128PTR(pScrn);
     unsigned char *R128MMIO = info->MMIO;
 
@@ -356,7 +356,7 @@ static void R128DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 indx)
 {
     /* FIXME: This routine needs to have acceleration turned on */
     ScreenPtr   pScreen = pWin->drawable.pScreen;
-    ScrnInfoPtr pScrn   = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn   = xf86ScreenToScrn(pScreen);
     R128InfoPtr info    = R128PTR(pScrn);
     BoxPtr      pbox, pboxSave;
     int         nbox, nboxSave;
@@ -420,7 +420,7 @@ static void R128DRIMoveBuffers(WindowPtr pWin, DDXPointRec ptOldOrg,
 			       RegionPtr prgnSrc, CARD32 indx)
 {
     ScreenPtr   pScreen = pWin->drawable.pScreen;
-    ScrnInfoPtr pScrn   = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn   = xf86ScreenToScrn(pScreen);
     R128InfoPtr info   = R128PTR(pScrn);
 
     /* FIXME: This routine needs to have acceleration turned on */
@@ -905,7 +905,7 @@ static Bool R128DRIBufInit(R128InfoPtr info, ScreenPtr pScreen)
 
 static void R128DRIIrqInit(R128InfoPtr info, ScreenPtr pScreen)
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 
    if (!info->irq) {
       info->irq = drmGetInterruptFromBusID(
@@ -969,7 +969,7 @@ static void R128DRICCEInit(ScrnInfoPtr pScrn)
    create the DRI data structures and initialize the DRI state. */
 Bool R128DRIScreenInit(ScreenPtr pScreen)
 {
-    ScrnInfoPtr   pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr   pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr   info = R128PTR(pScrn);
     DRIInfoPtr    pDRIInfo;
     R128DRIPtr    pR128DRI;
@@ -1206,7 +1206,7 @@ Bool R128DRIScreenInit(ScreenPtr pScreen)
    initialization. */
 Bool R128DRIFinishScreenInit(ScreenPtr pScreen)
 {
-    ScrnInfoPtr      pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr      pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr      info  = R128PTR(pScrn);
     R128SAREAPrivPtr pSAREAPriv;
     R128DRIPtr       pR128DRI;
@@ -1291,7 +1291,7 @@ Bool R128DRIFinishScreenInit(ScreenPtr pScreen)
    resources used by the DRI. */
 void R128DRICloseScreen(ScreenPtr pScreen)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr info = R128PTR(pScrn);
     drmR128Init drmInfo;
 
@@ -1416,7 +1416,7 @@ static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
 
 static void R128EnablePageFlip(ScreenPtr pScreen)
 {
-    ScrnInfoPtr         pScrn      = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr         pScrn      = xf86ScreenToScrn(pScreen);
     R128InfoPtr         info       = R128PTR(pScrn);
     R128SAREAPrivPtr    pSAREAPriv = DRIGetSAREAPrivate(pScreen);
 
@@ -1462,7 +1462,7 @@ static void R128DRITransitionMultiToSingle3d(ScreenPtr pScreen)
 
 static void R128DRITransitionTo3d(ScreenPtr pScreen)
 {
-    ScrnInfoPtr    pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr    pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr    info  = R128PTR(pScrn);
 
     R128EnablePageFlip(pScreen);
@@ -1475,7 +1475,7 @@ static void R128DRITransitionTo3d(ScreenPtr pScreen)
 
 static void R128DRITransitionTo2d(ScreenPtr pScreen)
 {
-    ScrnInfoPtr         pScrn      = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr         pScrn      = xf86ScreenToScrn(pScreen);
     R128InfoPtr         info       = R128PTR(pScrn);
     R128SAREAPrivPtr    pSAREAPriv = DRIGetSAREAPrivate(pScreen);
 
diff --git a/src/r128_driver.c b/src/r128_driver.c
index dc83076..bfa3dfd 100644
--- a/src/r128_driver.c
+++ b/src/r128_driver.c
@@ -118,7 +118,7 @@
 #define USE_CRT_ONLY	0
 
 				/* Forward definitions for driver functions */
-static Bool R128CloseScreen(int scrnIndex, ScreenPtr pScreen);
+static Bool R128CloseScreen(CLOSE_SCREEN_ARGS_DECL);
 static Bool R128SaveScreen(ScreenPtr pScreen, int mode);
 static void R128Save(ScrnInfoPtr pScrn);
 static void R128Restore(ScrnInfoPtr pScrn);
@@ -1357,7 +1357,7 @@ static Bool R128GetDFPInfo(ScrnInfoPtr pScrn)
     OUTREG(info->DDCReg, INREG(info->DDCReg)
            & ~(CARD32)(R128_GPIO_MONID_A_0 | R128_GPIO_MONID_A_3));
 
-    MonInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, info->pI2CBus);
+    MonInfo = xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn), info->pI2CBus);
     if(!MonInfo) {
         xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                    "No DFP detected\n");
@@ -2165,10 +2165,10 @@ static void R128LoadPalette(ScrnInfoPtr pScrn, int numColors,
 }
 
 static void
-R128BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask)
+R128BlockHandler(BLOCKHANDLER_ARGS_DECL)
 {
-    ScreenPtr   pScreen = screenInfo.screens[i];
-    ScrnInfoPtr pScrn   = xf86Screens[i];
+    SCREEN_PTR(arg);
+    ScrnInfoPtr pScrn   = xf86ScreenToScrn(pScreen);
     R128InfoPtr info    = R128PTR(pScrn);
 
 #ifdef R128DRI
@@ -2177,7 +2177,7 @@ R128BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask)
 #endif
 
     pScreen->BlockHandler = info->BlockHandler;
-    (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
+    (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS);
     pScreen->BlockHandler = R128BlockHandler;
 
     if(info->VideoTimerCallback) {
@@ -2186,10 +2186,9 @@ R128BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask)
 }
 
 /* Called at the start of each server generation. */
-Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen,
-                              int argc, char **argv)
+Bool R128ScreenInit(SCREEN_INIT_ARGS_DECL)
 {
-    ScrnInfoPtr pScrn  = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     R128InfoPtr info   = R128PTR(pScrn);
     BoxRec      MemBox;
     int		y2;
@@ -2223,7 +2222,7 @@ Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen,
     }
 
     R128SaveScreen(pScreen, SCREEN_SAVER_ON);
-    pScrn->AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
+    pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0));
 
 				/* Visual setup */
     miClearVisualTypes();
@@ -2250,11 +2249,11 @@ Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen,
 	int maxy        = info->FbMapSize / width_bytes;
 
 	if (noAccel) {
-	    xf86DrvMsg(scrnIndex, X_WARNING,
+	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 		       "Acceleration disabled, not initializing the DRI\n");
 	    info->directRenderingEnabled = FALSE;
 	} else if (maxy <= pScrn->virtualY * 3) {
-	    xf86DrvMsg(scrnIndex, X_WARNING,
+	    xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 		       "Static buffer allocation failed -- "
 		       "need at least %d kB video memory\n",
 		       (pScrn->displayWidth * pScrn->virtualY *
@@ -2269,7 +2268,7 @@ Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen,
                 if(xf86IsEntityShared(pScrn->entityList[0]))
                 {
                     info->directRenderingEnabled = FALSE;
- 	            xf86DrvMsg(scrnIndex, X_WARNING,
+ 	            xf86DrvMsg(pScrn->scrnIndex, X_WARNING,


Reply to: