Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=xfcetesting.git;a=commitdiff;h=29dc669b44009929b9528a4c5b27bf1e4ee0da75
commit 29dc669b44009929b9528a4c5b27bf1e4ee0da75 Author: James Buren <[email protected]> Date: Thu Jun 21 01:32:32 2012 -0500 xf86-video-tseng-1.2.4-5-x86_64 * fix build diff --git a/source/x11/xf86-video-tseng/FrugalBuild b/source/x11/xf86-video-tseng/FrugalBuild index bf5dfac..592ec76 100644 --- a/source/x11/xf86-video-tseng/FrugalBuild +++ b/source/x11/xf86-video-tseng/FrugalBuild @@ -11,6 +11,8 @@ archs=('i686' 'x86_64') depends=('xorg-server>=1.12.2') makedepends=('randrproto>1.3.0' 'renderproto' 'xf86dgaproto' 'videoproto>=2.2.2') Finclude xorg -sha1sums=('1b45f55657b2c92f30abb0769cae57fca98d93b7') +source=(${source[@]} git.patch) +sha1sums=('1b45f55657b2c92f30abb0769cae57fca98d93b7' \ + '42cd0a7af1839c452f8807641bb85c357b67bff1') # optimization OK diff --git a/source/x11/xf86-video-tseng/git.patch b/source/x11/xf86-video-tseng/git.patch new file mode 100644 index 0000000..2bb40d0 --- /dev/null +++ b/source/x11/xf86-video-tseng/git.patch @@ -0,0 +1,712 @@ +diff --git a/configure.ac b/configure.ac +index 62cc318..8458c06 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -20,46 +20,46 @@ + # + # Process this file with autoconf to produce a configure script + +-AC_PREREQ(2.57) ++# Initialize Autoconf ++AC_PREREQ([2.60]) + AC_INIT([xf86-video-tseng], +- 1.2.4, ++ [1.2.4], + [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], +- xf86-video-tseng) +- ++ [xf86-video-tseng]) + AC_CONFIG_SRCDIR([Makefile.am]) +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + AC_CONFIG_AUX_DIR(.) + ++# Initialize Automake + AM_INIT_AUTOMAKE([foreign dist-bzip2]) +- + AM_MAINTAINER_MODE + +-# Require xorg-macros: XORG_DEFAULT_OPTIONS ++# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS + m4_ifndef([XORG_MACROS_VERSION], +- [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])]) +-XORG_MACROS_VERSION(1.3) ++ [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])]) ++XORG_MACROS_VERSION(1.8) + XORG_DEFAULT_OPTIONS + +-# Checks for programs. ++# Initialize libtool + AC_DISABLE_STATIC + AC_PROG_LIBTOOL +-AC_PROG_CC + + AH_TOP([#include "xorg-server.h"]) + ++# Define a configure option for an alternate module directory + AC_ARG_WITH(xorg-module-dir, +- AC_HELP_STRING([--with-xorg-module-dir=DIR], ++ AS_HELP_STRING([--with-xorg-module-dir=DIR], + [Default xorg module directory [[default=$libdir/xorg/modules]]]), + [moduledir="$withval"], + [moduledir="$libdir/xorg/modules"]) + +-# Checks for extensions ++# Store the list of server defined optional extensions in REQUIRED_MODULES + XORG_DRIVER_CHECK_EXT(RANDR, randrproto) + XORG_DRIVER_CHECK_EXT(RENDER, renderproto) + XORG_DRIVER_CHECK_EXT(XV, videoproto) + XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) + +-# Checks for pkg-config packages ++# Obtain compiler/linker options for the driver dependencies + PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto $REQUIRED_MODULES]) + + # Checks for libraries. +@@ -78,17 +78,14 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then + fi + AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) + +-# Checks for header files. +-AC_HEADER_STDC +- +-AC_SUBST([XORG_CFLAGS]) + AC_SUBST([moduledir]) + + DRIVER_NAME=tseng + AC_SUBST([DRIVER_NAME]) + +-AC_OUTPUT([ +- Makefile +- src/Makefile +- man/Makefile ++AC_CONFIG_FILES([ ++ Makefile ++ src/Makefile ++ man/Makefile + ]) ++AC_OUTPUT +diff --git a/man/Makefile.am b/man/Makefile.am +index 8f2454b..b3688ce 100644 +--- a/man/Makefile.am ++++ b/man/Makefile.am +@@ -31,25 +31,11 @@ EXTRA_DIST = @[email protected] + + CLEANFILES = $(driverman_DATA) + +-SED = sed +- +-# Strings to replace in man pages +-XORGRELSTRING = @PACKAGE_STRING@ +- XORGMANNAME = X Version 11 +- +-MAN_SUBSTS = \ +- -e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \ +- -e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \ +- -e 's|__xservername__|Xorg|g' \ +- -e 's|__xconfigfile__|xorg.conf|g' \ +- -e 's|__projectroot__|$(prefix)|g' \ +- -e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \ +- -e 's|__drivermansuffix__|$(DRIVER_MAN_SUFFIX)|g' \ +- -e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \ +- -e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \ +- -e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g' ++ ++# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure ++ + + SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man + + .man.$(DRIVER_MAN_SUFFIX): +- sed $(MAN_SUBSTS) < $< > $@ ++ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ +diff --git a/man/tseng.man b/man/tseng.man +index 403782f..984c8e7 100644 +--- a/man/tseng.man ++++ b/man/tseng.man +@@ -1,4 +1,3 @@ +-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.man,v 1.2 2001/01/27 18:20:55 dawes Exp $ + .\" shorthand for double quote that works everywhere. + .ds q \N'34' + .TH TSENG __drivermansuffix__ __vendorversion__ +diff --git a/src/Makefile.am b/src/Makefile.am +index bf3a03a..50ca7a3 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -36,4 +36,5 @@ tseng_drv_la_SOURCES = \ + tseng_driver.c \ + tseng.h \ + tseng_mode.c \ +- tseng_pcirename.h ++ tseng_pcirename.h \ ++ compat-api.h +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 <[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 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/tseng.h b/src/tseng.h +index ce2f174..c6a51b7 100644 +--- a/src/tseng.h ++++ b/src/tseng.h +@@ -15,9 +15,6 @@ + /* Everything using inb/outb, etc needs "compiler.h" */ + #include "compiler.h" + +-/* Drivers for PCI hardware need this */ +-#include "xf86PciInfo.h" +- + /* Drivers that need to access the PCI config space directly need this */ + #include "xf86Pci.h" + +@@ -43,6 +40,7 @@ + #include "xf86Cursor.h" + #include "xf86fbman.h" + ++#include "compat-api.h" + /* + * Contrary to the old driver, we use the "Chip Revision" here intead of + * multiple chipsets like "TYPE_ET4000W32Pa", "TYPE_ET4000W32Pb", etc. +@@ -208,8 +206,8 @@ void ET6000IOWrite(TsengPtr pTseng, CARD8 Offset, CARD8 Value); + Bool TsengRAMDACProbe(ScrnInfoPtr pScrn); + void TsengSetupClockRange(ScrnInfoPtr pScrn); + Bool TsengModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode); +-void TsengAdjustFrame(int scrnIndex, int x, int y, int flags); +-ModeStatus TsengValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags); ++void TsengAdjustFrame(ADJUST_FRAME_ARGS_DECL); ++ModeStatus TsengValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags); + void TsengSave(ScrnInfoPtr pScrn); + void TsengRestore(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, TsengRegPtr tsengReg, int flags); + void TsengHVSyncDPMSSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags); +diff --git a/src/tseng_accel.c b/src/tseng_accel.c +index 800b5dd..adeaf24 100644 +--- a/src/tseng_accel.c ++++ b/src/tseng_accel.c +@@ -1266,7 +1266,7 @@ TsengSubsequentFillTrapezoidSolid(ytop, height, left, dxL, dyL, eL, right, dxR, + Bool + TsengXAAInit(ScreenPtr pScreen) + { +- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + TsengPtr pTseng = TsengPTR(pScrn); + XAAInfoRecPtr pXAAinfo; + BoxRec AvailFBArea; +diff --git a/src/tseng_cursor.c b/src/tseng_cursor.c +index d4fb847..3c8a70f 100644 +--- a/src/tseng_cursor.c ++++ b/src/tseng_cursor.c +@@ -159,7 +159,7 @@ TsengSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg) + } + } + +-void ++static void + TsengLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *bits) + { + vgaHWPtr hwp = VGAHWPTR(pScrn); +@@ -223,7 +223,7 @@ TsengLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *bits) + Bool + TsengHWCursorInit(ScreenPtr pScreen) + { +- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + TsengPtr pTseng = TsengPTR(pScrn); + xf86CursorInfoPtr infoPtr; + +diff --git a/src/tseng_dga.c b/src/tseng_dga.c +index 70ebe23..c0a85a5 100644 +--- a/src/tseng_dga.c ++++ b/src/tseng_dga.c +@@ -62,7 +62,7 @@ DGAFunctionRec TsengDGAFuncs = { + Bool + TsengDGAInit(ScreenPtr pScreen) + { +- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + TsengPtr pTseng = TsengPTR(pScrn); + DGAModePtr modes = NULL, newmodes = NULL, currentMode; + DisplayModePtr pMode, firstMode; +@@ -74,9 +74,9 @@ TsengDGAInit(ScreenPtr pScreen) + if (!pTseng->DGAnumModes) { + pMode = firstMode = pScrn->modes; + while (pMode) { +- newmodes = xrealloc(modes, (num + 1) * sizeof (DGAModeRec)); ++ newmodes = realloc(modes, (num + 1) * sizeof (DGAModeRec)); + if (!newmodes) { +- xfree(modes); ++ free(modes); + return FALSE; + } + modes = newmodes; +@@ -135,7 +135,7 @@ Tseng_OpenFramebuffer( + TsengPtr pTseng = TsengPTR(pScrn); + + *name = NULL; /* no special device */ +- *mem = (unsigned char*)pTseng->FbAddress; ++ *mem = (unsigned char*)(uintptr_t)pTseng->FbAddress; + *size = pTseng->FbMapSize; + *offset = 0; /* Always */ + *flags = 0; /* Root permissions OS-dependent */ +@@ -182,7 +182,7 @@ Tseng_SetViewport( + TsengPtr pTseng = TsengPTR(pScrn); + vgaHWPtr hwp = VGAHWPTR(pScrn); + +- TsengAdjustFrame(pScrn->pScreen->myNum, x, y, flags); ++ TsengAdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y)); + while((hwp->readST01(hwp) & 0x08)); + while(!(hwp->readST01(hwp) & 0x08)); + +diff --git a/src/tseng_driver.c b/src/tseng_driver.c +index 445c17e..0c04e54 100644 +--- a/src/tseng_driver.c ++++ b/src/tseng_driver.c +@@ -34,6 +34,8 @@ + + #include "tseng.h" /* this includes most of the generic ones as well */ + ++#include "xf86PciInfo.h" ++ + /* All drivers initialising the SW cursor need this */ + #include "mipointer.h" + +@@ -60,18 +62,17 @@ static const OptionInfoRec * TsengAvailableOptions(int chipid, int busid); + static void TsengIdentify(int flags); + static Bool TsengProbe(DriverPtr drv, int flags); + static Bool TsengPreInit(ScrnInfoPtr pScrn, int flags); +-static Bool TsengScreenInit(int Index, ScreenPtr pScreen, int argc, +- char **argv); +-static Bool TsengEnterVT(int scrnIndex, int flags); +-static void TsengLeaveVT(int scrnIndex, int flags); +-static Bool TsengCloseScreen(int scrnIndex, ScreenPtr pScreen); ++static Bool TsengScreenInit(SCREEN_INIT_ARGS_DECL); ++static Bool TsengEnterVT(VT_FUNC_ARGS_DECL); ++static void TsengLeaveVT(VT_FUNC_ARGS_DECL); ++static Bool TsengCloseScreen(CLOSE_SCREEN_ARGS_DECL); + static Bool TsengSaveScreen(ScreenPtr pScreen, int mode); + + /* Required if the driver supports mode switching */ +-static Bool TsengSwitchMode(int scrnIndex, DisplayModePtr mode, int flags); ++static Bool TsengSwitchMode(SWITCH_MODE_ARGS_DECL); + + /* Optional functions */ +-static void TsengFreeScreen(int scrnIndex, int flags); ++static void TsengFreeScreen(FREE_SCREEN_ARGS_DECL); + + /* If driver-specific config file entries are needed, this must be defined */ + /*static Bool TsengParseConfig(ParseInfoPtr raw); */ +@@ -269,9 +270,9 @@ TsengFreeRec(ScrnInfoPtr pScrn) + pTseng = TsengPTR(pScrn); + + if (pTseng->SavedReg.RAMDAC) +- xfree(pTseng->SavedReg.RAMDAC); ++ free(pTseng->SavedReg.RAMDAC); + +- xfree(pScrn->driverPrivate); ++ free(pScrn->driverPrivate); + pScrn->driverPrivate = NULL; + } + +@@ -395,10 +396,10 @@ TsengProbe(DriverPtr drv, int flags) + foundScreen = TRUE; + } + } +- xfree(usedChips); ++ free(usedChips); + } + +- xfree(devSections); ++ free(devSections); + return foundScreen; + } + +@@ -806,7 +807,7 @@ TsengProcessOptions(ScrnInfoPtr pScrn) + xf86CollectOptions(pScrn, NULL); + + /* Process the options */ +- if (!(pTseng->Options = xalloc(sizeof(TsengOptions)))) ++ if (!(pTseng->Options = malloc(sizeof(TsengOptions)))) + return FALSE; + memcpy(pTseng->Options, TsengOptions, sizeof(TsengOptions)); + xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pTseng->Options); +@@ -883,7 +884,7 @@ TsengGetFbAddress(ScrnInfoPtr pScrn) + PDEBUG(" TsengGetFbAddress\n"); + + /* base0 is the framebuffer and base1 is the PCI IO space. */ +- if (PCI_REGION_BASE(pTseng->PciInfo, 0, REGION_MEM)) { ++ if (!PCI_REGION_BASE(pTseng->PciInfo, 0, REGION_MEM)) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "No valid Framebuffer address in PCI config space;\n"); + return FALSE; +@@ -1215,9 +1216,9 @@ TsengPreInit(ScrnInfoPtr pScrn, int flags) + } + + static void +-TsengSetupAccelMemory(int scrnIndex, ScreenPtr pScreen) ++TsengSetupAccelMemory(ScreenPtr pScreen) + { +- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + TsengPtr pTseng = TsengPTR(pScrn); + int offscreen_videoram, videoram_end, req_videoram; + int i; +@@ -1236,7 +1237,7 @@ TsengSetupAccelMemory(int scrnIndex, ScreenPtr pScreen) + videoram_end = pScrn->videoRam * 1024; + offscreen_videoram = videoram_end - + pScrn->displayWidth * pScrn->virtualY * pTseng->Bytesperpixel; +- xf86DrvMsgVerb(scrnIndex, X_INFO, v, "Available off-screen memory: %d bytes.\n", ++ xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, v, "Available off-screen memory: %d bytes.\n", + offscreen_videoram); + + /* +@@ -1324,7 +1325,7 @@ TsengSetupAccelMemory(int scrnIndex, ScreenPtr pScreen) + } + } + +- xf86DrvMsgVerb(scrnIndex, X_INFO, v, ++ xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, v, + "Remaining off-screen memory available for pixmap cache: %d bytes.\n", + offscreen_videoram); + +@@ -1333,7 +1334,7 @@ end_memsetup: + } + + static Bool +-TsengScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) ++TsengScreenInit(SCREEN_INIT_ARGS_DECL) + { + ScrnInfoPtr pScrn; + TsengPtr pTseng; +@@ -1345,7 +1346,7 @@ TsengScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + /* + * First get the ScrnInfoRec + */ +- pScrn = xf86Screens[pScreen->myNum]; ++ pScrn = xf86ScreenToScrn(pScreen); + + pTseng = TsengPTR(pScrn); + /* Map the Tseng memory areas */ +@@ -1361,7 +1362,7 @@ TsengScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + /* Darken the screen for aesthetic reasons and set the viewport */ + TsengSaveScreen(pScreen, SCREEN_SAVER_ON); + +- TsengAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); ++ TsengAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); + /* XXX Fill the screen with black */ + + /* +@@ -1444,7 +1445,7 @@ TsengScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + /* + * Initialize the acceleration interface. + */ +- TsengSetupAccelMemory(scrnIndex, pScreen); ++ TsengSetupAccelMemory(pScreen); + if (pTseng->UseAccel) { + tseng_init_acl(pScrn); /* set up accelerator */ + if (!TsengXAAInit(pScreen)) { /* set up XAA interface */ +@@ -1499,9 +1500,9 @@ TsengScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) + } + + static Bool +-TsengEnterVT(int scrnIndex, int flags) ++TsengEnterVT(VT_FUNC_ARGS_DECL) + { +- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ++ SCRN_INFO_PTR(arg); + TsengPtr pTseng = TsengPTR(pScrn); + + PDEBUG(" TsengEnterVT\n"); +@@ -1518,9 +1519,9 @@ TsengEnterVT(int scrnIndex, int flags) + } + + static void +-TsengLeaveVT(int scrnIndex, int flags) ++TsengLeaveVT(VT_FUNC_ARGS_DECL) + { +- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ++ SCRN_INFO_PTR(arg); + TsengPtr pTseng = TsengPTR(pScrn); + + PDEBUG(" TsengLeaveVT\n"); +@@ -1532,9 +1533,9 @@ TsengLeaveVT(int scrnIndex, int flags) + } + + static Bool +-TsengCloseScreen(int scrnIndex, ScreenPtr pScreen) ++TsengCloseScreen(CLOSE_SCREEN_ARGS_DECL) + { +- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + TsengPtr pTseng = TsengPTR(pScrn); + + PDEBUG(" TsengCloseScreen\n"); +@@ -1552,7 +1553,7 @@ TsengCloseScreen(int scrnIndex, ScreenPtr pScreen) + pScrn->vtSema = FALSE; + + pScreen->CloseScreen = pTseng->CloseScreen; +- return (*pScreen->CloseScreen) (scrnIndex, pScreen); ++ return (*pScreen->CloseScreen) (CLOSE_SCREEN_ARGS); + } + + /* +@@ -1577,7 +1578,7 @@ TsengCloseScreen(int scrnIndex, ScreenPtr pScreen) + static Bool + TsengSaveScreen(ScreenPtr pScreen, int mode) + { +- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ++ ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); + vgaHWPtr hwp = VGAHWPTR(pScrn); + TsengPtr pTseng = TsengPTR(pScrn); + Bool unblank; +@@ -1694,17 +1695,19 @@ TsengUnmapMem(ScrnInfoPtr pScrn) + } + + static void +-TsengFreeScreen(int scrnIndex, int flags) ++TsengFreeScreen(FREE_SCREEN_ARGS_DECL) + { ++ SCRN_INFO_PTR(arg); + PDEBUG(" TsengFreeScreen\n"); + if (xf86LoaderCheckSymbol("vgaHWFreeHWRec")) +- vgaHWFreeHWRec(xf86Screens[scrnIndex]); +- TsengFreeRec(xf86Screens[scrnIndex]); ++ vgaHWFreeHWRec(pScrn); ++ TsengFreeRec(pScrn); + } + + static Bool +-TsengSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) ++TsengSwitchMode(SWITCH_MODE_ARGS_DECL) + { ++ SCRN_INFO_PTR(arg); + PDEBUG(" TsengSwitchMode\n"); +- return TsengModeInit(xf86Screens[scrnIndex], mode); ++ return TsengModeInit(pScrn, mode); + } +diff --git a/src/tseng_mode.c b/src/tseng_mode.c +index f075226..c96403e 100644 +--- a/src/tseng_mode.c ++++ b/src/tseng_mode.c +@@ -41,7 +41,11 @@ vgaHWWriteBank(vgaHWPtr hwp, CARD8 value) + if (hwp->MMIOBase) + MMIO_OUT8(hwp->MMIOBase, hwp->MMIOOffset + VGA_BANK, value); + else ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 + outb(hwp->PIOOffset + VGA_BANK, value); ++#else ++ pci_io_write8(hwp->io, VGA_BANK, value); ++#endif + } + + CARD8 +@@ -50,7 +54,11 @@ vgaHWReadBank(vgaHWPtr hwp) + if (hwp->MMIOBase) + return MMIO_IN8(hwp->MMIOBase, hwp->MMIOOffset + VGA_BANK); + else ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 + return inb(hwp->PIOOffset + VGA_BANK); ++#else ++ return pci_io_read8(hwp->io, VGA_BANK); ++#endif + } + + #define VGA_SEGMENT 0x3CD +@@ -61,7 +69,11 @@ vgaHWWriteSegment(vgaHWPtr hwp, CARD8 value) + if (hwp->MMIOBase) + MMIO_OUT8(hwp->MMIOBase, hwp->MMIOOffset + VGA_SEGMENT, value); + else ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 + outb(hwp->PIOOffset + VGA_SEGMENT, value); ++#else ++ pci_io_write8(hwp->io, VGA_SEGMENT, value); ++#endif + } + + CARD8 +@@ -70,7 +82,11 @@ vgaHWReadSegment(vgaHWPtr hwp) + if (hwp->MMIOBase) + return MMIO_IN8(hwp->MMIOBase, hwp->MMIOOffset + VGA_SEGMENT); + else ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 + return inb(hwp->PIOOffset + VGA_SEGMENT); ++#else ++ return pci_io_read8(hwp->io, VGA_SEGMENT); ++#endif + } + + /* +@@ -84,8 +100,12 @@ vgaHWWriteModeControl(vgaHWPtr hwp, CARD8 value) + if (hwp->MMIOBase) + MMIO_OUT8(hwp->MMIOBase, + hwp->MMIOOffset + hwp->IOBase + VGA_MODE_CONTROL, value); +- else +- outb(hwp->IOBase + hwp->PIOOffset + VGA_MODE_CONTROL, value); ++ else ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 ++ outb(hwp->PIOOffset + VGA_MODE_CONTROL, value); ++#else ++ pci_io_write8(hwp->io, VGA_MODE_CONTROL, value); ++#endif + } + + /* +@@ -110,14 +130,22 @@ vgaHWHerculesSecondPage(vgaHWPtr hwp, Bool Enable) + + MMIO_OUT8(hwp->MMIOBase, hwp->MMIOOffset + VGA_HERCULES, tmp); + } else { +- tmp = inb(hwp->PIOOffset + VGA_HERCULES); ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 ++ tmp = inb(hwp->PIOOffset + VGA_HERCULES); ++#else ++ tmp = pci_io_read8(hwp->io, VGA_HERCULES); ++#endif + + if (Enable) + tmp |= 0x02; + else + tmp &= ~0x02; + +- outb(hwp->PIOOffset + VGA_HERCULES, tmp); ++#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 ++ outb(hwp->PIOOffset + VGA_HERCULES, tmp); ++#else ++ pci_io_write8(hwp->io, VGA_HERCULES, tmp); ++#endif + } + } + +@@ -954,9 +982,9 @@ ET6000CalcClock(long freq, int min_m, int min_n1, int max_n1, int min_n2, + * adjust the current video frame (viewport) to display the mousecursor. + */ + void +-TsengAdjustFrame(int scrnIndex, int x, int y, int flags) ++TsengAdjustFrame(ADJUST_FRAME_ARGS_DECL) + { +- ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ++ SCRN_INFO_PTR(arg); + TsengPtr pTseng = TsengPTR(pScrn); + vgaHWPtr hwp = VGAHWPTR(pScrn); + int Base; +@@ -983,7 +1011,7 @@ TsengAdjustFrame(int scrnIndex, int x, int y, int flags) + * + */ + ModeStatus +-TsengValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) ++TsengValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags) + { + + PDEBUG(" TsengValidMode\n"); +@@ -1502,7 +1530,7 @@ TsengModeInit(ScrnInfoPtr pScrn, DisplayModePtr OrigMode) + + /* clean up */ + if (new->RAMDAC) +- xfree(new->RAMDAC); ++ free(new->RAMDAC); + + return TRUE; + } _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
