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

xserver-xorg-video-mga: Changes to 'ubuntu'



 .gitignore                                           |   75 +
 ChangeLog                                            |  540 ++++++++
 Makefile.am                                          |   12 
 configure.ac                                         |   85 -
 debian/README.source                                 |   26 
 debian/changelog                                     |  107 +
 debian/compat                                        |    2 
 debian/control                                       |   32 
 debian/patches/02_tentatively_unbreak_dual_head.diff |  175 ++
 debian/patches/100_add_200EH_support.patch           |  428 -------
 debian/patches/series                                |    2 
 debian/rules                                         |  103 -
 debian/watch                                         |    3 
 debian/xsfbs/xsfbs.mk                                |  276 ----
 debian/xsfbs/xsfbs.sh                                |  622 ----------
 man/Makefile.am                                      |   63 -
 man/mga.man                                          |    1 
 src/Makefile.am                                      |    8 
 src/binding.h                                        |   32 
 src/client.h                                         |   40 
 src/clientlx.c                                       |  848 --------------
 src/compat-api.h                                     |   99 +
 src/mga.h                                            |  109 -
 src/mga_arc.c                                        |    2 
 src/mga_bios.c                                       |    3 
 src/mga_common.h                                     |    2 
 src/mga_dac3026.c                                    |    3 
 src/mga_dacG.c                                       |  395 +++++-
 src/mga_dga.c                                        |   26 
 src/mga_dh.c                                         |    3 
 src/mga_dri.c                                        |  110 -
 src/mga_dri.h                                        |    2 
 src/mga_dripriv.h                                    |    2 
 src/mga_driver.c                                     | 1141 +++++--------------
 src/mga_esc.c                                        |  778 ------------
 src/mga_exa.c                                        |   21 
 src/mga_g450pll.c                                    |    3 
 src/mga_hwcurs.c                                     |    3 
 src/mga_macros.h                                     |   17 
 src/mga_merge.c                                      |  132 --
 src/mga_merge.h                                      |    6 
 src/mga_reg.h                                        |   21 
 src/mga_sarea.h                                      |    2 
 src/mga_shadow.c                                     |    7 
 src/mga_storm.c                                      |   21 
 src/mga_vga.c                                        |    8 
 src/mga_video.c                                      |   58 
 src/mgareg_flags.h                                   |    1 
 util/.gitignore                                      |    2 
 util/stormdwg.c                                      |    5 
 50 files changed, 2011 insertions(+), 4451 deletions(-)

New commits:
commit a08b53521d69acf9f7d9833385bb2bc4818fc056
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Jul 18 14:36:09 2012 +0200

    Bump Standards-Version to 3.9.3 (no changes needed).

diff --git a/debian/changelog b/debian/changelog
index d34c6ea..ca43f6b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
 xserver-xorg-video-mga (1:1.6.0-1) UNRELEASED; urgency=low
 
   * New upstream release
+  * Bump Standards-Version to 3.9.3 (no changes needed).
 
  -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Wed, 18 Jul 2012 14:33:10 +0200
 
diff --git a/debian/control b/debian/control
index 539353e..d833c29 100644
--- a/debian/control
+++ b/debian/control
@@ -22,7 +22,7 @@ Build-Depends:
  x11proto-xf86dri-dev,
  quilt,
  xutils-dev (>= 1:7.5+4)
-Standards-Version: 3.9.2
+Standards-Version: 3.9.3
 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-mga
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-mga.git
 

commit cc980e5a84fd63a3546769f34ffeb63058fff123
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Jul 18 14:34:13 2012 +0200

    New upstream release

diff --git a/debian/changelog b/debian/changelog
index c599f7b..d34c6ea 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-mga (1:1.6.0-1) UNRELEASED; urgency=low
+
+  * New upstream release
+
+ -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Wed, 18 Jul 2012 14:33:10 +0200
+
 xserver-xorg-video-mga (1:1.5.0-2) unstable; urgency=low
 
   * mga: don't bind to device if there is a kernel driver, to avoid conflicts

commit 10b0f1e596e07aeee9d51a6b235e91db7c37ebae
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Jul 18 14:34:02 2012 +0200

    Bump changelog

diff --git a/ChangeLog b/ChangeLog
index fbba476..ae101dc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,76 @@
+commit cd41eacaeabf8227197d605b055713ca654633d5
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Tue Jul 17 16:05:09 2012 +1000
+
+    xf86-video-mga: bump to version 1.6.1
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit f11a407ceb0857bb0d33811511117b490a8ae6ee
+Author: Dave Airlie <airlied@gmail.com>
+Date:   Sun Jul 15 19:41:28 2012 +1000
+
+    mga: fix after XAA removal
+    
+    Fix mga build after XAA removal.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit fa0f3092ed38ce71ba9f65156bde306eb63feaf8
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Jul 2 12:08:05 2012 +0100
+
+    mga: bump to 1.6.0
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 7b6dcc4d5768cc8d17a1f664155ebdc8ca8c042e
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Jun 6 09:23:31 2012 +0100
+
+    mga: port to new compat API.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 0cb8ba6dc5e7bf4179174f9f17e211df7d89bd41
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Wed May 23 23:40:32 2012 -0700
+
+    Add const qualifier to char *from in MGAdoDDC
+    
+    Only used to store arguments to pass as printf %s strings to xf86DrvMsg
+    
+    Fixes gcc warnings:
+    mga_driver.c: In function 'MGAdoDDC':
+    mga_driver.c:1338:7: warning: assignment discards qualifiers from pointer target type
+    mga_driver.c:1343:11: warning: assignment discards qualifiers from pointer target type
+    mga_driver.c:1351:8: warning: assignment discards qualifiers from pointer target type
+    mga_driver.c:1359:8: warning: assignment discards qualifiers from pointer target type
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+
+commit 3d9631b819c5c6f64ebf9bda8aab93e1cc7f391f
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Wed May 23 23:34:07 2012 -0700
+
+    Move PCI vendor/device id defines into mga.h instead of using xf86PciInfo.h
+    
+    Silences deprecation warnings from xf86PciInfo.h in current Xorg servers
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+
+commit 0af7dba78559ce82b4c3eed0862415efcde51863
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Thu May 17 10:19:21 2012 +0100
+
+    mga: don't bind to device if there is a kernel driver
+    
+    this should only pick up KMS drivers and not old drm drivers.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
 commit 3991971c23ebe596742c004b1e583dfb1aa14ec4
 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 Date:   Fri Mar 23 19:02:40 2012 -0700

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

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

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

commit a30db587d82d3a483ef6b88cfcaeb99f044ec605
Author: Julien Cristau <jcristau@debian.org>
Date:   Mon Jul 16 22:57:32 2012 +0200

    Upload to unstable

diff --git a/debian/changelog b/debian/changelog
index 75ff12d..c599f7b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-mga (1:1.5.0-2) unstable; urgency=low
+
+  * mga: don't bind to device if there is a kernel driver, to avoid conflicts
+    with the mga g200se KMS driver in Linux 3.5.
+
+ -- Julien Cristau <jcristau@debian.org>  Mon, 16 Jul 2012 22:57:15 +0200
+
 xserver-xorg-video-mga (1:1.5.0-1) unstable; urgency=low
 
   * New upstream release, compatible with xserver 1.12.

commit f11a407ceb0857bb0d33811511117b490a8ae6ee
Author: Dave Airlie <airlied@gmail.com>
Date:   Sun Jul 15 19:41:28 2012 +1000

    mga: fix after XAA removal
    
    Fix mga build after XAA removal.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/configure.ac b/configure.ac
index fd870b8..cc2498e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -126,8 +126,24 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then
 fi
 AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
 
-AM_CONDITIONAL(USE_XAA, true)
-AC_DEFINE(USE_XAA, 1, [Build support for XAA])
+
+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])
 
 # Properly handle EXA.
 AC_MSG_CHECKING([whether to enable EXA support])
diff --git a/src/Makefile.am b/src/Makefile.am
index 46f0265..79745d1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -32,7 +32,6 @@ mga_drv_la_LIBADD = $(noinst_LTLIBRARIES)
 mga_drv_la_SOURCES = \
          binding.h \
          client.h \
-         mga_arc.c \
          mga_bios.c \
          mga_common.h \
          mga_dac3026.c \
@@ -70,7 +69,8 @@ mga_drv_la_SOURCES += \
     mga_exa.c
 endif
 
-if USE_XAA
+if XAA
 mga_drv_la_SOURCES += \
+    mga_arc.c \
     mga_storm.c
 endif
diff --git a/src/mga.h b/src/mga.h
index 5856a3f..34695c1 100644
--- a/src/mga.h
+++ b/src/mga.h
@@ -20,7 +20,10 @@
 #include <stdio.h>
 
 #include "compiler.h"
+#ifdef HAVE_XAA_H
 #include "xaa.h"
+#endif
+#include "xf86fbman.h"
 #include "exa.h"
 #include "xf86Cursor.h"
 #include "vgaHW.h"
@@ -554,7 +557,9 @@ typedef struct {
     CARD32		MAccess;
     int			FifoSize;
     int			StyleLen;
+#ifdef HAVE_XAA_H
     XAAInfoRecPtr	AccelInfoRec;
+#endif
     xf86CursorInfoPtr	CursorInfoRec;
     DGAModePtr		DGAModes;
     int			numDGAModes;
@@ -715,7 +720,7 @@ void MGAAdjustGranularity(ScrnInfoPtr pScrn, int* x, int* y);
 void MGA2064SetupFuncs(ScrnInfoPtr pScrn);
 void MGAGSetupFuncs(ScrnInfoPtr pScrn);
 
-/* #ifdef USE_XAA */
+/*#ifdef USE_XAA */
 void MGAStormSync(ScrnInfoPtr pScrn);
 void MGAStormEngineInit(ScrnInfoPtr pScrn);
 Bool MGAStormAccelInit(ScreenPtr pScreen);
diff --git a/src/mga_arc.c b/src/mga_arc.c
index 5263f1f..61ade3b 100644
--- a/src/mga_arc.c
+++ b/src/mga_arc.c
@@ -39,8 +39,10 @@ in this Software without prior written authorization from The Open Group.
 #include "mizerarc.h"
 #include "mi.h"
 #include "scrnintstr.h"
+#ifdef HAVE_XAA_H
 #include "xaa.h"
 #include "xaalocal.h"
+#endif
 #include "xf86.h"
 #include "xf86_OSproc.h"
 
diff --git a/src/mga_dga.c b/src/mga_dga.c
index a806eb2..ef03688 100644
--- a/src/mga_dga.c
+++ b/src/mga_dga.c
@@ -5,8 +5,6 @@
 #include "xf86.h"
 #include "xf86_OSproc.h"
 #include "xf86Pci.h"
-#include "xaa.h"
-#include "xaalocal.h"
 #include "mga.h"
 #include "mga_reg.h"
 #include "dgaproc.h"
@@ -17,10 +15,12 @@ static Bool MGA_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **,
 static Bool MGA_SetMode(ScrnInfoPtr, DGAModePtr);
 static int  MGA_GetViewport(ScrnInfoPtr);
 static void MGA_SetViewport(ScrnInfoPtr, int, int, int);
+#ifdef HAVE_XAA_H
 static void MGA_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
 static void MGA_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
 static void MGA_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int, 
 					unsigned long);
+#endif
 
 static
 DGAFunctionRec MGA_DGAFuncs = {
@@ -30,9 +30,13 @@ DGAFunctionRec MGA_DGAFuncs = {
    MGA_SetViewport,
    MGA_GetViewport,
    MGAStormSync,
+#ifdef HAVE_XAA_H
    MGA_FillRect,
    MGA_BlitRect,
    MGA_BlitTransRect
+#else
+   NULL, NULL, NULL
+#endif
 };
 
 
@@ -120,11 +124,13 @@ SECOND_PASS:
 	    mode->flags = DGA_CONCURRENT_ACCESS;
             if(pixmap)
 		mode->flags |= DGA_PIXMAP_AVAILABLE;
+#ifdef HAVE_XAA_H
 	    if(!pMga->NoAccel) {
 		mode->flags |= DGA_FILL_RECT | DGA_BLIT_RECT;
 		if((Bpp != 3) && (pMga->Chipset != PCI_CHIP_MGA2064))
 		    mode->flags |= DGA_BLIT_RECT_TRANS;
 	    }
+#endif
 	    if(pMode->Flags & V_DBLSCAN)
 		mode->flags |= DGA_DOUBLESCAN;
 	    if(pMode->Flags & V_INTERLACE)
@@ -359,6 +365,7 @@ MGA_SetViewport(
    pMga->DGAViewportStatus = 0;  /* MGAAdjustFrame loops until finished */
 }
 
+#ifdef HAVE_XAA_H
 static void 
 MGA_FillRect (
    ScrnInfoPtr pScrn, 
@@ -424,7 +431,7 @@ static void MGA_BlitTransRect( ScrnInfoPtr pScrn, int srcx, int srcy,
 	SET_SYNC_FLAG(pMga->AccelInfoRec);
     }
 }
-
+#endif
 
 static Bool 
 MGA_OpenFramebuffer(
diff --git a/src/mga_dri.c b/src/mga_dri.c
index c517322..0154671 100644
--- a/src/mga_dri.c
+++ b/src/mga_dri.c
@@ -355,7 +355,7 @@ void MGAGetQuiescence( ScrnInfoPtr pScrn )
       MGAWaitForIdleDMA( pScrn );
 
         /* FIXME what about EXA? */
-#ifdef USE_XAA
+#ifdef XAA
         if (!pMga->Exa && pMga->AccelInfoRec) {
       WAITFIFO( 11 );
       OUTREG( MGAREG_MACCESS, pMga->MAccess );
diff --git a/src/mga_driver.c b/src/mga_driver.c
index e50d77b..b3fe538 100644
--- a/src/mga_driver.c
+++ b/src/mga_driver.c
@@ -90,7 +90,7 @@
 #include "mga_macros.h"
 #include "mga_maven.h"
 
-#ifdef USE_XAA
+#ifdef XAA
 #include "xaa.h"
 #endif
 
@@ -2118,7 +2118,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
 	    }
 	} else {
 #endif
-#ifdef USE_XAA
+#ifdef XAA
 	    if (!xf86LoadSubModule(pScrn, "xaa")) {
 		xf86DrvMsg(pScrn->scrnIndex, X_INFO,
 		           "Falling back to shadowfb\n");
@@ -3401,8 +3401,10 @@ MGAScreenInit(SCREEN_INIT_ARGS_DECL)
 	    mgaExaInit(pScreen);
 	else
 #endif
-#ifdef USE_XAA
+#ifdef XAA
 	    MGAStormAccelInit(pScreen);
+#else
+	    ;
 #endif
     }
 
@@ -3771,7 +3773,7 @@ MGACloseScreen(CLOSE_SCREEN_ARGS_DECL)
        pMgaEnt->refCount--;
    }
 
-#ifdef USE_XAA
+#ifdef XAA
     if (pMga->AccelInfoRec)
 	XAADestroyInfoRec(pMga->AccelInfoRec);
 #endif
diff --git a/src/mga_video.c b/src/mga_video.c
index 00e026d..535e329 100644
--- a/src/mga_video.c
+++ b/src/mga_video.c
@@ -14,7 +14,6 @@
 #include "mga_macros.h"
 #include "xf86xv.h"
 #include <X11/extensions/Xv.h>
-#include "xaa.h"
 
 #ifdef USE_XAA
 #include "xaa.h"
@@ -1987,9 +1986,11 @@ MGAPutImageILOAD(
 
     bpp = pScrn->bitsPerPixel >> 3;
 
+#ifdef HAVE_XAA_H
     if( pMga->AccelInfoRec->NeedToSync && ((long)data != pPriv->lastPort) ) {
 	MGAStormSync(pScrn);
     }
+#endif
 
     pPriv->lastPort = (long)data;
     nbox=REGION_NUM_RECTS(clipBoxes);
@@ -2019,8 +2020,9 @@ MGAPutImageILOAD(
 	pbox++;
     }
 
-
+#ifdef HAVE_XAA_H
     pMga->AccelInfoRec->NeedToSync = TRUE;
+#endif
     pPriv->videoStatus = FREE_TIMER;
     pPriv->freeTime = currentTime.milliseconds + FREE_DELAY;
     pMga->VideoTimerCallback = MGAVideoTimerCallback;

commit fa0f3092ed38ce71ba9f65156bde306eb63feaf8
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jul 2 12:08:05 2012 +0100

    mga: bump to 1.6.0
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

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

commit 7b6dcc4d5768cc8d17a1f664155ebdc8ca8c042e
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Jun 6 09:23:31 2012 +0100

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

diff --git a/src/Makefile.am b/src/Makefile.am
index 44417de..46f0265 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -55,7 +55,8 @@ mga_drv_la_SOURCES = \
          mga_shadow.c \
          mga_ucode.h \
 	 mga_vga.c \
-         mga_video.c
+         mga_video.c \
+         compat-api.h
 
 if DRI
 mga_drv_la_SOURCES += \
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/mga.h b/src/mga.h
index 7d94d59..5856a3f 100644
--- a/src/mga.h
+++ b/src/mga.h
@@ -46,6 +46,8 @@
 #include "mga_dri.h"
 #endif
 
+#include "compat-api.h"
+
 typedef enum {
     OPTION_SW_CURSOR,
     OPTION_HW_CURSOR,
@@ -564,7 +566,7 @@ typedef struct {
     void		(*Save)(ScrnInfoPtr, vgaRegPtr, MGARegPtr, Bool);
     void		(*Restore)(ScrnInfoPtr, vgaRegPtr, MGARegPtr, Bool);
     Bool		(*ModeInit)(ScrnInfoPtr, DisplayModePtr);
-    void		(*PointerMoved)(int index, int x, int y);
+    void		(*PointerMoved)(SCRN_ARG_TYPE arg, int x, int y);
     CloseScreenProcPtr	CloseScreen;
     ScreenBlockHandlerProcPtr BlockHandler;
     unsigned int	(*ddc1Read)(ScrnInfoPtr);
@@ -693,8 +695,8 @@ extern CARD32 MGAAtypeNoBLK[16];
 
 /* Prototypes */
 
-void MGAAdjustFrame(int scrnIndex, int x, int y, int flags);
-Bool MGASwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
+void MGAAdjustFrame(ADJUST_FRAME_ARGS_DECL);
+Bool MGASwitchMode(SWITCH_MODE_ARGS_DECL);
 void MGAFillModeInfoStruct(ScrnInfoPtr pScrn, DisplayModePtr mode);
 Bool MGAGetRec(ScrnInfoPtr pScrn);
 void MGAProbeDDC(ScrnInfoPtr pScrn, int index);
@@ -703,7 +705,7 @@ void MGAFreeRec(ScrnInfoPtr pScrn);
 Bool mga_read_and_process_bios(ScrnInfoPtr pScrn);
 void MGADisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode,
 				  int flags);
-void MGAAdjustFrameCrtc2(int scrnIndex, int x, int y, int flags);
+void MGAAdjustFrameCrtc2(ADJUST_FRAME_ARGS_DECL);
 void MGADisplayPowerManagementSetCrtc2(ScrnInfoPtr pScrn,
 					     int PowerManagementMode,
 					     int flags);
@@ -743,7 +745,7 @@ void mgaDoSetupForScreenToScreenCopy( ScrnInfoPtr pScrn, int xdir,
 void mgaDoSetupForSolidFill( ScrnInfoPtr pScrn, int color, int rop,
     unsigned int planemask, unsigned int bpp );
 
-void MGAPointerMoved(int index, int x, int y);
+void MGAPointerMoved(SCRN_ARG_TYPE arg, int x, int y);
 
 void MGAInitVideo(ScreenPtr pScreen);
 void MGAResetVideo(ScrnInfoPtr pScrn);
diff --git a/src/mga_dacG.c b/src/mga_dacG.c
index ea598be..9a80193 100644
--- a/src/mga_dacG.c
+++ b/src/mga_dacG.c
@@ -1794,7 +1794,7 @@ MGAGSetCursorColorsG100(ScrnInfoPtr pScrn, int bg, int fg)
 static Bool 
 MGAGUseHWCursor(ScreenPtr pScrn, CursorPtr pCurs)
 {
-    MGAPtr pMga = MGAPTR(xf86Screens[pScrn->myNum]);
+    MGAPtr pMga = MGAPTR(xf86ScreenToScrn(pScrn));
    /* This needs to detect if its on the second dac */
     if( XF86SCRNINFO(pScrn)->currentMode->Flags & V_DBLSCAN )
     	return FALSE;
diff --git a/src/mga_dga.c b/src/mga_dga.c
index 6c26e44..a806eb2 100644
--- a/src/mga_dga.c
+++ b/src/mga_dga.c
@@ -197,7 +197,7 @@ SECOND_PASS:
 Bool
 MGADGAInit(ScreenPtr pScreen)
 {   
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    MGAPtr pMga = MGAPTR(pScrn);
    DGAModePtr modes = NULL;
    int num = 0;
@@ -310,8 +310,8 @@ MGA_SetMode(
         memcpy(&pMga->CurrentLayout, &SavedLayouts[index], sizeof(MGAFBLayout));
                 
       pScrn->currentMode = pMga->CurrentLayout.mode;
-      pScrn->SwitchMode(index, pScrn->currentMode, 0);
-      MGAAdjustFrame(index, pScrn->frameX0, pScrn->frameY0, 0);
+      pScrn->SwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode));
+      MGAAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0));
       pMga->DGAactive = FALSE;
    } else {
       if(!pMga->DGAactive) {  /* save the old parameters */
@@ -328,7 +328,7 @@ MGA_SetMode(
       pMga->CurrentLayout.weight.blue = BitsSet(pMode->blue_mask);
       /* MGAModeInit() will set the mode field */
 
-      pScrn->SwitchMode(index, pMode->mode, 0);
+      pScrn->SwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode));
       /* not strictly required but nice */
       mgaDGASetPalette(pScrn);
    }
@@ -355,7 +355,7 @@ MGA_SetViewport(
 ){
    MGAPtr pMga = MGAPTR(pScrn);
 
-   MGAAdjustFrame(pScrn->pScreen->myNum, x, y, flags);
+   MGAAdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y));
    pMga->DGAViewportStatus = 0;  /* MGAAdjustFrame loops until finished */
 }
 
diff --git a/src/mga_dri.c b/src/mga_dri.c
index 4156bb5..c517322 100644
--- a/src/mga_dri.c
+++ b/src/mga_dri.c
@@ -74,7 +74,7 @@ static char MGAClientDriverName[] = "mga";
  */
 static Bool MGAInitVisualConfigs( ScreenPtr pScreen )
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    MGAPtr pMga = MGAPTR(pScrn);
    int numConfigs = 0;
    __GLXvisualConfig *pConfigs = 0;
@@ -407,7 +407,7 @@ void MGAGetQuiescenceShared( ScrnInfoPtr pScrn )
 
 static void MGASwapContext( ScreenPtr pScreen )
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    MGAPtr pMga = MGAPTR(pScrn);
 
    /* Arrange for dma_quiescence and xaa sync to be called as
@@ -420,7 +420,7 @@ static void MGASwapContext( ScreenPtr pScreen )
 
 static void MGASwapContextShared( ScreenPtr pScreen )
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    MGAPtr pMga = MGAPTR(pScrn);
    MGAEntPtr pMGAEnt = pMga->entityPrivate;
    MGAPtr pMGA2 = MGAPTR(pMGAEnt->pScrn_2);
@@ -522,7 +522,7 @@ static unsigned int mylog2( unsigned int n )
  */
 static Bool MGADRIBootstrapDMA(ScreenPtr pScreen)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     MGAPtr pMga = MGAPTR(pScrn);
     MGADRIServerPrivatePtr pMGADRIServer = pMga->DRIServerInfo;
     int ret;
@@ -778,7 +778,7 @@ static Bool MGADRIBootstrapDMA(ScreenPtr pScreen)
 
 static Bool MGADRIKernelInit( ScreenPtr pScreen )
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    MGAPtr pMga = MGAPTR(pScrn);
    MGADRIServerPrivatePtr pMGADRIServer = pMga->DRIServerInfo;
    drm_mga_init_t init;
@@ -838,7 +838,7 @@ static Bool MGADRIKernelInit( ScreenPtr pScreen )
  */
 static void MGADRIIrqInit(MGAPtr pMga, ScreenPtr pScreen)
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 
    if (!pMga->irq) {
       pMga->irq = drmGetInterruptFromBusID(pMga->drmFD,
@@ -873,7 +873,7 @@ static void MGADRIIrqInit(MGAPtr pMga, ScreenPtr pScreen)
 
 static Bool MGADRIBuffersInit( ScreenPtr pScreen )
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    MGAPtr pMga = MGAPTR(pScrn);
    MGADRIServerPrivatePtr pMGADRIServer = pMga->DRIServerInfo;
 
@@ -896,7 +896,7 @@ static void MGADRIInitBuffersXAA(WindowPtr pWin, RegionPtr prgn,
                                  CARD32 index)
 {
     ScreenPtr pScreen = pWin->drawable.pScreen;
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     MGAPtr pMga = MGAPTR(pScrn);
     BoxPtr pbox = REGION_RECTS(prgn);
     int nbox  = REGION_NUM_RECTS(prgn);
@@ -941,7 +941,7 @@ static void MGADRIMoveBuffersXAA(WindowPtr pParent, DDXPointRec ptOldOrg,
                                  RegionPtr prgnSrc, CARD32 index)
 {
     ScreenPtr pScreen = pParent->drawable.pScreen;
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     MGAPtr pMga = MGAPTR(pScrn);
     int nbox;
     BoxPtr pbox, pboxTmp, pboxNext, pboxBase, pboxNew1, pboxNew2;
@@ -1088,7 +1088,7 @@ static void MGADRIMoveBuffersEXA(WindowPtr pParent, DDXPointRec ptOldOrg,
 
 Bool MGADRIScreenInit( ScreenPtr pScreen )
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    MGAPtr pMga = MGAPTR(pScrn);
    DRIInfoPtr pDRIInfo;
    MGADRIPtr pMGADRI;
@@ -1367,7 +1367,7 @@ Bool MGADRIScreenInit( ScreenPtr pScreen )
 
 Bool MGADRIFinishScreenInit( ScreenPtr pScreen )
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    MGAPtr pMga = MGAPTR(pScrn);
    MGADRIServerPrivatePtr pMGADRIServer = pMga->DRIServerInfo;
    MGADRIPtr pMGADRI;
@@ -1462,7 +1462,7 @@ Bool MGADRIFinishScreenInit( ScreenPtr pScreen )
 
 void MGADRICloseScreen( ScreenPtr pScreen )
 {
-   ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+   ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    MGAPtr pMga = MGAPTR(pScrn);
    MGADRIServerPrivatePtr pMGADRIServer = pMga->DRIServerInfo;
    drm_mga_init_t init;
diff --git a/src/mga_driver.c b/src/mga_driver.c
index 0c04d74..e50d77b 100644
--- a/src/mga_driver.c
+++ b/src/mga_driver.c
@@ -118,12 +118,11 @@ static Bool MGAPciProbe(DriverPtr drv, int entity_num,
 static Bool	MGAProbe(DriverPtr drv, int flags);
 #endif
 static Bool	MGAPreInit(ScrnInfoPtr pScrn, int flags);
-static Bool	MGAScreenInit(int Index, ScreenPtr pScreen, int argc,
-			      char **argv);
-static Bool	MGAEnterVT(int scrnIndex, int flags);
-static Bool	MGAEnterVTFBDev(int scrnIndex, int flags);
-static void	MGALeaveVT(int scrnIndex, int flags);
-static Bool	MGACloseScreen(int scrnIndex, ScreenPtr pScreen);
+static Bool	MGAScreenInit(SCREEN_INIT_ARGS_DECL);
+static Bool	MGAEnterVT(VT_FUNC_ARGS_DECL);
+static Bool	MGAEnterVTFBDev(VT_FUNC_ARGS_DECL);
+static void	MGALeaveVT(VT_FUNC_ARGS_DECL);
+static Bool	MGACloseScreen(CLOSE_SCREEN_ARGS_DECL);
 static Bool	MGASaveScreen(ScreenPtr pScreen, int mode);
 static Bool	MGASaveScreenCrtc2(ScreenPtr pScreen, int mode);
 
@@ -134,8 +133,8 @@ static void     VgaIORestore(int i, void *arg);
 #endif
 
 /* Optional functions */
-static void	MGAFreeScreen(int scrnIndex, int flags);
-static ModeStatus MGAValidMode(int scrnIndex, DisplayModePtr mode,
+static void	MGAFreeScreen(FREE_SCREEN_ARGS_DECL);
+static ModeStatus MGAValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode,
 			       Bool verbose, int flags);
 
 #if ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ >= 4)
@@ -150,7 +149,7 @@ static Bool	MGAUnmapMem(ScrnInfoPtr pScrn);
 static void	MGASave(ScrnInfoPtr pScrn);
 static void	MGARestore(ScrnInfoPtr pScrn);
 static Bool	MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
-static void 	MGABlockHandler(int, pointer, pointer, pointer);
+static void 	MGABlockHandler(BLOCKHANDLER_ARGS_DECL);
 static void	MGAG100BlackMagic(ScrnInfoPtr pScrn);
 
 static int MGAEntityIndex = -1;
@@ -1331,18 +1330,18 @@ MGAdoDDC(ScrnInfoPtr pScrn)
 
     /* DDC for second head... */
     if (pMga->SecondCrtc && pMga->DDC_Bus2) {
-	MonInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, pMga->DDC_Bus2);
+	MonInfo = xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn), pMga->DDC_Bus2);
 	from = "I2C";
     } else {
 	/* Its the first head... */ 
 	if (pMga->DDC_Bus1) {
-	    MonInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, pMga->DDC_Bus1);
+	    MonInfo = xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn), pMga->DDC_Bus1);
 	    from = "I2C";
 	}
 	if (!MonInfo)
 	    /* Read and output monitor info using DDC1 */
 	    if (pMga->ddc1Read && pMga->DDC1SetSpeed) {
-		MonInfo = xf86DoEDID_DDC1(pScrn->scrnIndex,
+		MonInfo = xf86DoEDID_DDC1(XF86_SCRN_ARG(pScrn),
 					  pMga->DDC1SetSpeed,
 					  pMga->ddc1Read ) ;
 		from = "DDC1";
@@ -2886,7 +2885,7 @@ MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
 
 #ifdef MGADRI
    if (pMga->directRenderingEnabled) {
-       DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
+       DRILock(xf86ScrnToScreen(pScrn), 0);
    }
 #endif
 
@@ -2997,7 +2996,7 @@ MGAModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
 
 #ifdef MGADRI
    if (pMga->directRenderingEnabled)
-     DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
+     DRIUnlock(xf86ScrnToScreen(pScrn));
 #endif
 #ifdef DEBUG
    MGAG450PrintPLL(pScrn);
@@ -3131,9 +3130,9 @@ MGACrtc2FillStrip(ScrnInfoPtr pScrn)
 /* This gets called at the start of each server generation */
 
 static Bool
-MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+MGAScreenInit(SCREEN_INIT_ARGS_DECL)
 {
-    ScrnInfoPtr pScrn;
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     vgaHWPtr hwp;
     MGAPtr pMga;
     MGARamdacPtr MGAdac;
@@ -3149,11 +3148,6 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
 #endif
     DPMSSetProcPtr mga_dpms_set_proc = NULL;
 
-    /*
-     * First get the ScrnInfoRec
-     */
-    pScrn = xf86Screens[pScreen->myNum];
-
     hwp = VGAHWPTR(pScrn);
     pMga = MGAPTR(pScrn);
     MGAdac = &pMga->Dac;
@@ -3256,7 +3250,7 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
     /* Darken the screen for aesthetic reasons and set the viewport 
      */
     (*pScreen->SaveScreen)(pScreen, SCREEN_SAVER_ON);
-    pScrn->AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
+    pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0));
 
 
     /*
@@ -3517,13 +3511,13 @@ MGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
 
 /* Usually mandatory */
 Bool
-MGASwitchMode(int scrnIndex, DisplayModePtr mode, int flags)


Reply to: