configure.ac | 22 +++++++- src/Makefile.am | 9 +-- src/compat-api.h | 99 ++++++++++++++++++++++++++++++++++++++ src/mga.h | 64 ++++++++++++++----------- src/mga_arc.c | 2 src/mga_bios.c | 3 - src/mga_dac3026.c | 3 - src/mga_dacG.c | 5 - src/mga_dga.c | 24 +++++---- src/mga_dh.c | 3 - src/mga_dri.c | 33 +++++------- src/mga_driver.c | 138 ++++++++++++++++++++++++------------------------------ src/mga_exa.c | 11 +--- src/mga_g450pll.c | 3 - src/mga_hwcurs.c | 3 - src/mga_merge.c | 63 ++++++++++++------------ src/mga_merge.h | 6 +- src/mga_shadow.c | 7 +- src/mga_storm.c | 31 +++++++++--- src/mga_video.c | 21 ++++---- 20 files changed, 332 insertions(+), 218 deletions(-)
New commits: commit fcd27b2b4ab2a181d5263296e71cda2d8772ba2d Author: Dave Airlie <[email protected]> Date: Fri Sep 28 11:36:44 2012 +1000 mga: bump release to 1.6.2 diff --git a/configure.ac b/configure.ac index 1b6c20f..fca1a9c 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-mga], - [1.6.1], + [1.6.2], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-mga]) AC_CONFIG_SRCDIR([Makefile.am]) commit 29de36da0ed031815bd302f55f2ef5cc0cce6cc6 Author: Dave Airlie <[email protected]> Date: Fri Sep 28 10:54:00 2012 +1000 mga: bring dri1 back to life. we need to at least setup the memory manager bits so dri1 clients get a backbuffer. this at least gets gears working again without XAA. Signed-off-by: Dave Airlie <[email protected]> diff --git a/src/Makefile.am b/src/Makefile.am index 79745d1..8227c05 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -55,6 +55,7 @@ mga_drv_la_SOURCES = \ mga_ucode.h \ mga_vga.c \ mga_video.c \ + mga_storm.c \ compat-api.h if DRI @@ -71,6 +72,5 @@ endif if XAA mga_drv_la_SOURCES += \ - mga_arc.c \ - mga_storm.c + mga_arc.c endif diff --git a/src/mga_dri.c b/src/mga_dri.c index 0154671..3923c04 100644 --- a/src/mga_dri.c +++ b/src/mga_dri.c @@ -922,13 +922,11 @@ static void MGADRIInitBuffersXAA(WindowPtr pWin, RegionPtr prgn, } #endif -#ifdef USE_EXA static void MGADRIInitBuffersEXA(WindowPtr pWin, RegionPtr prgn, CARD32 index) { /* FIXME */ } -#endif #ifdef USE_XAA /* @@ -1078,13 +1076,11 @@ static void MGADRIMoveBuffersXAA(WindowPtr pParent, DDXPointRec ptOldOrg, } #endif -#ifdef USE_EXA static void MGADRIMoveBuffersEXA(WindowPtr pParent, DDXPointRec ptOldOrg, RegionPtr prgnSrc, CARD32 index) { /* FIXME */ } -#endif Bool MGADRIScreenInit( ScreenPtr pScreen ) { @@ -1231,6 +1227,8 @@ Bool MGADRIScreenInit( ScreenPtr pScreen ) pDRIInfo->SwapContext = MGADRISwapContext; } + pDRIInfo->InitBuffers = MGADRIInitBuffersEXA; + pDRIInfo->MoveBuffers = MGADRIMoveBuffersEXA; #ifdef USE_EXA if (pMga->Exa) { pDRIInfo->InitBuffers = MGADRIInitBuffersEXA; diff --git a/src/mga_driver.c b/src/mga_driver.c index 3db3a74..8c4bb9c 100644 --- a/src/mga_driver.c +++ b/src/mga_driver.c @@ -3398,11 +3398,7 @@ MGAScreenInit(SCREEN_INIT_ARGS_DECL) mgaExaInit(pScreen); else #endif -#ifdef XAA MGAStormAccelInit(pScreen); -#else - ; -#endif } xf86SetBackingStore(pScreen); @@ -4184,14 +4180,3 @@ MGAG100BlackMagic(ScrnInfoPtr pScrn) OUTREG(MGAREG_MACCESS, 1<<15); usleep(10); } - -#ifndef HAVE_XAA_H -void MGAStormEngineInit( ScrnInfoPtr pScrn ) -{ -} - -void -MGAStormSync(ScrnInfoPtr pScrn) -{ -} -#endif diff --git a/src/mga_storm.c b/src/mga_storm.c index c32caf4..fb0e7be 100644 --- a/src/mga_storm.c +++ b/src/mga_storm.c @@ -15,8 +15,10 @@ #include "xf86Pci.h" /* Drivers that use XAA need this */ +#ifdef HAVE_XAA_H #include "xaa.h" #include "xaalocal.h" +#endif #include "xf86fbman.h" #include "miline.h" #include "servermd.h" @@ -59,6 +61,7 @@ do { \ XAAMoveDWORDS((d),(s),(c)); \ } while (0) +#ifdef HAVE_XAA_H static void mgaSetupForSolidFill( ScrnInfoPtr pScrn, int color, int rop, unsigned int planemask ); @@ -569,10 +572,13 @@ MGASubsequentCPUToScreenTexture ( #endif /* defined(RENDER) */ +#endif Bool mgaAccelInit( ScreenPtr pScreen ) { +#ifdef HAVE_XAA_H XAAInfoRecPtr infoPtr; +#endif ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); MGAPtr pMga = MGAPTR(pScrn); int maxFastBlitMem, maxlines; @@ -583,8 +589,10 @@ Bool mgaAccelInit( ScreenPtr pScreen ) pMga->ScratchBuffer = malloc(((pScrn->displayWidth * pMga->CurrentLayout.bitsPerPixel) + 127) >> 3); if(!pMga->ScratchBuffer) return FALSE; +#ifdef HAVE_XAA_H pMga->AccelInfoRec = infoPtr = XAACreateInfoRec(); if(!infoPtr) return FALSE; +#endif pMga->RenderTime = 0; pMga->LinearScratch = 0; @@ -617,6 +625,7 @@ Bool mgaAccelInit( ScreenPtr pScreen ) pMga->AtypeNoBLK = MGAAtypeNoBLK; } +#ifdef HAVE_XAA_H /* fill out infoPtr here */ infoPtr->Flags = PIXMAP_CACHE | OFFSCREEN_PIXMAPS | @@ -782,6 +791,8 @@ Bool mgaAccelInit( ScreenPtr pScreen ) pMga->MaxFastBlitY = maxFastBlitMem / (pScrn->displayWidth * pMga->CurrentLayout.bitsPerPixel / 8); } +#endif + switch (pMga->Chipset) { case PCI_CHIP_MGAG200_SE_A_PCI: case PCI_CHIP_MGAG200_SE_B_PCI: @@ -917,6 +928,7 @@ Bool mgaAccelInit( ScreenPtr pScreen ) } +#ifdef HAVE_XAA_H for (i = 0; i < pScrn->numEntities; i++) { if (xf86IsEntityShared(pScrn->entityList[i])) { infoPtr->RestoreAccelState = mgaRestoreAccelState; @@ -949,9 +961,13 @@ Bool mgaAccelInit( ScreenPtr pScreen ) #endif /* defined(RENDER) */ return(XAAInit(pScreen, infoPtr)); +#else + return TRUE; +#endif } +#ifdef HAVE_XAA_H /* Support for multiscreen */ static void mgaRestoreAccelState(ScrnInfoPtr pScrn) { @@ -994,7 +1010,7 @@ static void mgaRestoreAccelState(ScrnInfoPtr pScrn) OUTREG(MGAREG_YBOT, 0x007FFFFF); /* maxPixelPointer */ pMga->AccelFlags &= ~CLIPPER_ON; } - +#endif CARD32 MGAAtype[16] = { MGADWG_RPL | 0x00000000, MGADWG_RSTR | 0x00080000, @@ -1080,9 +1096,11 @@ void MGAStormEngineInit( ScrnInfoPtr pScrn ) opmode &= ~0x30000; #endif +#ifdef HAVE_XAA_H pMga->SetupForSolidFill = mgaSetupForSolidFill; pMga->SubsequentSolidFillRect = mgaSubsequentSolidFillRect; pMga->RestoreAccelState = mgaRestoreAccelState; +#endif pMga->fifoCount = 0; @@ -1155,6 +1173,7 @@ void MGAStormEngineInit( ScrnInfoPtr pScrn ) } +#ifdef HAVE_XAA_H static void MGASetClippingRectangle( ScrnInfoPtr pScrn, @@ -2534,3 +2553,4 @@ MGAFillCacheBltRects( SET_SYNC_FLAG(infoRec); } +#endif commit e777a2845bfeefad386db35d694e4b1cd74a0dd5 Author: Dave Airlie <[email protected]> Date: Wed Sep 26 15:18:44 2012 +1000 mga: add stub storm functions if not using XAA If we aren't using XAA just add stub storm init/sync functions. This lets the driver load yay. Signed-off-by: Dave Airlie <[email protected]> diff --git a/src/mga_driver.c b/src/mga_driver.c index f4f54a1..3db3a74 100644 --- a/src/mga_driver.c +++ b/src/mga_driver.c @@ -4185,3 +4185,13 @@ MGAG100BlackMagic(ScrnInfoPtr pScrn) usleep(10); } +#ifndef HAVE_XAA_H +void MGAStormEngineInit( ScrnInfoPtr pScrn ) +{ +} + +void +MGAStormSync(ScrnInfoPtr pScrn) +{ +} +#endif commit 220e06fefe77175d9827954e61549eadda245d9a Author: Adam Jackson <[email protected]> Date: Tue Sep 25 08:54:42 2012 -0400 Remove mibstore.h Signed-off-by: Adam Jackson <[email protected]> diff --git a/src/mga_driver.c b/src/mga_driver.c index b3fe538..f4f54a1 100644 --- a/src/mga_driver.c +++ b/src/mga_driver.c @@ -73,9 +73,6 @@ /* All drivers initialising the SW cursor need this */ #include "mipointer.h" -/* All drivers implementing backing store need this */ -#include "mibstore.h" - #include "micmap.h" #include "xf86DDC.h" @@ -3408,7 +3405,6 @@ MGAScreenInit(SCREEN_INIT_ARGS_DECL) #endif } - miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); xf86SetSilkenMouse(pScreen); commit cd41eacaeabf8227197d605b055713ca654633d5 Author: Dave Airlie <[email protected]> Date: Tue Jul 17 16:05:09 2012 +1000 xf86-video-mga: bump to version 1.6.1 Signed-off-by: Dave Airlie <[email protected]> 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 f11a407ceb0857bb0d33811511117b490a8ae6ee Author: Dave Airlie <[email protected]> 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 <[email protected]> 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 <[email protected]> Date: Mon Jul 2 12:08:05 2012 +0100 mga: bump to 1.6.0 Signed-off-by: Dave Airlie <[email protected]> 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 <[email protected]> Date: Wed Jun 6 09:23:31 2012 +0100 mga: port to new compat API. Signed-off-by: Dave Airlie <[email protected]> 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 <[email protected]> + */ + +/* 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); -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

