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

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



 ChangeLog             |   58 +++++++++++++++++++++++++++++
 configure.ac          |   20 +++++++++-
 debian/changelog      |   13 ++++++
 debian/control        |    2 -
 debian/patches/series |    1 
 src/Makefile.am       |    1 
 src/blade_accel.c     |   11 ++++-
 src/blade_accel_exa.c |   13 +++---
 src/compat-api.h      |   99 ++++++++++++++++++++++++++++++++++++++++++++++++++
 src/image_accel.c     |   12 +++++-
 src/trident.h         |   14 +++++--
 src/trident_accel.c   |   11 ++++-
 src/trident_bank.c    |   15 +++----
 src/trident_dac.c     |    5 +-
 src/trident_dga.c     |   23 +++++++----
 src/trident_driver.c  |   91 +++++++++++++++++++++++----------------------
 src/trident_i2c.c     |    3 -
 src/trident_shadow.c  |   11 ++---
 src/trident_video.c   |   11 ++---
 src/tridenthelper.c   |    1 
 src/tvga_dac.c        |    1 
 src/xp4_accel.c       |   11 ++++-
 src/xp4_accel_exa.c   |   13 +++---
 src/xp_accel.c        |   12 ++++--
 24 files changed, 340 insertions(+), 112 deletions(-)

New commits:
commit 41f282f5b186c0f66454c10853332e469e99f2ba
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Wed Sep 25 13:02:42 2013 +0200

    Release to unstable.

diff --git a/debian/changelog b/debian/changelog
index 7441804..55ba1dc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-trident (1:1.3.6-2) unstable; urgency=low
+
+  * Release to unstable.
+
+ -- Maarten Lankhorst <maarten.lankhorst@ubuntu.com>  Wed, 25 Sep 2013 12:58:07 +0200
+
 xserver-xorg-video-trident (1:1.3.6-1) experimental; urgency=low
 
   * New upstream release.

commit 4c5611423118e8e3426b9bd1030fe332dfe86ec6
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Tue Sep 24 14:37:36 2013 +0200

    Add changelog entries.

diff --git a/ChangeLog b/ChangeLog
index 27c8bf1..c1583fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+commit 48c15909691e28ad2c188a2978b1c8ef3d9d8760
+Author: Timo Aaltonen <tjaalton@ubuntu.com>
+Date:   Wed Sep 26 11:01:26 2012 +0300
+
+    Fix loading the driver without XAA
+
+commit 30787294c837aefa8820b6f76f00fe30d4e54181
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Tue Sep 25 08:55:01 2012 -0400
+
+    Remove mibstore.h
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
 commit 3098fe7193cbfe4a885a60b93e71796b70e4fa2a
 Author: Dave Airlie <airlied@redhat.com>
 Date:   Tue Jul 17 16:05:09 2012 +1000

commit 7b29e1f76aab503560b9929ae6a918e2b02393af
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Tue Sep 24 14:21:48 2013 +0200

    Release to experimental.

diff --git a/debian/changelog b/debian/changelog
index f68529a..7441804 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
-xserver-xorg-video-trident (1:1.3.6-1) UNRELEASED; urgency=low
+xserver-xorg-video-trident (1:1.3.6-1) experimental; urgency=low
 
   * New upstream release.
+  * Grab some patches to fix building from git.
 
  -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Thu, 19 Jul 2012 13:21:51 +0200
 

commit 48c15909691e28ad2c188a2978b1c8ef3d9d8760
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date:   Wed Sep 26 11:01:26 2012 +0300

    Fix loading the driver without XAA

diff --git a/src/trident_dga.c b/src/trident_dga.c
index 0263aa7..c4b5b9a 100644
--- a/src/trident_dga.c
+++ b/src/trident_dga.c
@@ -37,10 +37,10 @@
 static Bool TRIDENT_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **, 
 					int *, int *, int *);
 static Bool TRIDENT_SetMode(ScrnInfoPtr, DGAModePtr);
-static void TRIDENT_Sync(ScrnInfoPtr);
 static int  TRIDENT_GetViewport(ScrnInfoPtr);
 static void TRIDENT_SetViewport(ScrnInfoPtr, int, int, int);
 #ifdef HAVE_XAA_H
+static void TRIDENT_Sync(ScrnInfoPtr);
 static void TRIDENT_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
 static void TRIDENT_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
 #if 0
@@ -56,8 +56,8 @@ DGAFunctionRec TRIDENTDGAFuncs = {
    TRIDENT_SetMode,
    TRIDENT_SetViewport,
    TRIDENT_GetViewport,
-   TRIDENT_Sync,
 #ifdef HAVE_XAA_H
+   TRIDENT_Sync,
    TRIDENT_FillRect,
    TRIDENT_BlitRect,
 #if 0

commit 30787294c837aefa8820b6f76f00fe30d4e54181
Author: Adam Jackson <ajax@redhat.com>
Date:   Tue Sep 25 08:55:01 2012 -0400

    Remove mibstore.h
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

diff --git a/src/trident_driver.c b/src/trident_driver.c
index dc12b76..408c870 100644
--- a/src/trident_driver.c
+++ b/src/trident_driver.c
@@ -56,7 +56,6 @@
 
 #include "mipointer.h"
 
-#include "mibstore.h"
 #include "shadow.h"
 #include "trident.h"
 #include "trident_regs.h"
@@ -3037,7 +3036,6 @@ TRIDENTScreenInit(SCREEN_INIT_ARGS_DECL)
     	TridentAccelInit(pScreen);
     }
 
-    miInitializeBackingStore(pScreen);
     xf86SetBackingStore(pScreen);
 
     /* Initialise cursor functions */

commit 267ae3ea7588fbea4c01c95f7c504479a2f771bd
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date:   Thu Jul 19 13:22:07 2012 +0200

    New upstream release.

diff --git a/ChangeLog b/ChangeLog
index b4b9ee5..27c8bf1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,47 @@
+commit 3098fe7193cbfe4a885a60b93e71796b70e4fa2a
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Tue Jul 17 16:05:09 2012 +1000
+
+    xf86-video-trident: bump to version 1.3.6
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit f02709607cb353db1e89a909ff01a6941f535ab4
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Jul 16 03:17:51 2012 +0100
+
+    trident: add support for building without XAA
+    
+    fix build for removal of XAA from server.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 177c93486647e71c088ac42697e34c47664eb666
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Jun 6 11:49:16 2012 +0100
+
+    trident: convert to new compat API.
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 2301879bc334fd9f44cc7f23be613b5b4533568a
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Jun 6 11:40:26 2012 +0100
+
+    trident: drop lots of xf86PciInfo.h includes
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit f481290e6dbd73b484cad3e8583031c6e2ccb555
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Wed Apr 18 10:48:07 2012 -0400
+
+    Use DamageRegion for shadow damage
+    
+    The 'damage' member is an ancient compatibility hack I want to destroy.
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+
 commit 16816e99bacbd8dfc51a2deba541a72fb27f156a
 Author: Alan Coopersmith <alan.coopersmith@oracle.com>
 Date:   Fri Mar 23 20:02:50 2012 -0700
diff --git a/debian/changelog b/debian/changelog
index 4f06e20..f68529a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-trident (1:1.3.6-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Maarten Lankhorst <maarten.lankhorst@canonical.com>  Thu, 19 Jul 2012 13:21:51 +0200
+
 xserver-xorg-video-trident (1:1.3.5-1) unstable; urgency=low
 
   * New upstream release:
diff --git a/debian/control b/debian/control
index 9623194..97a15c2 100644
--- a/debian/control
+++ b/debian/control
@@ -17,7 +17,7 @@ Build-Depends:
  x11proto-fonts-dev,
  x11proto-randr-dev,
  x11proto-render-dev,
-Standards-Version: 3.9.1
+Standards-Version: 3.9.3
 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-trident
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-trident.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 3098fe7193cbfe4a885a60b93e71796b70e4fa2a
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Jul 17 16:05:09 2012 +1000

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

diff --git a/configure.ac b/configure.ac
index 31bc459..eeb895e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-trident],
-        [1.3.5],
+        [1.3.6],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-trident])
 AC_CONFIG_SRCDIR([Makefile.am])

commit f02709607cb353db1e89a909ff01a6941f535ab4
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Jul 16 03:17:51 2012 +0100

    trident: add support for building without XAA
    
    fix build for removal of XAA from server.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/configure.ac b/configure.ac
index cab1fb7..31bc459 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,6 +82,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])
+
 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/blade_accel.c b/src/blade_accel.c
index b8954e6..1645e1d 100644
--- a/src/blade_accel.c
+++ b/src/blade_accel.c
@@ -38,6 +38,7 @@
 #include "trident.h"
 #include "trident_regs.h"
 
+#ifdef HAVE_XAA_H
 #include "xaarop.h"
 #include "xaalocal.h"
 
@@ -145,10 +146,12 @@ BladeInitializeAccelerator(ScrnInfoPtr pScrn)
 #endif
     BLADE_OUT(0x216C, 0);
 }
+#endif
 
 Bool
 BladeXaaInit(ScreenPtr pScreen)
 {
+#ifdef HAVE_XAA_H
     XAAInfoRecPtr infoPtr;
     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
@@ -247,8 +250,12 @@ BladeXaaInit(ScreenPtr pScreen)
     infoPtr->ImageWriteRange = 0x10000;
 
     return(XAAInit(pScreen, infoPtr));
+#else
+    return FALSE;
+#endif
 }
 
+#ifdef HAVE_XAA_H
 static void
 BladeSync(ScrnInfoPtr pScrn)
 {
@@ -701,3 +708,4 @@ static void BladeSubsequentImageWriteRect(
     BLADE_OUT(0x2108, y<<16 | (x&0xfff));
     BLADE_OUT(0x210C, ((y+h-1)&0xfff)<<16 | ((x+w-1)&0xfff));
 }
+#endif
diff --git a/src/image_accel.c b/src/image_accel.c
index 9a9388d..4dc13ff 100644
--- a/src/image_accel.c
+++ b/src/image_accel.c
@@ -38,6 +38,7 @@
 #include "trident.h"
 #include "trident_regs.h"
 
+#ifdef HAVE_XAA_H
 #include "xaarop.h"
 #include "xaalocal.h"
 
@@ -93,6 +94,7 @@ static void ImageSubsequentScanlineCPUToScreenColorExpandFill(
 				int y, int w, int h, int skipleft);
 static void ImageSubsequentColorExpandScanline(ScrnInfoPtr pScrn, int bufno);
 
+
 static void
 ImageInitializeAccelerator(ScrnInfoPtr pScrn)
 {
@@ -128,10 +130,12 @@ ImageInitializeAccelerator(ScrnInfoPtr pScrn)
     pTrident->Clipping = FALSE;
     pTrident->DstEnable = FALSE;
 }
+#endif
 
 Bool
 ImageAccelInit(ScreenPtr pScreen)
 {
+#ifdef HAVE_XAA_H
     XAAInfoRecPtr infoPtr;
     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
@@ -244,8 +248,12 @@ ImageAccelInit(ScreenPtr pScreen)
   }
 
     return(XAAInit(pScreen, infoPtr));
+#else
+    return FALSE;
+#endif
 }
 
+#ifdef HAVE_XAA_H
 static void
 ImageSync(ScrnInfoPtr pScrn)
 {
@@ -636,3 +644,4 @@ ImageSubsequentImageWriteScanline(ScrnInfoPtr pScrn, int bufno)
     if (!pTrident->h)
 	ImageSync(pScrn);
 }
+#endif
diff --git a/src/trident.h b/src/trident.h
index ebdbccd..752e389 100644
--- a/src/trident.h
+++ b/src/trident.h
@@ -34,7 +34,10 @@
 
 #include "exa.h"
 #include "xf86Cursor.h"
+#ifdef HAVE_XAA_H
 #include "xaa.h"
+#endif
+#include "xf86fbman.h"
 #include "xf86RamDac.h"
 #include "compiler.h"
 #include "vgaHW.h"
@@ -151,7 +154,9 @@ typedef struct {
 #ifdef VBE_INFO
     vbeModeInfoPtr	vbeModes;
 #endif
+#ifdef HAVE_XAA_H
     XAAInfoRecPtr	AccelInfoRec;
+#endif
     CloseScreenProcPtr	CloseScreen;
     ScreenBlockHandlerProcPtr BlockHandler;
     int                 panelWidth;
diff --git a/src/trident_accel.c b/src/trident_accel.c
index 85d1427..f47fab4 100644
--- a/src/trident_accel.c
+++ b/src/trident_accel.c
@@ -38,6 +38,7 @@
 #include "trident.h"
 #include "trident_regs.h"
 
+#ifdef HAVE_XAA_H
 #include "xaalocal.h"
 #include "xaarop.h"
 
@@ -111,10 +112,12 @@ TridentInitializeAccelerator(ScrnInfoPtr pScrn)
 
     pTrident->PatternLocation = pScrn->displayWidth*pScrn->bitsPerPixel/8;
 }
+#endif
 
 Bool
 TridentAccelInit(ScreenPtr pScreen)
 {
+#ifdef HAVE_XAA_H
     XAAInfoRecPtr infoPtr;
     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
@@ -213,8 +216,12 @@ TridentAccelInit(ScreenPtr pScreen)
 #endif
 
     return(XAAInit(pScreen, infoPtr));
+#else
+    return FALSE;
+#endif
 }
 
+#ifdef HAVE_XAA_H
 static void
 TridentSync(ScrnInfoPtr pScrn)
 {
@@ -661,3 +668,4 @@ TridentSubsequentColorExpandScanline(ScrnInfoPtr pScrn, int bufno)
     }
 }
 #endif
+#endif
diff --git a/src/trident_dga.c b/src/trident_dga.c
index 832e4dc..0263aa7 100644
--- a/src/trident_dga.c
+++ b/src/trident_dga.c
@@ -29,8 +29,6 @@
 #include "xf86.h"
 #include "xf86_OSproc.h"
 #include "xf86Pci.h"
-#include "xaa.h"
-#include "xaalocal.h"
 #include "trident.h"
 #include "trident_regs.h"
 #include "dgaproc.h"
@@ -42,12 +40,14 @@ static Bool TRIDENT_SetMode(ScrnInfoPtr, DGAModePtr);
 static void TRIDENT_Sync(ScrnInfoPtr);
 static int  TRIDENT_GetViewport(ScrnInfoPtr);
 static void TRIDENT_SetViewport(ScrnInfoPtr, int, int, int);
+#ifdef HAVE_XAA_H
 static void TRIDENT_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
 static void TRIDENT_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
 #if 0
 static void TRIDENT_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int, 
 					unsigned long);
 #endif
+#endif
 
 static
 DGAFunctionRec TRIDENTDGAFuncs = {
@@ -57,6 +57,7 @@ DGAFunctionRec TRIDENTDGAFuncs = {
    TRIDENT_SetViewport,
    TRIDENT_GetViewport,
    TRIDENT_Sync,
+#ifdef HAVE_XAA_H
    TRIDENT_FillRect,
    TRIDENT_BlitRect,
 #if 0
@@ -64,6 +65,9 @@ DGAFunctionRec TRIDENTDGAFuncs = {
 #else
    NULL
 #endif
+#else
+   NULL, NULL, NULL
+#endif
 };
 
 Bool
@@ -102,8 +106,10 @@ SECOND_PASS:
 
 	currentMode->mode = pMode;
 	currentMode->flags = DGA_CONCURRENT_ACCESS | DGA_PIXMAP_AVAILABLE;
+#ifdef HAVE_XAA_H
 	if(!pTrident->NoAccel)
 	   currentMode->flags |= DGA_FILL_RECT | DGA_BLIT_RECT;
+#endif
 	if(pMode->Flags & V_DBLSCAN)
 	   currentMode->flags |= DGA_DOUBLESCAN;
 	if(pMode->Flags & V_INTERLACE)
@@ -217,6 +223,7 @@ TRIDENT_SetViewport(
    pTrident->DGAViewportStatus = 0;  /* TRIDENTAdjustFrame loops until finished */
 }
 
+#ifdef HAVE_XAA_H
 static void 
 TRIDENT_FillRect (
    ScrnInfoPtr pScrn, 
@@ -277,6 +284,7 @@ TRIDENT_BlitTransRect(
      prohibit usage of ~0 as the key */
 }
 #endif
+#endif
 
 static Bool 
 TRIDENT_OpenFramebuffer(
diff --git a/src/trident_driver.c b/src/trident_driver.c
index dde6319..dc12b76 100644
--- a/src/trident_driver.c
+++ b/src/trident_driver.c
@@ -3203,9 +3203,12 @@ TRIDENTLeaveVT(VT_FUNC_ARGS_DECL)
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
     vgaHWPtr hwp = VGAHWPTR(pScrn);
 
+#ifdef HAVE_XAA_H
     if (!pTrident->NoAccel && !pTrident->useEXA)
 	pTrident->AccelInfoRec->Sync(pScrn);
-    else if (!pTrident->NoAccel && pTrident->useEXA)
+    else 
+#endif
+    if (!pTrident->NoAccel && pTrident->useEXA)
 	pTrident->EXADriverPtr->WaitMarker(pScrn->pScreen, 0);
 
     TRIDENTRestore(pScrn);
@@ -3234,9 +3237,12 @@ TRIDENTCloseScreen(CLOSE_SCREEN_ARGS_DECL)
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
 
     if (pScrn->vtSema) {
+#ifdef HAVE_XAA_H
     if (!pTrident->NoAccel && !pTrident->useEXA)
 	pTrident->AccelInfoRec->Sync(pScrn);
-    else if (!pTrident->NoAccel && pTrident->useEXA)
+    else
+#endif
+    if (!pTrident->NoAccel && pTrident->useEXA)
 	pTrident->EXADriverPtr->WaitMarker(pScreen, 0);
 
 #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12
@@ -3250,8 +3256,10 @@ TRIDENTCloseScreen(CLOSE_SCREEN_ARGS_DECL)
     	TRIDENTUnmapMem(pScrn);
     }
 
+#ifdef HAVE_XAA_H
     if (pTrident->AccelInfoRec)
 	XAADestroyInfoRec(pTrident->AccelInfoRec);
+#endif
     if (pTrident->EXADriverPtr) {
 	exaDriverFini(pScreen);
 	free(pTrident->EXADriverPtr);
diff --git a/src/trident_video.c b/src/trident_video.c
index 93fd5df..cc57a12 100644
--- a/src/trident_video.c
+++ b/src/trident_video.c
@@ -36,8 +36,6 @@
 #include "trident.h"
 #include "trident_regs.h"
 #include <X11/extensions/Xv.h>
-#include "xaa.h"
-#include "xaalocal.h"
 #include "dixstruct.h"
 #include "fourcc.h"
 
diff --git a/src/xp4_accel.c b/src/xp4_accel.c
index c9b47fd..cc739cf 100644
--- a/src/xp4_accel.c
+++ b/src/xp4_accel.c
@@ -37,6 +37,7 @@
 #include "trident.h"
 #include "trident_regs.h"
 
+#ifdef HAVE_XAA_H
 #include "xaarop.h"
 
 static void XP4Sync(ScrnInfoPtr pScrn);
@@ -121,10 +122,12 @@ XP4InitializeAccelerator(ScrnInfoPtr pScrn)
     MMIO_OUT32(pTrident->IOBase, 0x2154, (pScrn->displayWidth) << shift);
     MMIO_OUT32(pTrident->IOBase, 0x2150, (pScrn->displayWidth) << shift);
 }
+#endif
 
 Bool
 XP4XaaInit(ScreenPtr pScreen)
 {
+#ifdef HAVE_XAA_H
     XAAInfoRecPtr infoPtr;
     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
@@ -198,8 +201,12 @@ XP4XaaInit(ScreenPtr pScreen)
 #endif
 
     return(XAAInit(pScreen, infoPtr));
+#else
+    return FALSE;
+#endif
 }
 
+#ifdef HAVE_XAA_H
 static void
 XP4Sync(ScrnInfoPtr pScrn)
 {
@@ -554,3 +561,4 @@ XP4SubsequentCPUToScreenColorExpandFill(
     MMIO_OUT32(pTrident->IOBase, 0x2124, ropcode << 24 | bpp << 8 | 2);
 }
 #endif
+#endif
diff --git a/src/xp_accel.c b/src/xp_accel.c
index 4957049..615428a 100644
--- a/src/xp_accel.c
+++ b/src/xp_accel.c
@@ -38,7 +38,7 @@
 #include "trident.h"
 #include "trident_regs.h"
 
-#include "xaalocal.h"
+#ifdef HAVE_XAA_H
 #include "xaarop.h"
 
 static void XPSync(ScrnInfoPtr pScrn);
@@ -114,10 +114,12 @@ XPInitializeAccelerator(ScrnInfoPtr pScrn)
     MMIO_OUT32(pTrident->IOBase, 0x2150, (pScrn->displayWidth) << shift);
     MMIO_OUT8(pTrident->IOBase, 0x2126, 3);
 }
+#endif
 
 Bool
 XPAccelInit(ScreenPtr pScreen)
 {
+#ifdef HAVE_XAA_H
     XAAInfoRecPtr infoPtr;
     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
@@ -194,8 +196,12 @@ XPAccelInit(ScreenPtr pScreen)
 #endif
 
     return(XAAInit(pScreen, infoPtr));
+#else
+    return FALSE;
+#endif
 }
 
+#ifdef HAVE_XAA_H
 static void
 XPSync(ScrnInfoPtr pScrn)
 {
@@ -589,3 +595,4 @@ XPSubsequentColorExpandScanline(ScrnInfoPtr pScrn, int bufno)
     	XPSync(pScrn);
 }
 #endif
+#endif

commit 177c93486647e71c088ac42697e34c47664eb666
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Jun 6 11:49:16 2012 +0100

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

diff --git a/src/Makefile.am b/src/Makefile.am
index 16c1ca9..9e65055 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -32,6 +32,7 @@ trident_drv_ladir = @moduledir@/drivers
 trident_drv_la_SOURCES = \
          blade_accel.c \
          blade_accel_exa.c \
+         compat-api.h \
          image_accel.c \
          trident_accel.c \
          trident_bank.c \
diff --git a/src/blade_accel.c b/src/blade_accel.c
index 18511d9..b8954e6 100644
--- a/src/blade_accel.c
+++ b/src/blade_accel.c
@@ -150,7 +150,7 @@ Bool
 BladeXaaInit(ScreenPtr pScreen)
 {
     XAAInfoRecPtr infoPtr;
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
 
     if (pTrident->NoAccel)
diff --git a/src/blade_accel_exa.c b/src/blade_accel_exa.c
index 501cbce..ad5af37 100644
--- a/src/blade_accel_exa.c
+++ b/src/blade_accel_exa.c
@@ -111,7 +111,7 @@ static Bool PrepareSolid(PixmapPtr pPixmap, int rop, Pixel planemask,
 			 Pixel color)
 {
     TRIDENTPtr pTrident =
-	TRIDENTPTR(xf86Screens[pPixmap->drawable.pScreen->myNum]);
+	TRIDENTPTR(xf86ScreenToScrn(pPixmap->drawable.pScreen));
 
     REPLICATE(color, pPixmap->drawable.bitsPerPixel);
     BLADE_OUT(GER_FGCOLOR, color);
@@ -124,7 +124,7 @@ static Bool PrepareSolid(PixmapPtr pPixmap, int rop, Pixel planemask,
 static void Solid(PixmapPtr pPixmap, int x, int y, int x2, int y2)
 {
     TRIDENTPtr pTrident =
-	TRIDENTPTR(xf86Screens[pPixmap->drawable.pScreen->myNum]);
+	TRIDENTPTR(xf86ScreenToScrn(pPixmap->drawable.pScreen));
     int dst_stride = (pPixmap->drawable.width + 7) / 8;
     int dst_off = exaGetPixmapOffset(pPixmap) / 8;
 
@@ -146,7 +146,7 @@ static Bool PrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap,
 			int xdir, int ydir, int alu, Pixel planemask)
 {
     TRIDENTPtr pTrident =
-	TRIDENTPTR(xf86Screens[pSrcPixmap->drawable.pScreen->myNum]);
+	TRIDENTPTR(xf86ScreenToScrn(pSrcPixmap->drawable.pScreen));
     int src_stride = (pSrcPixmap->drawable.width + 7) / 8;
     int src_off = exaGetPixmapOffset(pSrcPixmap) / 8;
     int dst_stride = (pDstPixmap->drawable.width + 7) / 8;
@@ -178,7 +178,7 @@ static void Copy(PixmapPtr pDstPixmap, int x1, int y1, int x2,
 		 int y2, int w, int h)
 {
     TRIDENTPtr pTrident =
-	TRIDENTPTR(xf86Screens[pDstPixmap->drawable.pScreen->myNum]);
+	TRIDENTPTR(xf86ScreenToScrn(pDstPixmap->drawable.pScreen));
 
     BLADE_OUT(GER_DRAW_CMD, GER_OP_BLT_HOST | GER_DRAW_SRC_COLOR |
 	      GER_ROP_ENABLE | GER_BLT_SRC_FB | pTrident->BltScanDirection);
@@ -232,7 +232,7 @@ static int MarkSync(ScreenPtr pScreen)
 
 static void WaitMarker(ScreenPtr pScreen, int marker)
 {
-    TRIDENTPtr pTrident = TRIDENTPTR(xf86Screens[pScreen->myNum]);
+    TRIDENTPtr pTrident = TRIDENTPTR(xf86ScreenToScrn(pScreen));
     int busy;
     int cnt = 10000000;
 
@@ -267,7 +267,7 @@ static void BladeInitializeAccelerator(ScrnInfoPtr pScrn)
 
 Bool BladeExaInit(ScreenPtr pScreen)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
     ExaDriverPtr ExaDriver;
 
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/image_accel.c b/src/image_accel.c
index f4e8055..9a9388d 100644
--- a/src/image_accel.c
+++ b/src/image_accel.c
@@ -133,7 +133,7 @@ Bool
 ImageAccelInit(ScreenPtr pScreen)
 {
     XAAInfoRecPtr infoPtr;
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
 
     if (pTrident->NoAccel)
diff --git a/src/trident.h b/src/trident.h
index a28c9fc..ebdbccd 100644
--- a/src/trident.h
+++ b/src/trident.h
@@ -46,6 +46,7 @@
 #include "xf86Pci.h"
 #include "vbe.h"
 
+#include "compat-api.h"
 /* Banked framebuffer only supported on ISA */
 #ifdef HAVE_ISA
 #define LINEAR() (pTrident->Linear)
@@ -110,7 +111,7 @@ typedef struct {
     unsigned char *	ShadowPtr;
     int			ShadowPitch;
     RefreshAreaFuncPtr  RefreshArea;
-    void	        (*PointerMoved)(int index, int x, int y);
+    void	        (*PointerMoved)(SCRN_ARG_TYPE arg, int x, int y);
     int                 Rotate;
     float		frequency;
     unsigned char	REGPCIReg;
@@ -225,8 +226,8 @@ typedef struct {
 /* Prototypes */
 
 Bool TRIDENTClockSelect(ScrnInfoPtr pScrn, int no);
-Bool TRIDENTSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
-void TRIDENTAdjustFrame(int scrnIndex, int x, int y, int flags);
+Bool TRIDENTSwitchMode(SWITCH_MODE_ARGS_DECL);
+void TRIDENTAdjustFrame(ADJUST_FRAME_ARGS_DECL);
 Bool TRIDENTDGAInit(ScreenPtr pScreen);
 Bool TRIDENTI2CInit(ScreenPtr pScreen);
 void TRIDENTInitVideo(ScreenPtr pScreen);
@@ -265,7 +266,7 @@ void TridentFindClock(ScrnInfoPtr pScrn, int clock);
 float CalculateMCLK(ScrnInfoPtr pScrn);
 void TRIDENTRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
 void TRIDENTShadowUpdate (ScreenPtr pScreen, shadowBufPtr pBuf);
-void TRIDENTPointerMoved(int index, int x, int y);
+void TRIDENTPointerMoved(SCRN_ARG_TYPE arg, int x, int y);
 void TRIDENTRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
 void TRIDENTRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
 void TRIDENTRefreshArea24(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
diff --git a/src/trident_accel.c b/src/trident_accel.c
index cb217e9..85d1427 100644
--- a/src/trident_accel.c
+++ b/src/trident_accel.c
@@ -116,7 +116,7 @@ Bool
 TridentAccelInit(ScreenPtr pScreen)
 {
     XAAInfoRecPtr infoPtr;
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
 
     if (pTrident->NoAccel)
diff --git a/src/trident_bank.c b/src/trident_bank.c
index adbc964..a551a0c 100644
--- a/src/trident_bank.c
+++ b/src/trident_bank.c
@@ -41,7 +41,7 @@ int TVGA8900SetRead(ScreenPtr pScreen, int bank)
 {
   ScrnInfoPtr pScrn;
   TRIDENTPtr pTrident;
-  pScrn = xf86Screens[pScreen->myNum];
+  pScrn = xf86ScreenToScrn(pScreen);
   pTrident = TRIDENTPTR(pScrn);
   OUTW(0x3c4, 0xC000 | (((bank & 0x3f) ^ 0x02)<<8)|0x0E);
   return 0;
@@ -50,7 +50,7 @@ int TGUISetRead(ScreenPtr pScreen, int bank)
 {
   ScrnInfoPtr pScrn;
   TRIDENTPtr pTrident;
-  pScrn = xf86Screens[pScreen->myNum];
+  pScrn = xf86ScreenToScrn(pScreen);
   pTrident = TRIDENTPTR(pScrn);
   OUTB(0x3d9, bank & 0xff);
   return 0;
@@ -59,7 +59,7 @@ int TVGA8900SetWrite(ScreenPtr pScreen, int bank)
 {
   ScrnInfoPtr pScrn;
   TRIDENTPtr pTrident;
-  pScrn = xf86Screens[pScreen->myNum];
+  pScrn = xf86ScreenToScrn(pScreen);
   pTrident = TRIDENTPTR(pScrn);
   OUTW(0x3c4, 0xC000 | (((bank & 0x3f) ^ 0x02)<<8)|0x0E);
   return 0;
@@ -68,7 +68,7 @@ int TGUISetWrite(ScreenPtr pScreen, int bank)
 {
   ScrnInfoPtr pScrn;
   TRIDENTPtr pTrident;
-  pScrn = xf86Screens[pScreen->myNum];
+  pScrn = xf86ScreenToScrn(pScreen);
   pTrident = TRIDENTPTR(pScrn);
   OUTB(0x3d8, bank & 0xff);
   return 0;
@@ -77,7 +77,7 @@ int TVGA8900SetReadWrite(ScreenPtr pScreen, int bank)
 {
   ScrnInfoPtr pScrn;
   TRIDENTPtr pTrident;
-  pScrn = xf86Screens[pScreen->myNum];
+  pScrn = xf86ScreenToScrn(pScreen);


Reply to: