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.lankho...@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.lankho...@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.lankho...@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 <tjaal...@ubuntu.com> +Date: Wed Sep 26 11:01:26 2012 +0300 + + Fix loading the driver without XAA + +commit 30787294c837aefa8820b6f76f00fe30d4e54181 +Author: Adam Jackson <a...@redhat.com> +Date: Tue Sep 25 08:55:01 2012 -0400 + + Remove mibstore.h + + Signed-off-by: Adam Jackson <a...@redhat.com> + commit 3098fe7193cbfe4a885a60b93e71796b70e4fa2a Author: Dave Airlie <airl...@redhat.com> Date: Tue Jul 17 16:05:09 2012 +1000 commit 7b29e1f76aab503560b9929ae6a918e2b02393af Author: Maarten Lankhorst <maarten.lankho...@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.lankho...@canonical.com> Thu, 19 Jul 2012 13:21:51 +0200 commit 48c15909691e28ad2c188a2978b1c8ef3d9d8760 Author: Timo Aaltonen <tjaal...@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 <a...@redhat.com> Date: Tue Sep 25 08:55:01 2012 -0400 Remove mibstore.h Signed-off-by: Adam Jackson <a...@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.lankho...@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 <airl...@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 <airl...@redhat.com> + +commit f02709607cb353db1e89a909ff01a6941f535ab4 +Author: Dave Airlie <airl...@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 <airl...@redhat.com> + +commit 177c93486647e71c088ac42697e34c47664eb666 +Author: Dave Airlie <airl...@redhat.com> +Date: Wed Jun 6 11:49:16 2012 +0100 + + trident: convert to new compat API. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit 2301879bc334fd9f44cc7f23be613b5b4533568a +Author: Dave Airlie <airl...@redhat.com> +Date: Wed Jun 6 11:40:26 2012 +0100 + + trident: drop lots of xf86PciInfo.h includes + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit f481290e6dbd73b484cad3e8583031c6e2ccb555 +Author: Adam Jackson <a...@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 <a...@redhat.com> + commit 16816e99bacbd8dfc51a2deba541a72fb27f156a Author: Alan Coopersmith <alan.coopersm...@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.lankho...@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 <airl...@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 <airl...@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 <airl...@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 <airl...@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 <airl...@redhat.com> Date: Wed Jun 6 11:49:16 2012 +0100 trident: convert to new compat API. Signed-off-by: Dave Airlie <airl...@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 <airl...@redhat.com> + */ + +/* this file provides API compat between server post 1.13 and pre it, + it should be reused inside as many drivers as possible */ +#ifndef COMPAT_API_H +#define COMPAT_API_H + +#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR +#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] +#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p +#endif + +#ifndef XF86_HAS_SCRN_CONV +#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] +#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] +#endif + +#ifndef XF86_SCRN_INTERFACE + +#define SCRN_ARG_TYPE int +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] + +#define SCREEN_ARG_TYPE int +#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] + +#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask + +#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); -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1vomtd-0004z2...@vasks.debian.org