xserver-xorg-video-savage: Changes to 'ubuntu'
ChangeLog | 53 ++++++++++++++++++++++++++
configure.ac | 20 +++++++++
debian/changelog | 6 ++
src/Makefile.am | 1
src/compat-api.h | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/savage_accel.c | 2
src/savage_cursor.c | 4 -
src/savage_dga.c | 23 +++++++----
src/savage_dri.c | 54 ++++++++++++++------------
src/savage_driver.c | 93 +++++++++++++++++++++-------------------------
src/savage_driver.h | 16 +++++--
src/savage_exa.c | 14 +++---
src/savage_hwmc.c | 5 +-
src/savage_i2c.c | 11 +++++
src/savage_shadow.c | 6 +-
src/savage_vbe.c | 25 ++++++------
src/savage_video.c | 10 ++--
src/savage_xaa.c | 17 +++++---
18 files changed, 343 insertions(+), 122 deletions(-)
New commits:
commit 3299a36b373cc6d3237b79ef42908e63f822edd1
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Wed Jul 18 13:42:47 2012 +0200
New upstream release
diff --git a/debian/changelog b/debian/changelog
index e68bc48..bb7137f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-savage (1:2.3.6-1) UNRELEASED; urgency=low
+
+ * New upstream release
+
+ -- Maarten Lankhorst <maarten.lankhorst@canonical.com> Wed, 18 Jul 2012 13:42:19 +0200
+
xserver-xorg-video-savage (1:2.3.4-1) unstable; urgency=low
* New upstream release
commit 03e24e57a11ed176c845ab9c2e5308dceab08d26
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Wed Jul 18 13:42:38 2012 +0200
Bump changelog
diff --git a/ChangeLog b/ChangeLog
index eda84db..ac40aff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,56 @@
+commit cb27a7a072c6e087a2e272d84c1d569dc717da8b
+Author: Dave Airlie <airlied@redhat.com>
+Date: Tue Jul 17 16:05:09 2012 +1000
+
+ xf86-video-savage: bump to version 2.3.6
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit d7edd7c545473d5ed80c9a46c1405042267a7293
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon Jul 16 03:39:32 2012 +0100
+
+ savage: make build with no xaa server.
+
+ This fixes savage build against the no XAA server.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 508e0742b7d1ac1e4ff6b648d19bfa062c535d61
+Author: Dave Airlie <airlied@redhat.com>
+Date: Mon Jul 2 12:29:41 2012 +0100
+
+ savage: bump to 2.3.5
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit 430b956b49b6c883189074ce13bc234545b714e0
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Jun 6 11:24:31 2012 +0100
+
+ savage: i2c drop xf86Screens usage.
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit a2714fb09e1e0badbb3e98e24d4b1ed92003bdb9
+Author: Dave Airlie <airlied@redhat.com>
+Date: Wed Jun 6 11:22:29 2012 +0100
+
+ savage: port to new compat API
+
+ Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit de22eab9a21df80fe965dc37d21ba3ac2b9f5fd0
+Author: Tormod Volden <debian.tormod@gmail.com>
+Date: Wed Feb 15 22:20:37 2012 +0100
+
+ Refactor BIOS modes retrieval to call VBEGetVBEInfo only once
+
+ Otherwise, calling it twice would trigger a VBE bug when using
+ xserver 1.12.
+
+ Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
+
commit 63dd44674a28263c5d8d6aec8b72e95f94d3fe6c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri Mar 23 19:46:12 2012 -0700
commit cb27a7a072c6e087a2e272d84c1d569dc717da8b
Author: Dave Airlie <airlied@redhat.com>
Date: Tue Jul 17 16:05:09 2012 +1000
xf86-video-savage: bump to version 2.3.6
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/configure.ac b/configure.ac
index 5e4fbe2..2b99314 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-savage],
- [2.3.5],
+ [2.3.6],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-savage])
AC_CONFIG_SRCDIR([Makefile.am])
commit d7edd7c545473d5ed80c9a46c1405042267a7293
Author: Dave Airlie <airlied@redhat.com>
Date: Mon Jul 16 03:39:32 2012 +0100
savage: make build with no xaa server.
This fixes savage build against the no XAA server.
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/configure.ac b/configure.ac
index ca60e76..5e4fbe2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -103,6 +103,24 @@ if test "$DRI" = yes; then
AC_DEFINE(SAVAGEDRI_DEVEL,1,[Enable developmental DRI driver support])
fi
+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])
+
save_CFLAGS="$CFLAGS"
CFLAGS="$XORG_CFLAGS"
AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
diff --git a/src/savage_dga.c b/src/savage_dga.c
index cb541d3..413e0e7 100644
--- a/src/savage_dga.c
+++ b/src/savage_dga.c
@@ -34,8 +34,9 @@ in this Software without prior written authorization from the XFree86 Project.
*
*/
-
+#ifdef HAVE_XAA_H
#include "xaalocal.h"
+#endif
#include "savage_driver.h"
#include "dgaproc.h"
@@ -46,9 +47,10 @@ static Bool Savage_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **,
static Bool Savage_SetMode(ScrnInfoPtr, DGAModePtr);
static int Savage_GetViewport(ScrnInfoPtr);
static void Savage_SetViewport(ScrnInfoPtr, int, int, int);
+#ifdef HAVE_XAA_H
static void Savage_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
static void Savage_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
-
+#endif
static
DGAFunctionRec Savage_DGAFuncs = {
@@ -58,8 +60,12 @@ DGAFunctionRec Savage_DGAFuncs = {
Savage_SetViewport,
Savage_GetViewport,
SavageAccelSync,
+#ifdef HAVE_XAA_H
Savage_FillRect,
Savage_BlitRect,
+#else
+ NULL, NULL,
+#endif
NULL /* BlitTransRect */
};
@@ -127,8 +133,10 @@ SECOND_PASS:
mode->mode = pMode;
mode->flags = DGA_CONCURRENT_ACCESS | DGA_PIXMAP_AVAILABLE;
+#ifdef HAVE_XAA_H
if(!psav->NoAccel)
mode->flags |= DGA_FILL_RECT | DGA_BLIT_RECT;
+#endif
if(pMode->Flags & V_DBLSCAN)
mode->flags |= DGA_DOUBLESCAN;
if(pMode->Flags & V_INTERLACE)
@@ -341,6 +349,7 @@ Savage_SetViewport(
psav->DGAViewportStatus = 0; /* MGAAdjustFrame loops until finished */
}
+#ifdef HAVE_XAA_H
static void
Savage_FillRect (
ScrnInfoPtr pScrn,
@@ -376,7 +385,7 @@ Savage_BlitRect(
SET_SYNC_FLAG(psav->AccelInfoRec);
}
}
-
+#endif
static Bool
Savage_OpenFramebuffer(
diff --git a/src/savage_dri.c b/src/savage_dri.c
index 7b5d2b1..bdb78e4 100644
--- a/src/savage_dri.c
+++ b/src/savage_dri.c
@@ -31,8 +31,10 @@
#include "xf86.h"
#include "xf86_OSproc.h"
+#ifdef HAVE_XAA_H
#include "xaalocal.h"
#include "xaarop.h"
+#endif
#include "xf86Pci.h"
#include "xf86fbman.h"
@@ -287,8 +289,10 @@ static void SAVAGEWakeupHandler(WAKEUPHANDLER_ARGS_DECL)
}
if (psav->useEXA)
exaMarkSync(pScreen);
+#ifdef HAVE_XAA_H
else
psav->AccelInfoRec->NeedToSync = TRUE;
+#endif
/* FK: this flag doesn't seem to be used. */
}
@@ -1535,8 +1539,10 @@ SAVAGEDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
BCI_SEND(0xc0020000); /* wait for 2D idle */
if (psav->useEXA)
exaMarkSync(pScreen);
+#ifdef HAVE_XAA_H
else
psav->AccelInfoRec->NeedToSync = TRUE;
+#endif
}
/* Definition in savage_accel.c */
diff --git a/src/savage_driver.c b/src/savage_driver.c
index 1083d65..026bf5c 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -3987,10 +3987,12 @@ static Bool SavageCloseScreen(CLOSE_SCREEN_ARGS_DECL)
psav->EXADriverPtr = NULL;
}
+#ifdef HAVE_XAA_H
if( psav->AccelInfoRec ) {
XAADestroyInfoRec( psav->AccelInfoRec );
psav->AccelInfoRec = NULL;
}
+#endif
if( psav->DGAModes ) {
free( psav->DGAModes );
diff --git a/src/savage_driver.h b/src/savage_driver.h
index d51b2a1..b604292 100644
--- a/src/savage_driver.h
+++ b/src/savage_driver.h
@@ -63,7 +63,10 @@
#include "fboverlay.h"
#include "xf86cmap.h"
#include "vbe.h"
+#ifdef HAVE_XAA_H
#include "xaa.h"
+#endif
+#include "xf86fbman.h"
#include "exa.h"
#include "xf86xv.h"
@@ -421,7 +424,9 @@ typedef struct _Savage {
unsigned long sbd_high;
/* Support for XAA acceleration */
+#ifdef HAVE_XAA_H
XAAInfoRecPtr AccelInfoRec;
+#endif
xRectangle Rect;
unsigned int SavedBciCmd;
unsigned int SavedFgColor;
diff --git a/src/savage_hwmc.c b/src/savage_hwmc.c
index 2dea4df..d1e5553 100644
--- a/src/savage_hwmc.c
+++ b/src/savage_hwmc.c
@@ -40,8 +40,9 @@
#include "xf86xvmc.h"
#include <X11/extensions/Xv.h>
#include <X11/extensions/XvMC.h>
-#include "xaa.h"
+#ifdef HAVE_XAA_H
#include "xaalocal.h"
+#endif
#include "dixstruct.h"
#include "fourcc.h"
diff --git a/src/savage_xaa.c b/src/savage_xaa.c
index e4d661b..858cb97 100644
--- a/src/savage_xaa.c
+++ b/src/savage_xaa.c
@@ -14,10 +14,13 @@
#endif
#include <X11/Xarch.h>
+#include "savage_driver.h"
+#ifdef HAVE_XAA_H
#include "xaalocal.h"
#include "xaarop.h"
+
#include "miline.h"
-#include "savage_driver.h"
+
#include "savage_bci.h"
extern int gSavageEntityIndex;
@@ -146,11 +149,12 @@ void SavageRestoreAccelState(ScrnInfoPtr pScrn)
return;
}
-
+#endif
Bool
SavageXAAInit(ScreenPtr pScreen)
{
+#ifdef HAVE_XAA_H
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
XAAInfoRecPtr xaaptr;
@@ -344,7 +348,9 @@ SavageXAAInit(ScreenPtr pScreen)
return XAAInit(pScreen, xaaptr);
-
+#else
+ return FALSE;
+#endif
}
/* The sync function for the GE */
@@ -355,7 +361,7 @@ SavageAccelSync(ScrnInfoPtr pScrn)
psav->WaitIdleEmpty(psav);
}
-
+#ifdef HAVE_XAA_H
/*
* The XAA ROP helper routines all assume that a solid color is a
* "pattern". The Savage chips, however, apply a non-stippled solid
@@ -1020,3 +1026,4 @@ void SavageSubsequentImageWriteRect
BCI_SEND(BCI_W_H(w, h));
}
+#endif
commit 508e0742b7d1ac1e4ff6b648d19bfa062c535d61
Author: Dave Airlie <airlied@redhat.com>
Date: Mon Jul 2 12:29:41 2012 +0100
savage: bump to 2.3.5
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/configure.ac b/configure.ac
index d82af14..ca60e76 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-savage],
- [2.3.4],
+ [2.3.5],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-savage])
AC_CONFIG_SRCDIR([Makefile.am])
commit 430b956b49b6c883189074ce13bc234545b714e0
Author: Dave Airlie <airlied@redhat.com>
Date: Wed Jun 6 11:24:31 2012 +0100
savage: i2c drop xf86Screens usage.
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/src/savage_i2c.c b/src/savage_i2c.c
index b5739a2..a37fc7f 100644
--- a/src/savage_i2c.c
+++ b/src/savage_i2c.c
@@ -37,7 +37,11 @@ in this Software without prior written authorization from the XFree86 Project.
static void
SavageI2CPutBits(I2CBusPtr b, int clock, int data)
{
+#ifdef XF86_SCRN_INTERFACE
+ ScrnInfoPtr pScrn = b->pScrn;
+#else
ScrnInfoPtr pScrn = (ScrnInfoPtr)(xf86Screens[b->scrnIndex]);
+#endif
SavagePtr psav = SAVPTR(pScrn);
unsigned char reg = 0x10;
@@ -51,7 +55,11 @@ SavageI2CPutBits(I2CBusPtr b, int clock, int data)
static void
SavageI2CGetBits(I2CBusPtr b, int *clock, int *data)
{
+#ifdef XF86_SCRN_INTERFACE
+ ScrnInfoPtr pScrn = b->pScrn;
+#else
ScrnInfoPtr pScrn = (ScrnInfoPtr)(xf86Screens[b->scrnIndex]);
+#endif
SavagePtr psav = SAVPTR(pScrn);
unsigned char reg = 0x10;
@@ -76,6 +84,9 @@ SavageI2CInit(ScrnInfoPtr pScrn)
I2CPtr->BusName = "I2C bus";
I2CPtr->scrnIndex = pScrn->scrnIndex;
+#ifdef XF86_SCRN_INTERFACE
+ I2CPtr->pScrn = pScrn;
+#endif
I2CPtr->I2CPutBits = SavageI2CPutBits;
I2CPtr->I2CGetBits = SavageI2CGetBits;
commit a2714fb09e1e0badbb3e98e24d4b1ed92003bdb9
Author: Dave Airlie <airlied@redhat.com>
Date: Wed Jun 6 11:22:29 2012 +0100
savage: port to new compat API
Signed-off-by: Dave Airlie <airlied@redhat.com>
diff --git a/src/Makefile.am b/src/Makefile.am
index e980c1a..52fdf9e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -29,6 +29,7 @@ savage_drv_la_LDFLAGS = -module -avoid-version
savage_drv_ladir = @moduledir@/drivers
savage_drv_la_SOURCES = \
+ compat-api.h \
savage_accel.c \
savage_xaa.c \
savage_exa.c \
diff --git a/src/compat-api.h b/src/compat-api.h
new file mode 100644
index 0000000..98ba435
--- /dev/null
+++ b/src/compat-api.h
@@ -0,0 +1,105 @@
+/*
+ * 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 WAKEUPHANDLER_ARGS_DECL int arg, pointer wakeupData, unsigned long result, pointer read_mask
+#define WAKEUPHANDLER_ARGS arg, wakeupData, result, read_mask
+
+#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 WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result, pointer read_mask
+#define WAKEUPHANDLER_ARGS arg, result, read_mask
+
+#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/savage_accel.c b/src/savage_accel.c
index 0920e22..1bcb5fa 100644
--- a/src/savage_accel.c
+++ b/src/savage_accel.c
@@ -1274,7 +1274,7 @@ void SavageRestoreAccelState(ScrnInfoPtr pScrn)
Bool
SavageInitAccel(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
#ifdef SAVAGEDRI
diff --git a/src/savage_cursor.c b/src/savage_cursor.c
index 6364293..3506f3a 100644
--- a/src/savage_cursor.c
+++ b/src/savage_cursor.c
@@ -83,7 +83,7 @@ static void SavageSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg);
static Bool
SavageUseHWCursor(ScreenPtr pScr, CursorPtr pCurs)
{
- ScrnInfoPtr pScrn = xf86Screens[pScr->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScr);
SavagePtr psav = SAVPTR(pScrn);
if (psav->PanelX != pScrn->currentMode->HDisplay
@@ -100,7 +100,7 @@ SavageUseHWCursor(ScreenPtr pScr, CursorPtr pCurs)
Bool
SavageHWCursorInit(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
xf86CursorInfoPtr infoPtr;
diff --git a/src/savage_dga.c b/src/savage_dga.c
index 1c4d884..cb541d3 100644
--- a/src/savage_dga.c
+++ b/src/savage_dga.c
@@ -202,7 +202,7 @@ SECOND_PASS:
Bool
SavageDGAInit(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
DGAModePtr modes = NULL;
int num = 0;
@@ -276,7 +276,7 @@ Savage_SetMode(
pScrn->currentMode = OldMode[index];
psav->DGAactive = FALSE;
- SavageSwitchMode(index, pScrn->currentMode, 0);
+ SavageSwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode));
if( psav->hwcursor && psav->hwc_on )
SavageShowCursor(pScrn);
} else {
@@ -312,7 +312,7 @@ Savage_SetMode(
(pMode->bitsPerPixel >> 3);
/* psav->UseBIOS = FALSE; */
- SavageSwitchMode(index, pMode->mode, 0);
+ SavageSwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode));
psav->UseBIOS = holdBIOS;
}
@@ -337,7 +337,7 @@ Savage_SetViewport(
){
SavagePtr psav = SAVPTR(pScrn);
- SavageAdjustFrame(pScrn->pScreen->myNum, x, y, flags);
+ SavageAdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y));
psav->DGAViewportStatus = 0; /* MGAAdjustFrame loops until finished */
}
diff --git a/src/savage_dri.c b/src/savage_dri.c
index 38d2a86..7b5d2b1 100644
--- a/src/savage_dri.c
+++ b/src/savage_dri.c
@@ -104,7 +104,7 @@ SAVAGEDRISubsequentScreenToScreenCopy(
*/
static Bool SAVAGEInitVisualConfigs( ScreenPtr pScreen )
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
int numConfigs = 0;
__GLXvisualConfig *pConfigs = 0;
@@ -243,7 +243,7 @@ static Bool SAVAGECreateContext( ScreenPtr pScreen, VisualPtr visual,
drm_context_t hwContext, void *pVisualConfigPriv,
DRIContextType contextStore )
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
if(psav->xvmcContext)
@@ -259,21 +259,20 @@ static Bool SAVAGECreateContext( ScreenPtr pScreen, VisualPtr visual,
static void SAVAGEDestroyContext( ScreenPtr pScreen, drm_context_t hwContext,
DRIContextType contextStore )
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
psav->DRIrunning--;
}
-static void SAVAGEWakeupHandler( int screenNum, pointer wakeupData,
- unsigned long result, pointer pReadmask )
+static void SAVAGEWakeupHandler(WAKEUPHANDLER_ARGS_DECL)
{
- ScreenPtr pScreen = screenInfo.screens[screenNum];
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ SCREEN_PTR(arg);
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
psav->pDRIInfo->wrap.WakeupHandler = psav->coreWakeupHandler;
- (*psav->pDRIInfo->wrap.WakeupHandler) (screenNum, wakeupData, result, pReadmask);
+ (*psav->pDRIInfo->wrap.WakeupHandler) (WAKEUPHANDLER_ARGS);
psav->pDRIInfo->wrap.WakeupHandler = SAVAGEWakeupHandler;
psav->LockHeld = 1;
if (psav->ShadowStatus) {
@@ -293,11 +292,10 @@ static void SAVAGEWakeupHandler( int screenNum, pointer wakeupData,
/* FK: this flag doesn't seem to be used. */
}
-static void SAVAGEBlockHandler( int screenNum, pointer blockData,
- pointer pTimeout, pointer pReadmask)
+static void SAVAGEBlockHandler(BLOCKHANDLER_ARGS_DECL)
{
- ScreenPtr pScreen = screenInfo.screens[screenNum];
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ SCREEN_PTR(arg);
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
if (psav->ShadowStatus) {
@@ -316,7 +314,7 @@ static void SAVAGEBlockHandler( int screenNum, pointer blockData,
}
psav->LockHeld = 0;
psav->pDRIInfo->wrap.BlockHandler = psav->coreBlockHandler;
- (*psav->pDRIInfo->wrap.BlockHandler) (screenNum, blockData, pTimeout, pReadmask);
+ (*psav->pDRIInfo->wrap.BlockHandler) (BLOCKHANDLER_ARGS);
psav->pDRIInfo->wrap.BlockHandler = SAVAGEBlockHandler;
}
@@ -395,7 +393,7 @@ static Bool SAVAGESetAgpMode(SavagePtr psav, ScreenPtr pScreen)
static Bool SAVAGEDRIAgpInit(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
unsigned int offset;
@@ -586,7 +584,7 @@ static Bool SAVAGEDRIAgpInit(ScreenPtr pScreen)
static Bool SAVAGEDRIMapInit( ScreenPtr pScreen )
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
@@ -688,7 +686,7 @@ static Bool SAVAGEDRIMapInit( ScreenPtr pScreen )
static Bool SAVAGEDRIBuffersInit( ScreenPtr pScreen )
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
int count;
@@ -736,7 +734,7 @@ static Bool SAVAGEDRIBuffersInit( ScreenPtr pScreen )
static Bool SAVAGEDRIKernelInit( ScreenPtr pScreen )
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
drmSAVAGEInit init;
@@ -791,7 +789,7 @@ static Bool SAVAGEDRIKernelInit( ScreenPtr pScreen )
Bool SAVAGEDRIScreenInit( ScreenPtr pScreen )
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
DRIInfoPtr pDRIInfo;
SAVAGEDRIPtr pSAVAGEDRI;
@@ -1069,7 +1067,7 @@ static void SAVAGEDRISetupTiledSurfaceRegs( SavagePtr psav )
Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen )
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
SAVAGEDRIPtr pSAVAGEDRI = (SAVAGEDRIPtr)psav->pDRIInfo->devPrivate;
@@ -1234,7 +1232,7 @@ Bool SAVAGEDRIFinishScreenInit( ScreenPtr pScreen )
void SAVAGEDRIResume(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
SAVAGESAREAPrivPtr pSAREAPriv =
(SAVAGESAREAPrivPtr)DRIGetSAREAPrivate(pScreen);
@@ -1250,7 +1248,7 @@ void SAVAGEDRIResume(ScreenPtr pScreen)
void SAVAGEDRICloseScreen( ScreenPtr pScreen )
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
@@ -1346,7 +1344,7 @@ void
SAVAGEDRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 index)
{
ScreenPtr pScreen = pWin->drawable.pScreen;
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
BoxPtr pbox = REGION_RECTS(prgn);
int nbox = REGION_NUM_RECTS(prgn);
@@ -1396,7 +1394,7 @@ SAVAGEDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
RegionPtr prgnSrc, CARD32 index)
{
ScreenPtr pScreen = pParent->drawable.pScreen;
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
int nbox;
BoxPtr pbox, pboxTmp, pboxNext, pboxBase, pboxNew1, pboxNew2;
@@ -1613,7 +1611,7 @@ SAVAGEDRISubsequentScreenToScreenCopy(
static Bool
SAVAGEDRIOpenFullScreen(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
vgaHWPtr hwp = VGAHWPTR(pScrn);
SavagePtr psav = SAVPTR(pScrn);
unsigned int vgaCRIndex = hwp->IOBase + 4;
@@ -1678,7 +1676,7 @@ SAVAGEDRIOpenFullScreen(ScreenPtr pScreen)
static Bool
SAVAGEDRICloseFullScreen(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
SavagePtr psav = SAVPTR(pScrn);
BCI_GET_PTR;
diff --git a/src/savage_driver.c b/src/savage_driver.c
index 5e4ca0e..1083d65 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -73,7 +73,6 @@
#include "savage_sarea.h"
#endif
-
/*
* prototypes
*/
@@ -91,25 +90,24 @@ static int LookupChipID(PciChipsets* pset, int ChipID);
#endif
static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags);
-static Bool SavageEnterVT(int scrnIndex, int flags);
-static void SavageLeaveVT(int scrnIndex, int flags);
+static Bool SavageEnterVT(VT_FUNC_ARGS_DECL);
+static void SavageLeaveVT(VT_FUNC_ARGS_DECL);
static void SavageSave(ScrnInfoPtr pScrn);
static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr, SavageRegPtr, Bool);
static void SavageInitStatus(ScrnInfoPtr pScrn);
static void SavageInitShadowStatus(ScrnInfoPtr pScrn);
-static Bool SavageScreenInit(int scrnIndex, ScreenPtr pScreen, int argc,
- char **argv);
-static int SavageInternalScreenInit(int scrnIndex, ScreenPtr pScreen);
-static ModeStatus SavageValidMode(int index, DisplayModePtr mode,
+static Bool SavageScreenInit(SCREEN_INIT_ARGS_DECL);
+static int SavageInternalScreenInit(ScreenPtr pScreen);
+static ModeStatus SavageValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode,
Bool verbose, int flags);
void SavageDGAInit(ScreenPtr);
static Bool SavageMapMem(ScrnInfoPtr pScrn);
static void SavageUnmapMem(ScrnInfoPtr pScrn, int All);
static Bool SavageModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
-static Bool SavageCloseScreen(int scrnIndex, ScreenPtr pScreen);
+static Bool SavageCloseScreen(CLOSE_SCREEN_ARGS_DECL);
static Bool SavageSaveScreen(ScreenPtr pScreen, int mode);
static void SavageLoadPalette(ScrnInfoPtr pScrn, int numColors,
int *indicies, LOCO *colors,
@@ -125,7 +123,7 @@ static void SavageCalcClock(long freq, int min_m, int min_n1, int max_n1,
void SavageGEReset(ScrnInfoPtr pScrn, int from_timeout, int line, char *file);
void SavagePrintRegs(ScrnInfoPtr pScrn);
static void SavageDPMS(ScrnInfoPtr pScrn, int mode, int flags);
-static Bool SavageDDC1(int scrnIndex);
+static Bool SavageDDC1(ScrnInfoPtr pScrn);
static unsigned int SavageDDC1Read(ScrnInfoPtr pScrn);
static void SavageProbeDDC(ScrnInfoPtr pScrn, int index);
static void SavageGetTvMaxSize(SavagePtr psav);
@@ -899,7 +897,7 @@ static void SavageDoDDC(ScrnInfoPtr pScrn)
break;
}
- if (!SavageDDC1(pScrn->scrnIndex)) {
+ if (!SavageDDC1(pScrn)) {
/* DDC1 failed,switch to DDC2 */
if (xf86LoadSubModule(pScrn, "i2c")) {
if (SavageI2CInit(pScrn)) {
@@ -908,7 +906,7 @@ static void SavageDoDDC(ScrnInfoPtr pScrn)
InI2CREG(tmp,psav->DDCPort);
OutI2CREG(tmp | 0x13,psav->DDCPort);
- pMon = xf86PrintEDID(xf86DoEDID_DDC2(pScrn->scrnIndex,psav->I2C));
+ pMon = xf86PrintEDID(xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn),psav->I2C));
if (!psav->IgnoreEDID) xf86SetDDCproperties(pScrn, pMon);
OutI2CREG(tmp,psav->DDCPort);
}
@@ -2198,22 +2196,20 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
}
-static Bool SavageEnterVT(int scrnIndex, int flags)
+static Bool SavageEnterVT(VT_FUNC_ARGS_DECL)
{
- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SCRN_INFO_PTR(arg);
#ifdef SAVAGEDRI
SavagePtr psav = SAVPTR(pScrn);
ScreenPtr pScreen;
#endif
- TRACE(("SavageEnterVT(%d)\n", flags));
-
gpScrn = pScrn;
SavageEnableMMIO(pScrn);
#ifdef SAVAGEDRI
if (psav->directRenderingEnabled) {
- pScreen = screenInfo.screens[scrnIndex];
+ pScreen = xf86ScrnToScreen(pScrn);
SAVAGEDRIResume(pScreen);
DRIUnlock(pScreen);
psav->LockHeld = 0;
@@ -2232,9 +2228,9 @@ static Bool SavageEnterVT(int scrnIndex, int flags)
}
-static void SavageLeaveVT(int scrnIndex, int flags)
+static void SavageLeaveVT(VT_FUNC_ARGS_DECL)
{
- ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ SCRN_INFO_PTR(arg);
vgaHWPtr hwp = VGAHWPTR(pScrn);
SavagePtr psav = SAVPTR(pScrn);
vgaRegPtr vgaSavePtr = &hwp->SavedReg;
@@ -2248,7 +2244,7 @@ static void SavageLeaveVT(int scrnIndex, int flags)
#ifdef SAVAGEDRI
if (psav->directRenderingEnabled) {
- pScreen = screenInfo.screens[scrnIndex];
+ pScreen = xf86ScrnToScreen(pScrn);
DRILock(pScreen, 0);
psav->LockHeld = 1;
}
@@ -2461,7 +2457,7 @@ static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr vgaSavePtr,
#ifdef SAVAGEDRI
if (psav->directRenderingEnabled) {
- DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
+ DRILock(xf86ScrnToScreen(pScrn), 0);
psav->LockHeld = 1;
}
#endif
@@ -2654,7 +2650,7 @@ static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr vgaSavePtr,
#ifdef SAVAGEDRI
if (psav->directRenderingEnabled)
- DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
+ DRIUnlock(xf86ScrnToScreen(pScrn));
psav->LockHeld = 0;
#endif
@@ -2910,7 +2906,7 @@ static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr vgaSavePtr,
#ifdef SAVAGEDRI
if (psav->directRenderingEnabled)
- DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
+ DRIUnlock(xf86ScrnToScreen(pScrn));
psav->LockHeld = 0;
#endif
@@ -3215,10 +3211,9 @@ static void SavageInitShadowStatus(ScrnInfoPtr pScrn)
psav->dwBCIWait2DIdle = 0xc0020000;
}
-static Bool SavageScreenInit(int scrnIndex, ScreenPtr pScreen,
- int argc, char **argv)
+static Bool SavageScreenInit(SCREEN_INIT_ARGS_DECL)
Reply to: