.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.lankho...@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.lankho...@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.lankho...@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.lankho...@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.lankho...@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 <airl...@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 <airl...@redhat.com> + +commit f11a407ceb0857bb0d33811511117b490a8ae6ee +Author: Dave Airlie <airl...@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 <airl...@redhat.com> + +commit fa0f3092ed38ce71ba9f65156bde306eb63feaf8 +Author: Dave Airlie <airl...@redhat.com> +Date: Mon Jul 2 12:08:05 2012 +0100 + + mga: bump to 1.6.0 + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit 7b6dcc4d5768cc8d17a1f664155ebdc8ca8c042e +Author: Dave Airlie <airl...@redhat.com> +Date: Wed Jun 6 09:23:31 2012 +0100 + + mga: port to new compat API. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit 0cb8ba6dc5e7bf4179174f9f17e211df7d89bd41 +Author: Alan Coopersmith <alan.coopersm...@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.coopersm...@oracle.com> + Reviewed-by: Dave Airlie <airl...@redhat.com> + +commit 3d9631b819c5c6f64ebf9bda8aab93e1cc7f391f +Author: Alan Coopersmith <alan.coopersm...@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.coopersm...@oracle.com> + Reviewed-by: Dave Airlie <airl...@redhat.com> + +commit 0af7dba78559ce82b4c3eed0862415efcde51863 +Author: Dave Airlie <airl...@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 <airl...@redhat.com> + commit 3991971c23ebe596742c004b1e583dfb1aa14ec4 Author: Alan Coopersmith <alan.coopersm...@oracle.com> Date: Fri Mar 23 19:02:40 2012 -0700 commit cd41eacaeabf8227197d605b055713ca654633d5 Author: Dave Airlie <airl...@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 <airl...@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 <jcris...@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 <jcris...@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 <airl...@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 <airl...@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 <airl...@redhat.com> Date: Mon Jul 2 12:08:05 2012 +0100 mga: bump to 1.6.0 Signed-off-by: Dave Airlie <airl...@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 <airl...@redhat.com> Date: Wed Jun 6 09:23:31 2012 +0100 mga: port to new compat API. Signed-off-by: Dave Airlie <airl...@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 <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/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) -- 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/e1srtyy-0000db...@vasks.debian.org