diff --git a/configure.ac b/configure.ac index 0116265..3dae714 100644 --- a/configure.ac +++ b/configure.ac @@ -119,6 +119,24 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then fi AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) +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]) + AC_SUBST([moduledir]) AC_DEFINE_UNQUOTED(XGI_RELEASE_DATE, ["$RELEASE_DATE"], [Driver release]) DRIVER_NAME=xgi diff --git a/man/xgi.man b/man/xgi.man index 19880f2..5699ae4 100644 --- a/man/xgi.man +++ b/man/xgi.man @@ -1,4 +1,3 @@ -.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/xgi/xgi.man,v 1.14 2003/11/12 16:50:36 twini Exp $ .\" shorthand for double quote that works everywhere. .ds q \N'34' .TH XGI __drivermansuffix__ __vendorversion__ diff --git a/src/Makefile.am b/src/Makefile.am index 96e7018..54b0daf 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -29,6 +29,7 @@ xgi_drv_la_LDFLAGS = -module -avoid-version xgi_drv_ladir = @moduledir@/drivers xgi_drv_la_SOURCES = \ + compat-api.h\ init.c \ init.h \ osdef.h \ @@ -36,6 +37,8 @@ xgi_drv_la_SOURCES = \ vb_def.h \ vb_ext.c \ vb_ext.h \ + vb_i2c.c \ + vb_i2c.h \ vb_init.c \ vb_init.h \ vb_setmode.c \ 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 <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 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/vb_i2c.c b/src/vb_i2c.c index 96e26e3..d238d90 100755 --- a/src/vb_i2c.c +++ b/src/vb_i2c.c @@ -1607,7 +1607,7 @@ VOID vWriteClockLine(PXGI_HW_DEVICE_INFO pHWDE, UCHAR data) else if(pHWDE->crtno == 2) vWriteClockLineFCNT(pHWDE, data); else - ErrorF("Error(XGI) : Unkonwn output device! \n"); + ErrorF("Error(XGI) : Unknown output device!\n"); } VOID vWriteDataLine(PXGI_HW_DEVICE_INFO pHWDE, UCHAR data) @@ -1619,7 +1619,7 @@ VOID vWriteDataLine(PXGI_HW_DEVICE_INFO pHWDE, UCHAR data) else if(pHWDE->crtno == 2) vWriteDataLineFCNT(pHWDE, data); else - ErrorF("Error(XGI) : Unkonwn output device! \n"); + ErrorF("Error(XGI) : Unknown output device!\n"); } BOOLEAN bReadClockLine(PXGI_HW_DEVICE_INFO pHWDE) @@ -1630,8 +1630,9 @@ BOOLEAN bReadClockLine(PXGI_HW_DEVICE_INFO pHWDE) return(bReadClockLineDVI(pHWDE)); else if(pHWDE->crtno == 2) return(bReadClockLineFCNT(pHWDE)); - else - ErrorF("Error(XGI) : Unkonwn output device! \n"); + + ErrorF("Error(XGI) : Unknown output device!\n"); + return FALSE; } BOOLEAN bReadDataLine(PXGI_HW_DEVICE_INFO pHWDE) @@ -1642,8 +1643,9 @@ BOOLEAN bReadDataLine(PXGI_HW_DEVICE_INFO pHWDE) return(bReadDataLineDVI(pHWDE)); else if(pHWDE->crtno == 2) return(bReadDataLineFCNT(pHWDE)); - else - ErrorF("Error(XGI) : Unkonwn output device! \n"); + + ErrorF("Error(XGI) : Unknown output device!\n"); + return FALSE; } BOOLEAN bEDIDCheckSum(PUCHAR pjEDIDBuf,ULONG ulBufSize) @@ -1890,4 +1892,4 @@ BOOLEAN bGetEDID( PDEBUGI2C(ErrorF("bGetEDID()-return(%d)\n", status == NO_ERROR ? 1:0)); return (status == NO_ERROR); -} \ No newline at end of file +} diff --git a/src/vb_init.c b/src/vb_init.c index 8338410..50980c4 100755 --- a/src/vb_init.c +++ b/src/vb_init.c @@ -131,6 +131,8 @@ static void XGINew_SetDRAMDefaultRegister340(PXGI_HW_DEVICE_INFO, USHORT, static void XGINew_SetDRAMDefaultRegisterXG45(PXGI_HW_DEVICE_INFO, USHORT, PVB_DEVICE_INFO); static UCHAR XGINew_Get340DRAMType(PXGI_HW_DEVICE_INFO, PVB_DEVICE_INFO); +/* horrible */ +#define XGINew_GetXG20DRAMType XGINew_Get340DRAMType static int XGINew_SetDDRChannel(int index, UCHAR ChannelNo, UCHAR XGINew_ChannelAB, const USHORT DRAMTYPE_TABLE[][5], @@ -1451,7 +1453,7 @@ void XGINew_SetDRAMDefaultRegister340( PXGI_HW_DEVICE_INFO HwDeviceExtension , } temp3 = 0 ; - for( k = 0 ; k < 4 ; k++ ) + for( k = 1 ; k < 4 ; k++ ) { XGI_SetRegANDOR((XGIIOADDRESS) P3d4 , 0x6E , 0xFC , temp3 ) ; /* CR6E_D[1:0] select channel */ temp2 = 0 ; diff --git a/src/vgatypes.h b/src/vgatypes.h index 8a60927..df002b8 100755 --- a/src/vgatypes.h +++ b/src/vgatypes.h @@ -1,5 +1,3 @@ -/* $XFree86$ */ -/* $XdotOrg$ */ /* * General type definitions for universal mode switching modules * @@ -133,7 +131,7 @@ typedef unsigned long XGIIOADDRESS; #endif #ifdef LINUX_XF86 -typedef IOADDRESS XGIIOADDRESS; +typedef unsigned long XGIIOADDRESS; #endif #ifndef VBIOS_VER_MAX_LENGTH diff --git a/src/xgi.h b/src/xgi.h index 715502f..0bc8d30 100755 --- a/src/xgi.h +++ b/src/xgi.h @@ -169,7 +169,9 @@ extern BOOL g_bRunTimeDebug; #endif /* Jong 01/13/2009; support EXA */ +#ifdef HAVE_XAA_H #define XGI_USE_XAA +#endif /* #define XGI_USE_EXA */ #ifdef XGI_USE_XAA @@ -194,6 +196,8 @@ extern BOOL g_bRunTimeDebug; #include "vgatypes.h" #include "vb_struct.h" +#include "compat-api.h" + #ifdef XF86DRI #define XGINEWDRI #undef XGINEWDRI2 @@ -623,7 +627,7 @@ typedef struct { unsigned char * FbBase; /* VRAM virtual linear address */ CARD32 IOAddress; /* MMIO physical address */ unsigned char * IOBase; /* MMIO linear address */ - IOADDRESS IODBase; /* Base of PIO memory area */ + unsigned long IODBase; /* Base of PIO memory area */ #ifdef __alpha__ unsigned char * IOBaseDense; /* MMIO for Alpha platform */ #endif @@ -981,6 +985,7 @@ int compute_vclk(int Clock, int *out_n, int *out_dn, int *out_div, void XGI_WaitBeginRetrace(XGIIOADDRESS RelIO); void XGI_WaitEndRetrace(XGIIOADDRESS RelIO); +#include <unistd.h> /* 2005/11/21 added by jjtseng */ #define DelayS(sec) usleep((sec)*1000000) #define DelayMS(millisec) usleep((millisec)*1000) diff --git a/src/xgi_accel.c b/src/xgi_accel.c index c072691..8392628 100755 --- a/src/xgi_accel.c +++ b/src/xgi_accel.c @@ -200,20 +200,7 @@ extern int FbDevExist; #endif #if X_BYTE_ORDER == X_BIG_ENDIAN -static CARD32 BE_SWAP32 (CARD32 val) -{ - PDEBUG(ErrorF("X_BIG_ENDIAN...\n")); - if (CurrentColorDepth == 8) - return ((((val) & 0x000000ff) << 24) | \ - (((val) & 0x0000ff00) << 8) | \ - (((val) & 0x00ff0000) >> 8) | \ - (((val) & 0xff000000) >> 24)); - if (CurrentColorDepth == 24) - return val; - if (CurrentColorDepth == 16) - return ((((val) & 0x0000ffff) << 16) | \ - (((val) & 0xffff0000) >> 16)); -} +#define BE_SWAP32(x) lswapl(x) #else static CARD32 BE_SWAP32 (CARD32 val) { @@ -639,7 +626,7 @@ Volari_AccelInit(ScreenPtr pScreen) XAAInfoRecPtr infoPtr; #endif - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); int reservedFbSize; long UsableFbSize; @@ -958,6 +945,7 @@ Volari_AccelInit(ScreenPtr pScreen) return TRUE; } #endif /* EXA */ + return TRUE; } void @@ -1244,7 +1232,7 @@ Volari_SubsequentMonoPatternFill(ScrnInfoPtr pScrn, #ifdef XGI_USE_EXA /* ---------------------------- EXA -------------------------- */ void XGIEXASync(ScreenPtr pScreen, int marker) { - XGIPtr pXGI = XGIPTR(xf86Screens[pScreen->myNum]); + XGIPtr pXGI = XGIPTR(xf86ScreenToScrn(pScreen)); PACCELDEBUG(ErrorF("XGIEXASync()...\n")); @@ -1254,7 +1242,7 @@ void XGIEXASync(ScreenPtr pScreen, int marker) static Bool XGIPrepareSolid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg) { - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); XGIPtr pXGI = XGIPTR(pScrn); CARD16 pitch; @@ -1299,7 +1287,7 @@ XGIPrepareSolid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg) static void XGISolid(PixmapPtr pPixmap, int x1, int y1, int x2, int y2) { - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); XGIPtr pXGI = XGIPTR(pScrn); CARD32 Command; @@ -1323,7 +1311,7 @@ static Bool XGIPrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, int ydir, int alu, Pixel planemask) { - ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPixmap->drawable.pScreen); XGIPtr pXGI = XGIPTR(pScrn); CARD32 srcbase, dstbase; CARD16 srcpitch, dstpitch; @@ -1383,7 +1371,7 @@ XGIPrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, int ydir, static void XGICopy(PixmapPtr pDstPixmap, int srcX, int srcY, int dstX, int dstY, int width, int height) { - ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPixmap->drawable.pScreen); XGIPtr pXGI = XGIPTR(pScrn); CARD32 Command; @@ -1410,7 +1398,7 @@ static Bool XGICheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture, PicturePtr pDstPicture) { - ScrnInfoPtr pScrn = xf86Screens[pDstPicture->pDrawable->pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPicture->pDrawable->pScreen); XGIPtr pXGI = XGIPTR(pScrn); PACCELDEBUG(ErrorF("XGICheckComposite()...\n")); @@ -1436,7 +1424,7 @@ static Bool XGIPrepareComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture, PicturePtr pDstPicture, PixmapPtr pSrc, PixmapPtr pMask, PixmapPtr pDst) { - ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen); XGIPtr pXGI = XGIPTR(pScrn); PACCELDEBUG(ErrorF("XGIPrepareComposite()...\n")); @@ -1451,7 +1439,7 @@ static void XGIComposite(PixmapPtr pDst, int srcX, int srcY, int maskX, int maskY, int dstX, int dstY, int width, int height) { - ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen); XGIPtr pXGI = XGIPTR(pScrn); PACCELDEBUG(ErrorF("XGIComposite()...\n")); @@ -1546,7 +1534,7 @@ void XGIMemCopyFromVideoRam(XGIPtr pXGI, unsigned char *to, unsigned char *from, Bool XGIUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int src_pitch) { - ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDst->drawable.pScreen); XGIPtr pXGI = XGIPTR(pScrn); unsigned char *dst = pDst->devPrivate.ptr; int dst_pitch = exaGetPixmapPitch(pDst); @@ -1599,7 +1587,7 @@ XGIUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int src Bool XGIUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst) { - ScrnInfoPtr pScrn = xf86Screens[pSrc->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pSrc->drawable.pScreen); XGIPtr pXGI = XGIPTR(pScrn); unsigned char *src, *dst; int src_pitch = exaGetPixmapPitch(pSrc); @@ -1677,7 +1665,7 @@ XGIUploadToScratch(PixmapPtr pSrc, PixmapPtr pDst) Bool XGIDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int dst_pitch) { - ScrnInfoPtr pScrn = xf86Screens[pSrc->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pSrc->drawable.pScreen); XGIPtr pXGI = XGIPTR(pScrn); unsigned char *src = pSrc->devPrivate.ptr; int src_pitch = exaGetPixmapPitch(pSrc); @@ -1720,7 +1708,7 @@ XGIDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int void XGIScratchSave(ScreenPtr pScreen, ExaOffscreenArea *area) { - XGIPtr pXGI = XGIPTR(xf86Screens[pScreen->myNum]); + XGIPtr pXGI = XGIPTR(xf86ScreenToScrn(pScreen)); pXGI->exa_scratch = NULL; } #endif /* EXA */ diff --git a/src/xgi_cursor.c b/src/xgi_cursor.c index 2c7fedd..55890d4 100755 --- a/src/xgi_cursor.c +++ b/src/xgi_cursor.c @@ -172,7 +172,7 @@ Volari_LoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src) static Bool Volari_UseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); DisplayModePtr mode = pScrn->currentMode; if (mode->Flags & V_INTERLACE) @@ -186,7 +186,7 @@ Volari_UseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) Bool Volari_UseHWCursorARGB(ScreenPtr pScreen, CursorPtr pCurs) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); DisplayModePtr mode = pScrn->currentMode; XGIPtr pXGI = XGIPTR(pScrn); @@ -245,7 +245,7 @@ Volari_LoadCursorARGB(ScrnInfoPtr pScrn, CursorPtr pCursor) Bool XGIHWCursorInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); xf86CursorInfoPtr infoPtr; diff --git a/src/xgi_dga.c b/src/xgi_dga.c index 04f90aa..3b798d7 100755 --- a/src/xgi_dga.c +++ b/src/xgi_dga.c @@ -40,11 +40,12 @@ #include "xf86_OSproc.h" #include "xf86Pci.h" #include "xf86PciInfo.h" -#include "xaa.h" -#include "xaalocal.h" #include "xgi.h" #include "xgi_regs.h" #include "dgaproc.h" +#ifdef HAVE_XAA_H +#include "xaalocal.h" +#endif #ifndef NEW_DGAOPENFRAMEBUFFER static Bool XGI_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **, @@ -103,18 +104,18 @@ XGISetupDGAMode( if(pMode->HDisplay != otherPitch) { - newmodes = xrealloc(modes, (*num + 2) * sizeof(DGAModeRec)); + newmodes = realloc(modes, (*num + 2) * sizeof(DGAModeRec)); oneMore = TRUE; } else { - newmodes = xrealloc(modes, (*num + 1) * sizeof(DGAModeRec)); + newmodes = realloc(modes, (*num + 1) * sizeof(DGAModeRec)); oneMore = FALSE; } if(!newmodes) { - xfree(modes); + free(modes); return NULL; } modes = newmodes; @@ -192,7 +193,7 @@ SECOND_PASS: Bool XGIDGAInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); DGAModePtr modes = NULL; int num = 0; @@ -259,8 +260,8 @@ XGI_SetMode( pScrn->currentMode = pXGI->CurrentLayout.mode; - (*pScrn->SwitchMode)(index, pScrn->currentMode, 0); - (*pScrn->AdjustFrame)(index, pScrn->frameX0, pScrn->frameY0, 0); + (*pScrn->SwitchMode)(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); + (*pScrn->AdjustFrame)(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); pXGI->DGAactive = FALSE; } else { /* set new mode */ @@ -275,10 +276,10 @@ XGI_SetMode( pXGI->CurrentLayout.depth = pMode->depth; pXGI->CurrentLayout.displayWidth = pMode->bytesPerScanline / (pMode->bitsPerPixel >> 3); - (*pScrn->SwitchMode)(index, pMode->mode, 0); + (*pScrn->SwitchMode)(SWITCH_MODE_ARGS(pScrn, pMode->mode)); /* TW: Adjust viewport to 0/0 after mode switch */ /* This should fix the vmware-in-dualhead problems */ - (*pScrn->AdjustFrame)(index, 0, 0, 0); + (*pScrn->AdjustFrame)(ADJUST_FRAME_ARGS(pScrn, 0, 0)); } return TRUE; @@ -296,7 +297,7 @@ XGI_GetViewport(ScrnInfoPtr pScrn) static void XGI_SetViewport(ScrnInfoPtr pScrn, int x, int y, int flags) { - (*pScrn->AdjustFrame)(pScrn->pScreen->myNum, x, y, flags); + (*pScrn->AdjustFrame)(ADJUST_FRAME_ARGS(pScrn, x, y)); } static void diff --git a/src/xgi_dri.c b/src/xgi_dri.c index 93687e1..c4cbfed 100755 --- a/src/xgi_dri.c +++ b/src/xgi_dri.c @@ -46,7 +46,6 @@ #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86Priv.h" #include "xf86PciInfo.h" #include "xf86Pci.h" @@ -118,7 +117,7 @@ ULONG CheckAGPSlot(ScreenPtr pScreen, ULONG uNextLink); static Bool XGIInitVisualConfigs(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); int numConfigs = 0; __GLXvisualConfig *pConfigs = 0; @@ -145,13 +144,13 @@ XGIInitVisualConfigs(ScreenPtr pScreen) } if (!(pXGIConfigs = (XGIConfigPrivPtr)xnfcalloc(sizeof(XGIConfigPrivRec), numConfigs))) { - xfree(pConfigs); + free(pConfigs); return FALSE; } if (!(pXGIConfigPtrs = (XGIConfigPrivPtr*)xnfcalloc(sizeof(XGIConfigPrivPtr), numConfigs))) { - xfree(pConfigs); - xfree(pXGIConfigs); + free(pConfigs); + free(pXGIConfigs); return FALSE; } for (i=0; i<numConfigs; i++) @@ -241,7 +240,7 @@ Bool XGIDRIScreenInit(ScreenPtr pScreen) return FALSE; #else /* linux */ - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); DRIInfoPtr pDRIInfo; XGIDRIPtr pXGIDRI; @@ -286,7 +285,7 @@ Bool XGIDRIScreenInit(ScreenPtr pScreen) pDRIInfo->ddxDriverMajorVersion = PACKAGE_VERSION_MAJOR; pDRIInfo->ddxDriverMinorVersion = PACKAGE_VERSION_MINOR; pDRIInfo->ddxDriverPatchVersion = PACKAGE_VERSION_PATCHLEVEL; - pDRIInfo->frameBufferPhysicalAddress = pXGI->FbAddress; + pDRIInfo->frameBufferPhysicalAddress = (pointer) pXGI->FbAddress; pDRIInfo->frameBufferSize = pXGI->FbMapSize; /* ?? */ @@ -333,7 +332,7 @@ Bool XGIDRIScreenInit(ScreenPtr pScreen) pDRIInfo->bufferRequests = DRI_ALL_WINDOWS; if (!DRIScreenInit(pScreen, pDRIInfo, &pXGI->drmSubFD)) { - xfree(pDRIInfo->devPrivate); + free(pDRIInfo->devPrivate); pDRIInfo->devPrivate=0; DRIDestroyInfoRec(pXGI->pDRIInfo); pXGI->pDRIInfo=0; @@ -530,21 +529,21 @@ Bool XGIDRIScreenInit(ScreenPtr pScreen) void XGIDRICloseScreen(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); DRICloseScreen(pScreen); if (pXGI->pDRIInfo) { if (pXGI->pDRIInfo->devPrivate) { - xfree(pXGI->pDRIInfo->devPrivate); + free(pXGI->pDRIInfo->devPrivate); pXGI->pDRIInfo->devPrivate=0; } DRIDestroyInfoRec(pXGI->pDRIInfo); pXGI->pDRIInfo=0; } - if (pXGI->pVisualConfigs) xfree(pXGI->pVisualConfigs); - if (pXGI->pVisualConfigsPriv) xfree(pXGI->pVisualConfigsPriv); + if (pXGI->pVisualConfigs) free(pXGI->pVisualConfigs); + if (pXGI->pVisualConfigsPriv) free(pXGI->pVisualConfigsPriv); if(pXGI->agpSize){ /* ErrorF("Freeing agp memory\n"); */ @@ -574,7 +573,7 @@ XGIDestroyContext(ScreenPtr pScreen, drm_context_t hwContext, Bool XGIDRIFinishScreenInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); /* XGIPtr pXGI = XGIPTR(pScrn); */ XGIDRIPtr pXGIDRI; @@ -630,7 +629,7 @@ XGIDRISwapContext(ScreenPtr pScreen, DRISyncType syncType, DRIContextType oldContextType, void *oldContext, DRIContextType newContextType, void *newContext) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); /* mEndPrimitive */ @@ -650,7 +649,7 @@ static void XGIDRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 index) { ScreenPtr pScreen = pWin->drawable.pScreen; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); Volari_Idle(pXGI); @@ -661,7 +660,7 @@ XGIDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, RegionPtr prgnSrc, CARD32 index) { ScreenPtr pScreen = pParent->drawable.pScreen; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); Volari_Idle(pXGI); @@ -674,7 +673,7 @@ XGIDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, ULONG CheckAGPSlot(ScreenPtr pScreen, ULONG uNextLink) { ULONG uBuffer = 0, uLink = 0, uValue = 0 ; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); uBuffer = pciReadLong(pXGI->PciTag, uNextLink); @@ -700,7 +699,7 @@ ULONG CheckAGPSlot(ScreenPtr pScreen, ULONG uNextLink) */ ULONG IsXGIAGPCard(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); diff --git a/src/xgi_driver.c b/src/xgi_driver.c index b4f83b8..d5da592 100755 --- a/src/xgi_driver.c +++ b/src/xgi_driver.c @@ -54,7 +54,7 @@ #include "fb.h" #include "micmap.h" #include "xf86.h" -#include "xf86Priv.h" +#include "xf86Module.h" #include "xf86_OSproc.h" #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6 #include "xf86Resources.h" @@ -106,6 +106,10 @@ #include <unistd.h> #endif +#ifndef DEFAULT_DPI +#define DEFAULT_DPI 96 +#endif + /* Jong 01/22/2009; compiler error; type conflict */ /* #include <fcntl.h> @@ -224,136 +228,6 @@ static PciChipsets XGIPciChipsets[] = { {-1, -1, RES_UNDEFINED} }; -static const char *xaaSymbols[] = { - "XAACopyROP", - "XAACreateInfoRec", - "XAADestroyInfoRec", - "XAAFillMono8x8PatternRects", - "XAAPatternROP", - "XAAHelpPatternROP", - "XAAInit", - NULL -}; - -#ifdef XGI_USE_EXA -static const char *exaSymbols[] = { - "exaGetVersion", - "exaDriverInit", - "exaDriverFini", - "exaOffscreenAlloc", - "exaOffscreenFree", - NULL -}; -#endif - -static const char *vgahwSymbols[] = { - "vgaHWFreeHWRec", - "vgaHWGetHWRec", - "vgaHWGetIOBase", - "vgaHWGetIndex", - "vgaHWInit", - "vgaHWLock", - "vgaHWMapMem", - "vgaHWUnmapMem", - "vgaHWProtect", - "vgaHWRestore", - "vgaHWSave", - "vgaHWSaveScreen", - "vgaHWUnlock", - NULL -}; - -static const char *fbSymbols[] = { - "fbPictureInit", - "fbScreenInit", - NULL -}; - -static const char *shadowSymbols[] = { - "ShadowFBInit", - NULL -}; - -static const char *ramdacSymbols[] = { - "xf86CreateCursorInfoRec", - "xf86DestroyCursorInfoRec", - "xf86InitCursor", - NULL -}; - - -static const char *ddcSymbols[] = { - "xf86PrintEDID", - "xf86SetDDCproperties", - "xf86InterpretEDID", - NULL -}; - - -/* static const char *i2cSymbols[] = { - "xf86I2CBusInit", - "xf86CreateI2CBusRec", - NULL -}; */ - -static const char *int10Symbols[] = { - "xf86FreeInt10", - "xf86InitInt10", - "xf86ExecX86int10", - NULL -}; - -static const char *vbeSymbols[] = { - "VBEExtendedInit", - "vbeDoEDID", - "vbeFree", - "VBEGetVBEInfo", - "VBEFreeVBEInfo", - "VBEGetModeInfo", - "VBEFreeModeInfo", - "VBESaveRestore", - "VBESetVBEMode", - "VBEGetVBEMode", - "VBESetDisplayStart", - "VBESetGetLogicalScanlineLength", - NULL -}; - -#ifdef XF86DRI -static const char *drmSymbols[] = { - "drmAddMap", - "drmAgpAcquire", - "drmAgpAlloc", - "drmAgpBase", - "drmAgpBind", - "drmAgpEnable", - "drmAgpFree", - "drmAgpGetMode", - "drmAgpRelease", - "drmCtlInstHandler", - "drmGetInterruptFromBusID", - "drmXGIAgpInit", - NULL -}; - -static const char *driSymbols[] = { - "DRICloseScreen", - "DRICreateInfoRec", - "DRIDestroyInfoRec", - "DRIFinishScreenInit", - "DRIGetSAREAPrivate", - "DRILock", - "DRIQueryVersion", - "DRIScreenInit", - "DRIUnlock", -#ifdef XGINEWDRI2 - "GlxSetVisualConfigs", - "DRICreatePCIBusID", -#endif - NULL -}; -#endif - static MODULESETUPPROTO(xgiSetup); static XF86ModuleVersionInfo xgiVersRec = { @@ -500,13 +374,6 @@ xgiSetup(pointer module, pointer opts, int *errmaj, int *errmin) xf86AddDriver(&XGI, module, 0); #endif - LoaderRefSymLists(vgahwSymbols, fbSymbols, xaaSymbols, - shadowSymbols, ramdacSymbols, ddcSymbols, - vbeSymbols, int10Symbols, -#ifdef XF86DRI - drmSymbols, driSymbols, -#endif - NULL); return (pointer) TRUE; } @@ -556,13 +423,13 @@ XGIFreeRec(ScrnInfoPtr pScrn) * head. */ if (pXGIEnt->BIOS) - xfree(pXGIEnt->BIOS); + free(pXGIEnt->BIOS); pXGIEnt->BIOS = pXGI->BIOS = NULL; if (pXGIEnt->XGI_Pr) - xfree(pXGIEnt->XGI_Pr); + free(pXGIEnt->XGI_Pr); pXGIEnt->XGI_Pr = pXGI->XGI_Pr = NULL; if (pXGIEnt->RenderAccelArray) - xfree(pXGIEnt->RenderAccelArray); + free(pXGIEnt->RenderAccelArray); pXGIEnt->RenderAccelArray = pXGI->RenderAccelArray = NULL; } else { @@ -573,19 +440,19 @@ XGIFreeRec(ScrnInfoPtr pScrn) } else { if (pXGI->BIOS) - xfree(pXGI->BIOS); + free(pXGI->BIOS); pXGI->BIOS = NULL; if (pXGI->XGI_Pr) - xfree(pXGI->XGI_Pr); + free(pXGI->XGI_Pr); pXGI->XGI_Pr = NULL; if (pXGI->RenderAccelArray) - xfree(pXGI->RenderAccelArray); + free(pXGI->RenderAccelArray); pXGI->RenderAccelArray = NULL; } #ifdef XGIMERGED if (pXGI->MetaModes) - xfree(pXGI->MetaModes); + free(pXGI->MetaModes); pXGI->MetaModes = NULL; if (pXGI->CRT1Modes) { @@ -595,8 +462,8 @@ XGIFreeRec(ScrnInfoPtr pScrn) do { DisplayModePtr p = pScrn->currentMode->next; if (pScrn->currentMode->Private) - xfree(pScrn->currentMode->Private); - xfree(pScrn->currentMode); + free(pScrn->currentMode->Private); + free(pScrn->currentMode); pScrn->currentMode = p; } while (pScrn->currentMode != pScrn->modes); } @@ -612,7 +479,7 @@ XGIFreeRec(ScrnInfoPtr pScrn) pXGI->pVbe = NULL; if (pScrn->driverPrivate == NULL) return; - xfree(pScrn->driverPrivate); + free(pScrn->driverPrivate); pScrn->driverPrivate = NULL; } @@ -975,7 +842,7 @@ XGIProbe(DriverPtr drv, int flags) numDevSections, drv, &usedChips); /* Free it since we don't need that list after this */ - xfree(devSections); + free(devSections); if (numUsed <= 0) return FALSE; @@ -1015,7 +882,7 @@ XGIProbe(DriverPtr drv, int flags) #endif } - xfree(usedChips); + free(usedChips); return foundScreen; } @@ -1044,11 +911,11 @@ XGICopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest, ErrorF("XGICopyModeNLink()...Use Virtual Size-1\n"); - if (!((mode = xalloc(sizeof(DisplayModeRec))))) + if (!((mode = malloc(sizeof(DisplayModeRec))))) return dest; memcpy(mode, i, sizeof(DisplayModeRec)); - if (!((mode->Private = xalloc(sizeof(XGIMergedDisplayModeRec))))) { - xfree(mode); + if (!((mode->Private = malloc(sizeof(XGIMergedDisplayModeRec))))) { + free(mode); return dest; } ((XGIMergedDisplayModePtr) mode->Private)->CRT1 = i; @@ -1125,8 +992,8 @@ XGICopyModeNLink(ScrnInfoPtr pScrn, DisplayModePtr dest, xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Skipped %dx%d, not enough video RAM or beyond hardware specs\n", mode->HDisplay, mode->VDisplay); - xfree(mode->Private); - xfree(mode); + free(mode->Private); + free(mode); return dest; } @@ -1559,10 +1426,10 @@ XGIFreeCRT2Structs(XGIPtr pXGI) pXGI->CRT2pScrn->monitor->Modes); } if (pXGI->CRT2pScrn->monitor->DDC) - xfree(pXGI->CRT2pScrn->monitor->DDC); - xfree(pXGI->CRT2pScrn->monitor); + free(pXGI->CRT2pScrn->monitor->DDC); + free(pXGI->CRT2pScrn->monitor); } - xfree(pXGI->CRT2pScrn); + free(pXGI->CRT2pScrn); pXGI->CRT2pScrn = NULL; } } @@ -1615,7 +1482,6 @@ XGIInternalDDC(ScrnInfoPtr pScrn, int crtno) ErrorF("get EDID with VBIOS call...\n"); if (xf86LoadSubModule(pScrn, "int10")) { - xf86LoaderReqSymLists(int10Symbols, NULL); pInt = xf86InitInt10(pXGI->pEnt->index); if (pInt == NULL) { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, @@ -1677,8 +1543,6 @@ XGIInternalDDC(ScrnInfoPtr pScrn, int crtno) g_DVI_I_SignalType = (buffer[20] & 0x80) >> 7; ErrorF("DVI-I : %s signal ...\n", (g_DVI_I_SignalType == 0x01) ? "DVI" : "CRT" ); - xf86LoaderReqSymLists(ddcSymbols, NULL); - /* Jong 09/04/2007; Alan fixed abnormal EDID data */ /* pMonitor = xf86InterpretEDID(pScrn->scrnIndex, buffer) ; */ if ( (buffer[0]==0) && (buffer[7]==0) ) @@ -1699,7 +1563,6 @@ XGIInternalDDC(ScrnInfoPtr pScrn, int crtno) "CRT%d DDC EDID corrupt\n", crtno + 1); return (NULL); } - xf86UnloadSubModule("ddc"); } else { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, @@ -2219,8 +2082,6 @@ XGIDDCPreInit(ScrnInfoPtr pScrn) if (xf86LoadSubModule(pScrn, "ddc")) { - xf86LoaderReqSymLists(ddcSymbols, NULL); - if (pXGI->xgi_HwDevExt.jChipType == XG27) { ErrorF("Getting CRT EDID (DAC1-CRT1)...\n"); @@ -2438,7 +2299,7 @@ XGIDDCPreInit(ScrnInfoPtr pScrn) #ifdef XGIMERGED if (pXGI->MergedFB) { - pXGI->CRT2pScrn->monitor = xalloc(sizeof(MonRec)); + pXGI->CRT2pScrn->monitor = malloc(sizeof(MonRec)); if (pXGI->CRT2pScrn->monitor) { DisplayModePtr tempm = NULL, currentm = NULL, newm = NULL; memcpy(pXGI->CRT2pScrn->monitor, pScrn->monitor, sizeof(MonRec)); @@ -2446,11 +2307,11 @@ XGIDDCPreInit(ScrnInfoPtr pScrn) pXGI->CRT2pScrn->monitor->Modes = NULL; tempm = pScrn->monitor->Modes; while (tempm) { - if (!(newm = xalloc(sizeof(DisplayModeRec)))) + if (!(newm = malloc(sizeof(DisplayModeRec)))) break; memcpy(newm, tempm, sizeof(DisplayModeRec)); - if (!(newm->name = xalloc(strlen(tempm->name) + 1))) { - xfree(newm); + if (!(newm->name = malloc(strlen(tempm->name) + 1))) { + free(newm); break; } strcpy(newm->name, tempm->name); @@ -2490,7 +2351,7 @@ XGIDDCPreInit(ScrnInfoPtr pScrn) "Failed to allocate memory for CRT2 monitor, %s.\n", mergeddisstr); if (pXGI->CRT2pScrn) - xfree(pXGI->CRT2pScrn); + free(pXGI->CRT2pScrn); pXGI->CRT2pScrn = NULL; pXGI->MergedFB = FALSE; } @@ -2685,8 +2546,6 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } - xf86LoaderReqSymLists(vgahwSymbols, NULL); - /* Due to the liberal license terms this is needed for * keeping the copyright notice readable and intact in * binary distributions. Removing this is a copyright @@ -2704,6 +2563,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) XGIErrorLog(pScrn, "Could not allocate VGA private\n"); return FALSE; } + vgaHWSetStdFuncs(VGAHWPTR(pScrn)); /* Allocate the XGIRec driverPrivate */ pXGI = XGIGetRec(pScrn); @@ -2712,7 +2572,9 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 pXGI->IODBase = pScrn->domainIOBase; +#endif /* Get the entity, and make sure it is PCI. */ @@ -2778,6 +2640,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) } vgaHWGetIOBase(VGAHWPTR(pScrn)); +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 /* Jong@08262009; why not to modify ??? */ /* We "patch" the PIOOffset inside vgaHW in order to force * the vgaHW module to use our relocated i/o ports. @@ -2789,6 +2652,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) (pXGI->PciInfo->ioBase[2] & 0xFFFC) #endif ; +#endif pXGI->pInt = NULL; if (!pXGI->Primary) { @@ -2798,7 +2662,6 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) "Initializing display adapter through int10\n"); if (xf86LoadSubModule(pScrn, "int10")) { - xf86LoaderReqSymLists(int10Symbols, NULL); pXGI->pInt = xf86InitInt10(pXGI->pEnt->index); } else { @@ -2830,8 +2693,6 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } - xf86LoaderReqSymLists(ramdacSymbols, NULL); - /* Set pScrn->monitor */ pScrn->monitor = pScrn->confScreen->monitor; @@ -3034,7 +2895,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) /* Get our relocated IO registers */ #if defined(__arm__) - pXGI->RelIO = (XGIIOADDRESS)(((IOADDRESS)VGAHWPTR(pScrn)->Base & 0xFFFFFFFC) + pXGI->IODBase); + pXGI->RelIO = (XGIIOADDRESS)(((unsigned long)VGAHWPTR(pScrn)->Base & 0xFFFFFFFC) + pXGI->IODBase); #else pXGI->RelIO = (XGIIOADDRESS) (pXGI->IODBase | @@ -3046,7 +2907,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) ); #endif - pXGI->xgi_HwDevExt.pjIOAddress = (XGIIOADDRESS) (pXGI->RelIO + 0x30); + pXGI->xgi_HwDevExt.pjIOAddress = (pointer)((XGIIOADDRESS) (pXGI->RelIO + 0x30)); xf86DrvMsg(pScrn->scrnIndex, from, "Relocated IO registers at 0x%lX\n", (unsigned long) pXGI->RelIO); ErrorF("xgi_driver.c-pXGI->xgi_HwDevExt.pjIOAddress=0x%x...\n", pXGI->xgi_HwDevExt.pjIOAddress); @@ -3540,7 +3401,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) /* Do some MergedFB mode initialisation */ #ifdef XGIMERGED if (pXGI->MergedFB) { - pXGI->CRT2pScrn = xalloc(sizeof(ScrnInfoRec)); + pXGI->CRT2pScrn = malloc(sizeof(ScrnInfoRec)); if (!pXGI->CRT2pScrn) { XGIErrorLog(pScrn, "Failed to allocate memory for 2nd pScrn, %s\n", @@ -3586,7 +3447,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) XGIErrorLog(pScrn, mergednocrt1, mergeddisstr); } if (pXGI->CRT2pScrn) - xfree(pXGI->CRT2pScrn); + free(pXGI->CRT2pScrn); pXGI->CRT2pScrn = NULL; pXGI->MergedFB = FALSE; } @@ -3627,7 +3488,7 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) XGIErrorLog(pScrn, mergednocrt2, mergeddisstr); } if (pXGI->CRT2pScrn) - xfree(pXGI->CRT2pScrn); + free(pXGI->CRT2pScrn); pXGI->CRT2pScrn = NULL; pXGI->MergedFB = FALSE; } @@ -3695,7 +3556,6 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) #if !defined(__powerpc__) /* Now load and initialize VBE module. */ if (xf86LoadSubModule(pScrn, "vbe")) { - xf86LoaderReqSymLists(vbeSymbols, NULL); pXGI->pVbe = VBEExtendedInit(pXGI->pInt, pXGI->pEnt->index, SET_BIOS_SCRATCH | RESTORE_BIOS_SCRATCH); if (!pXGI->pVbe) { @@ -4117,7 +3977,6 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) XGIFreeRec(pScrn); return FALSE; } - xf86LoaderReqSymLists(fbSymbols, NULL); /* Load XAA if needed */ if (!pXGI->NoAccel) @@ -4130,16 +3989,9 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) if (!xf86LoadSubModule(pScrn, "xaa")) { XGIErrorLog(pScrn, "Could not load xaa module\n"); - if (pXGIEnt) - pXGIEnt->ErrorAfterFirst = TRUE; - - if (pXGI->pInt) - xf86FreeInt10(pXGI->pInt); - xgiRestoreExtRegisterLock(pXGI, srlockReg, crlockReg); - XGIFreeRec(pScrn); - return FALSE; + pXGI->NoAccel = TRUE; + pXGI->ShadowFB = TRUE; } - xf86LoaderReqSymLists(xaaSymbols, NULL); } #endif @@ -4150,7 +4002,6 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) XGIErrorLog(pScrn, "Could not load exa module\n"); return FALSE; } - xf86LoaderReqSymLists(exaSymbols, NULL); } #endif } @@ -4169,16 +4020,12 @@ XGIPreInit(ScrnInfoPtr pScrn, int flags) XGIFreeRec(pScrn); return FALSE; } - xf86LoaderReqSymLists(shadowSymbols, NULL); } /* Load the dri module if requested. */ #ifdef XF86DRI if(pXGI->loadDRI) { - if (xf86LoadSubModule(pScrn, "dri")) { - xf86LoaderReqSymLists(driSymbols, drmSymbols, NULL); - } - else { + if (!xf86LoadSubModule(pScrn, "dri")) { if (!IS_DUAL_HEAD(pXGI)) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Remove >Load \"dri\"< from the Module section of your XF86Config file\n"); @@ -4505,8 +4352,8 @@ XGIModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode) } XGIPostSetMode(pScrn, &pXGI->ModeReg); - XGIAdjustFrame(pXGIEnt->pScrn_1->scrnIndex, pXGIEnt->pScrn_1->frameX0, - pXGIEnt->pScrn_1->frameY0, 0); + XGIAdjustFrame(ADJUST_FRAME_ARGS(pXGIEnt->pScrn_1, pXGIEnt->pScrn_1->frameX0, + pXGIEnt->pScrn_1->frameY0)); } else { @@ -4518,6 +4365,7 @@ XGIModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode) return FALSE; } +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 /* Reset our PIOOffset as vgaHWInit might have reset it */ VGAHWPTR(pScrn)->PIOOffset = pXGI->IODBase - 0x380 + #ifdef XSERVER_LIBPCIACCESS @@ -4526,6 +4374,7 @@ XGIModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode) (pXGI->PciInfo->ioBase[2] & 0xFFFC) #endif ; +#endif /* Prepare the register contents */ if (!(*pXGI->ModeInit) (pScrn, mode)) { @@ -4651,14 +4500,14 @@ XGIRestore(ScrnInfoPtr pScrn) /* Our generic BlockHandler for Xv */ static void -XGIBlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask) +XGIBlockHandler(BLOCKHANDLER_ARGS_DECL) { - ScreenPtr pScreen = screenInfo.screens[i]; - ScrnInfoPtr pScrn = xf86Screens[i]; + SCREEN_PTR(arg); + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); pScreen->BlockHandler = pXGI->BlockHandler; - (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask); + (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS); pScreen->BlockHandler = XGIBlockHandler; if (pXGI->VideoTimerCallback) { @@ -4698,7 +4547,7 @@ void xgiRestoreVirtual(ScrnInfoPtr pScrn) * pScrn->displayWidth : memory pitch */ static Bool -XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +XGIScreenInit(SCREEN_INIT_ARGS_DECL) { ScrnInfoPtr pScrn; vgaHWPtr hwp; @@ -4711,7 +4560,7 @@ XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) XGIEntPtr pXGIEnt = NULL; ErrorF("XGIScreenInit\n"); - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); PDEBUG(ErrorF("pScrn->currentMode->HDisplay = %d\n", pScrn->currentMode->HDisplay)); PDEBUG(ErrorF("pScrn->currentMode->VDisplay = %d\n", pScrn->currentMode->VDisplay)); @@ -4771,7 +4620,6 @@ XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) #if !defined(__powerpc__) if (!IS_DUAL_HEAD(pXGI) || !IS_SECOND_HEAD(pXGI)) { if (xf86LoadSubModule(pScrn, "vbe")) { - xf86LoaderReqSymLists(vbeSymbols, NULL); pXGI->pVbe = VBEExtendedInit(NULL, pXGI->pEnt->index, SET_BIOS_SCRATCH | RESTORE_BIOS_SCRATCH); @@ -4798,6 +4646,7 @@ XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) } vgaHWGetIOBase(hwp); +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 /* Patch the PIOOffset inside vgaHW to use * our relocated IO ports. */ @@ -4808,6 +4657,7 @@ XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) (pXGI->PciInfo->ioBase[2] & 0xFFFC) #endif ; +#endif /* Map the XGI memory and MMIO areas */ if (!XGIMapMem(pScrn)) { @@ -4846,7 +4696,8 @@ XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) XGISaveScreen(pScreen, SCREEN_SAVER_ON); /* Set the viewport */ - XGIAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + XGIAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); + /* XGIAdjustFrame(scrnIndex, 0, 0, 0); */ /* xgiRestoreVirtual(pScrn); */ @@ -4901,7 +4752,7 @@ XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (pXGI->ShadowFB) { pXGI->ShadowPitch = BitmapBytePad(pScrn->bitsPerPixel * width); - pXGI->ShadowPtr = xalloc(pXGI->ShadowPitch * height); + pXGI->ShadowPtr = malloc(pXGI->ShadowPitch * height); displayWidth = pXGI->ShadowPitch / (pScrn->bitsPerPixel >> 3); FBStart = pXGI->ShadowPtr; } @@ -5168,7 +5019,7 @@ XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) PDEBUG(XGIDumpRegs(pScrn)); /* xgiRestoreVirtual(); */ - XGIAdjustFrame(scrnIndex, 0, 0, 0); + XGIAdjustFrame(ADJUST_FRAME_ARGS(pScrn, 0, 0)); pScrn->frameX0 = 0; pScrn->frameY0 = 0; pScrn->frameX1 = pScrn->currentMode->HDisplay - 1 ; @@ -5179,9 +5030,9 @@ XGIScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Usually mandatory */ Bool -XGISwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +XGISwitchMode(SWITCH_MODE_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); XGIPtr pXGI = XGIPTR(pScrn); if(pXGI->TargetRefreshRate) @@ -5225,10 +5076,10 @@ XGISwitchMode(int scrnIndex, DisplayModePtr mode, int flags) #if 1 /* Jong 07/29/2009; Set the viewport; still not working */ - XGIAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + XGIAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); #endif - if (!(XGIModeInit(xf86Screens[scrnIndex], mode))) + if (!(XGIModeInit(pScrn, mode))) return FALSE; @@ -5578,14 +5429,14 @@ XGIAdjustFrameMerged(int scrnIndex, int x, int y, int flags) * Usually mandatory */ void -XGIAdjustFrame(int scrnIndex, int x, int y, int flags) +XGIAdjustFrame(ADJUST_FRAME_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); XGIPtr pXGI = XGIPTR(pScrn); unsigned long base; unsigned char ucSR5Stat, ucTemp; - ErrorF("AdjustFrame %d\n", scrnIndex); + ErrorF("AdjustFrame %d\n", pScrn->scrnIndex); inXGIIDXREG(XGISR, 0x05, ucSR5Stat); if (ucSR5Stat == 0xA1) ucSR5Stat = 0x86; @@ -5637,9 +5488,9 @@ XGIAdjustFrame(int scrnIndex, int x, int y, int flags) * Mandatory! */ static Bool -XGIEnterVT(int scrnIndex, int flags) +XGIEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); XGIPtr pXGI = XGIPTR(pScrn); xgiSaveUnlockExtRegisterLock(pXGI, NULL, NULL); @@ -5649,11 +5500,11 @@ XGIEnterVT(int scrnIndex, int flags) return FALSE; } - XGIAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + XGIAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); #ifdef XF86DRI if (pXGI->directRenderingEnabled) { - DRIUnlock(screenInfo.screens[scrnIndex]); + DRIUnlock(xf86ScrnToScreen(pScrn)); } #endif @@ -5670,9 +5521,9 @@ XGIEnterVT(int scrnIndex, int flags) * Mandatory! */ static void -XGILeaveVT(int scrnIndex, int flags) +XGILeaveVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); vgaHWPtr hwp = VGAHWPTR(pScrn); XGIPtr pXGI = XGIPTR(pScrn); #ifdef XF86DRI @@ -5680,7 +5531,7 @@ XGILeaveVT(int scrnIndex, int flags) PDEBUG(ErrorF("XGILeaveVT()\n")); if (pXGI->directRenderingEnabled) { - pScreen = screenInfo.screens[scrnIndex]; + pScreen = xf86ScrnToScreen(pScrn); DRILock(pScreen, 0); } #endif @@ -5713,9 +5564,9 @@ XGILeaveVT(int scrnIndex, int flags) * Mandatory! */ static Bool -XGICloseScreen(int scrnIndex, ScreenPtr pScreen) +XGICloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); vgaHWPtr hwp = VGAHWPTR(pScrn); XGIPtr pXGI = XGIPTR(pScrn); @@ -5777,17 +5628,17 @@ XGICloseScreen(int scrnIndex, ScreenPtr pScreen) } if (pXGI->ShadowPtr) { - xfree(pXGI->ShadowPtr); + free(pXGI->ShadowPtr); pXGI->ShadowPtr = NULL; } if (pXGI->DGAModes) { - xfree(pXGI->DGAModes); + free(pXGI->DGAModes); pXGI->DGAModes = NULL; } if (pXGI->adaptor) { - xfree(pXGI->adaptor); + free(pXGI->adaptor); pXGI->adaptor = NULL; pXGI->ResetXv = pXGI->ResetXvGamma = NULL; } @@ -5799,7 +5650,7 @@ XGICloseScreen(int scrnIndex, ScreenPtr pScreen) pScreen->CloseScreen = pXGI->CloseScreen; - return (*pScreen->CloseScreen) (scrnIndex, pScreen); + return (*pScreen->CloseScreen) (CLOSE_SCREEN_ARGS); } @@ -5807,13 +5658,14 @@ XGICloseScreen(int scrnIndex, ScreenPtr pScreen) /* Optional */ static void -XGIFreeScreen(int scrnIndex, int flags) +XGIFreeScreen(FREE_SCREEN_ARGS_DECL) { + SCRN_INFO_PTR(arg); if (xf86LoaderCheckSymbol("vgaHWFreeHWRec")) { - vgaHWFreeHWRec(xf86Screens[scrnIndex]); + vgaHWFreeHWRec(pScrn); } - XGIFreeRec(xf86Screens[scrnIndex]); + XGIFreeRec(pScrn); } @@ -5854,9 +5706,9 @@ int XGIValidateUserDefMode(XGIPtr pXGI, DisplayModePtr mode) /* Checks if a mode is suitable for the selected chipset. */ static int -XGIValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) +XGIValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); XGIPtr pXGI = XGIPTR(pScrn); int HDisplay = mode->HDisplay; int VDisplay = mode->VDisplay; @@ -6015,7 +5867,7 @@ XGIValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) static Bool XGISaveScreen(ScreenPtr pScreen, int mode) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); if ((pScrn != NULL) && pScrn->vtSema) { @@ -6034,7 +5886,7 @@ static Bool XGISaveScreenDH(ScreenPtr pScreen, int mode) { #ifdef XGIDUALHEAD - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); if ((pScrn != NULL) && pScrn->vtSema) { XGIPtr pXGI = XGIPTR(pScrn); diff --git a/src/xgi_driver.h b/src/xgi_driver.h index 4004ccd..0754f16 100755 --- a/src/xgi_driver.h +++ b/src/xgi_driver.h @@ -729,19 +729,19 @@ static const unsigned char XGI301CScaling[] = { /* Mandatory functions */ static void XGIIdentify(int flags); static Bool XGIPreInit(ScrnInfoPtr pScrn, int flags); -static Bool XGIScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv); -static Bool XGIEnterVT(int scrnIndex, int flags); -static void XGILeaveVT(int scrnIndex, int flags); -static Bool XGICloseScreen(int scrnIndex, ScreenPtr pScreen); +static Bool XGIScreenInit(SCREEN_INIT_ARGS_DECL); +static Bool XGIEnterVT(VT_FUNC_ARGS_DECL); +static void XGILeaveVT(VT_FUNC_ARGS_DECL); +static Bool XGICloseScreen(CLOSE_SCREEN_ARGS_DECL); static Bool XGISaveScreen(ScreenPtr pScreen, int mode); -static Bool XGISwitchMode(int scrnIndex, DisplayModePtr mode, int flags); -static void XGIAdjustFrame(int scrnIndex, int x, int y, int flags); +static Bool XGISwitchMode(SWITCH_MODE_ARGS_DECL); +static void XGIAdjustFrame(ADJUST_FRAME_ARGS_DECL); static Bool XGISaveScreenDH(ScreenPtr pScreen, int mode); /* Optional functions */ -static void XGIFreeScreen(int scrnIndex, int flags); +static void XGIFreeScreen(FREE_SCREEN_ARGS_DECL); -static int XGIValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, +static int XGIValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags); /* Internally used functions */ static Bool XGIMapMem(ScrnInfoPtr pScrn); diff --git a/src/xgi_memcpy.c b/src/xgi_memcpy.c index f604899..50034f3 100755 --- a/src/xgi_memcpy.c +++ b/src/xgi_memcpy.c @@ -740,13 +740,13 @@ XGI_AllocBuffers(ScrnInfoPtr pScrn, UChar **buf1, UChar **buf2, UChar **buf3) (*buf1) = (UChar *)pXGI->FbBase + offset; (*buf1) = (UChar *)(((ULong)(*buf1) + 31) & ~31); - if(!((*buf2) = (UChar *)xalloc(BUFFERSIZE + 15))) { + if(!((*buf2) = (UChar *)malloc(BUFFERSIZE + 15))) { XGIFreeFBMemory(pScrn, &handle); return NULL; } - if(!((*buf3) = (UChar *)xalloc(BUFFERSIZE + 15))) { - xfree((*buf2)); + if(!((*buf3) = (UChar *)malloc(BUFFERSIZE + 15))) { + free((*buf2)); XGIFreeFBMemory(pScrn, &handle); return NULL; } @@ -1177,7 +1177,7 @@ static unsigned int XGI_GetCpuFeatures(ScrnInfoPtr pScrn) static vidCopyFunc XGIVidCopyInitGen(ScreenPtr pScreen, XGIMCFuncData *MCFunctions, vidCopyFunc *UMemCpy, Bool from) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); void *fbhandle = NULL; char *frqBuf = NULL; @@ -1224,8 +1224,8 @@ XGIVidCopyInitGen(ScreenPtr pScreen, XGIMCFuncData *MCFunctions, vidCopyFunc *UM /* Free buffers */ XGIFreeFBMemory(pScrn, &fbhandle); - xfree(buf2); - xfree(buf3); + free(buf2); + free(buf3); xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Using %s method for aligned data transfers %s video RAM\n", diff --git a/src/xgi_opt.c b/src/xgi_opt.c index 09346e4..c0608d5 100755 --- a/src/xgi_opt.c +++ b/src/xgi_opt.c @@ -195,7 +195,7 @@ xgiOptions(ScrnInfoPtr pScrn) xf86CollectOptions(pScrn, NULL); /* Process the options */ - if(!(pXGI->Options = xalloc(sizeof(XGIOptions)))) return; + if(!(pXGI->Options = malloc(sizeof(XGIOptions)))) return; memcpy(pXGI->Options, XGIOptions, sizeof(XGIOptions)); diff --git a/src/xgi_setup.c b/src/xgi_setup.c index c1d2cdc..a4514ad 100755 --- a/src/xgi_setup.c +++ b/src/xgi_setup.c @@ -587,7 +587,7 @@ XGI_InitHwDevInfo(ScrnInfoPtr pScrn) PDEBUG(ErrorF("pXGI->FbBase = 0x%08lx\n",(ULONG)(pXGI->FbBase))) ; PDEBUG(ErrorF("pHwDevInfo->pjVideoMemoryAddress = 0x%08lx\n",(ULONG)(pHwDevInfo->pjVideoMemoryAddress))) ; pHwDevInfo->ulVideoMemorySize = pXGI->FbMapSize ; - pHwDevInfo->pjIOAddress = pXGI->RelIO + 0x30 ; + pHwDevInfo->pjIOAddress = (pointer)(pXGI->RelIO + 0x30); switch (pXGI->Chipset) { case PCI_CHIP_XGIXG40: @@ -678,7 +678,7 @@ bAccessVGAPCIInfo(PXGI_HW_DEVICE_INFO pHwDevInfo, ULONG ulOffset, ULONG ulSet, U err = pci_device_cfg_write_u32(pXGI->PciInfo, *pulValue, ulOffset & ~3); } else { - err = pci_device_cfg_write_u32(pXGI->PciInfo, pulValue, + err = pci_device_cfg_read_u32(pXGI->PciInfo, pulValue, ulOffset & ~3); } diff --git a/src/xgi_video.c b/src/xgi_video.c index 31cffd5..716d6e1 100755 --- a/src/xgi_video.c +++ b/src/xgi_video.c @@ -78,8 +78,9 @@ #include "xgi.h" #include "xf86xv.h" #include <X11/extensions/Xv.h> -#include "xaa.h" +#ifdef HAVE_XAA_H #include "xaalocal.h" +#endif #include "dixstruct.h" #include "fourcc.h" @@ -127,7 +128,7 @@ static Atom xvBrightness, xvContrast, xvColorKey, xvSaturation, xvHue, xvmcUncom void XGIInitVideo(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL; XF86VideoAdaptorPtr newAdaptor = NULL; int num_adaptors; @@ -142,7 +143,7 @@ void XGIInitVideo(ScreenPtr pScreen) adaptors = &newAdaptor; } else { newAdaptors = /* need to free this someplace */ - xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*)); + malloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*)); if(newAdaptors) { memcpy(newAdaptors, adaptors, num_adaptors * sizeof(XF86VideoAdaptorPtr)); @@ -157,7 +158,7 @@ void XGIInitVideo(ScreenPtr pScreen) xf86XVScreenInit(pScreen, adaptors, num_adaptors); if(newAdaptors) - xfree(newAdaptors); + free(newAdaptors); } @@ -386,7 +387,7 @@ XGISetPortDefaults(ScrnInfoPtr pScrn, XGIPortPrivPtr pPriv) static XF86VideoAdaptorPtr XGISetupImageVideo(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XGIPtr pXGI = XGIPTR(pScrn); XF86VideoAdaptorPtr adapt; XGIPortPrivPtr pPriv; @@ -395,7 +396,7 @@ XGISetupImageVideo(ScreenPtr pScreen) struct v4l2_standard standard; # endif//VC - if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) + + if(!(adapt = calloc(1, sizeof(XF86VideoAdaptorRec) + sizeof(XGIPortPrivRec) + sizeof(DevUnion)))) return NULL;