configure.ac | 21 ++++++++++- man/i128.man | 1 src/Makefile.am | 1 src/compat-api.h | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/i128.h | 9 +++- src/i128IBMDAC.c | 2 - src/i128_driver.c | 102 ++++++++++++++++++++++++++++-------------------------- src/i128accel.c | 17 ++++++--- src/i128dga.c | 25 +++++++------ src/i128exa.c | 8 ++-- src/i128reg.h | 2 - 11 files changed, 215 insertions(+), 72 deletions(-)
New commits: commit da79e51c46b9394b17927a3234af90376ad69b00 Author: Dave Airlie <airl...@redhat.com> Date: Tue Jul 17 16:05:09 2012 +1000 xf86-video-i128: bump to version 1.3.6 Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/configure.ac b/configure.ac index 7abd698..04c5335 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-i128], - [1.3.5], + [1.3.6], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-i128]) AC_CONFIG_SRCDIR([Makefile.am]) commit c829ff70025e927bdec58e270e80c7097537a567 Author: Dave Airlie <airl...@gmail.com> Date: Mon Jul 16 18:23:39 2012 +1000 i128: build against xaa-less server. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/configure.ac b/configure.ac index 76571d4..7abd698 100644 --- a/configure.ac +++ b/configure.ac @@ -78,6 +78,25 @@ 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]) + # Required by exa.h AC_DEFINE(EXA_DRIVER_KNOWN_MAJOR, 3, [Major version of EXA we can handle]) diff --git a/src/i128.h b/src/i128.h index 40f75d6..73739e5 100644 --- a/src/i128.h +++ b/src/i128.h @@ -14,7 +14,9 @@ #include "i128pcirename.h" #include "compiler.h" +#ifdef HAVE_XAA_H #include "xaa.h" +#endif #include "exa.h" #include "xf86Cursor.h" #include "vgaHW.h" @@ -115,7 +117,9 @@ typedef struct { int minClock; CloseScreenProcPtr CloseScreen; +#ifdef HAVE_XAA_H XAAInfoRecPtr XaaInfoRec; +#endif ExaDriverPtr ExaDriver; xf86CursorInfoPtr CursorInfoRec; I2CBusPtr I2C; diff --git a/src/i128_driver.c b/src/i128_driver.c index e416101..66fdee0 100644 --- a/src/i128_driver.c +++ b/src/i128_driver.c @@ -57,7 +57,6 @@ #include "xf86DDC.h" #include "vbe.h" -#include "xaa.h" #include "xf86cmap.h" #include "fb.h" @@ -1704,8 +1703,10 @@ I128CloseScreen(CLOSE_SCREEN_ARGS_DECL) I128Restore(pScrn); I128UnmapMem(pScrn); } +#ifdef HAVE_XAA_H if (pI128->XaaInfoRec) XAADestroyInfoRec(pI128->XaaInfoRec); +#endif if (pI128->ExaDriver) { exaDriverFini(pScreen); free(pI128->ExaDriver); diff --git a/src/i128accel.c b/src/i128accel.c index ddeecb3..fd65c97 100644 --- a/src/i128accel.c +++ b/src/i128accel.c @@ -26,8 +26,7 @@ #include "config.h" #endif -#include "xaa.h" -#include "xaalocal.h" + #include "xf86fbman.h" #include "miline.h" #include "servermd.h" @@ -40,6 +39,9 @@ #include "i128.h" #include "i128reg.h" +#ifdef HAVE_XAA_H +#include "xaalocal.h" + static void I128BitBlit(ScrnInfoPtr pScrn, int x1, int y1, int x2, int y2, int w, int h); static void I128SetupForScreenToScreenCopy(ScrnInfoPtr pScrn, int xdir, @@ -62,6 +64,7 @@ static void I128ScreenToScreenBitBlt(ScrnInfoPtr pScrn, int nbox, unsigned planemask); #endif +#endif #define ENG_PIPELINE_READY() { while (pI128->mem.rbase_a[BUSY] & BUSY_BUSY) ; } #define ENG_DONE() { while (pI128->mem.rbase_a[FLOW] & (FLOW_DEB | FLOW_MCB | FLOW_PRV)) ;} @@ -100,7 +103,7 @@ I128EngineDone(ScrnInfoPtr pScrn) ENG_DONE(); } - +#ifdef HAVE_XAA_H static void I128BitBlit(ScrnInfoPtr pScrn, int x1, int y1, int x2, int y2, int w, int h) { @@ -412,9 +415,12 @@ I128ScreenToScreenBitBlt(ScrnInfoPtr pScrn, int nbox, DDXPointPtr pptSrc, } #endif +#endif + Bool I128XaaInit(ScreenPtr pScreen) { +#ifdef HAVE_XAA_H XAAInfoRecPtr infoPtr; ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); I128Ptr pI128 = I128PTR(pScrn); @@ -519,4 +525,7 @@ I128XaaInit(ScreenPtr pScreen) } return(XAAInit(pScreen, infoPtr)); +#else + return FALSE; +#endif } diff --git a/src/i128dga.c b/src/i128dga.c index 11a150f..d9453bf 100644 --- a/src/i128dga.c +++ b/src/i128dga.c @@ -7,8 +7,6 @@ #include "xf86_OSproc.h" #include "xf86Pci.h" #include "xf86PciInfo.h" -#include "xaa.h" -#include "xaalocal.h" #include "i128.h" #include "dgaproc.h" @@ -18,12 +16,14 @@ static Bool I128_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **, static Bool I128_SetMode(ScrnInfoPtr, DGAModePtr); static int I128_GetViewport(ScrnInfoPtr); static void I128_SetViewport(ScrnInfoPtr, int, int, int); +#ifdef HAVE_XAA_H static void I128_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long); static void I128_BlitRect(ScrnInfoPtr, int, int, int, int, int, int); #if 0 static void I128_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int, unsigned long); #endif +#endif static DGAFunctionRec I128_DGAFuncs = { @@ -33,6 +33,7 @@ DGAFunctionRec I128_DGAFuncs = { I128_SetViewport, I128_GetViewport, I128EngineDone, +#ifdef HAVE_XAA_H I128_FillRect, I128_BlitRect, #if 0 @@ -40,6 +41,9 @@ DGAFunctionRec I128_DGAFuncs = { #else NULL #endif +#else + NULL, NULL, NULL +#endif }; @@ -194,6 +198,7 @@ I128_SetViewport( pI128->DGAViewportStatus = 0; /* I128AdjustFrame loops until finished */ } +#ifdef HAVE_XAA_H static void I128_FillRect ( ScrnInfoPtr pScrn, @@ -253,7 +258,7 @@ I128_BlitTransRect( } } #endif - +#endif static Bool I128_OpenFramebuffer( ScrnInfoPtr pScrn, commit 659390ecdb36bb5e65b41a867257f3b9583e45de Author: Dave Airlie <airl...@redhat.com> Date: Wed Jun 6 12:44:53 2012 +0100 i128: convert to compat API. convert i128 to new compat API. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/Makefile.am b/src/Makefile.am index d7ff091..3db1afd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -29,6 +29,7 @@ i128_drv_la_LDFLAGS = -module -avoid-version i128_drv_ladir = @moduledir@/drivers i128_drv_la_SOURCES = \ + compat-api.h \ i128accel.c \ i128dga.c \ i128exa.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 <airl...@redhat.com> + */ + +/* this file provides API compat between server post 1.13 and pre it, + it should be reused inside as many drivers as possible */ +#ifndef COMPAT_API_H +#define COMPAT_API_H + +#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR +#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] +#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p +#endif + +#ifndef XF86_HAS_SCRN_CONV +#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] +#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] +#endif + +#ifndef XF86_SCRN_INTERFACE + +#define SCRN_ARG_TYPE int +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] + +#define SCREEN_ARG_TYPE int +#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] + +#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS scrnIndex, pScreen + +#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags +#define ADJUST_FRAME_ARGS(arg, x, y) (arg)->scrnIndex, x, y, 0 + +#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags +#define SWITCH_MODE_ARGS(arg, m) (arg)->scrnIndex, m, 0 + +#define FREE_SCREEN_ARGS_DECL int arg, int flags + +#define VT_FUNC_ARGS_DECL int arg, int flags +#define VT_FUNC_ARGS pScrn->scrnIndex, 0 + +#define XF86_SCRN_ARG(x) ((x)->scrnIndex) +#else +#define SCRN_ARG_TYPE ScrnInfoPtr +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1) + +#define SCREEN_ARG_TYPE ScreenPtr +#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1) + +#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS pScreen + +#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y +#define ADJUST_FRAME_ARGS(arg, x, y) arg, x, y + +#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode +#define SWITCH_MODE_ARGS(arg, m) arg, m + +#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg + +#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg +#define VT_FUNC_ARGS pScrn + +#define XF86_SCRN_ARG(x) (x) + +#endif + +#endif diff --git a/src/i128.h b/src/i128.h index f652e7c..40f75d6 100644 --- a/src/i128.h +++ b/src/i128.h @@ -22,6 +22,7 @@ #include "xf86DDC.h" #include "i128reg.h" +#include "compat-api.h" struct source_format { int render_format; int i128_format; @@ -133,8 +134,8 @@ typedef struct { /* Prototypes */ -void I128AdjustFrame(int scrnIndex, int x, int y, int flags); -Bool I128SwitchMode(int scrnIndex, DisplayModePtr mode, int flags); +void I128AdjustFrame(ADJUST_FRAME_ARGS_DECL); +Bool I128SwitchMode(SWITCH_MODE_ARGS_DECL); Bool I128HWCursorInit(ScreenPtr pScreen); diff --git a/src/i128IBMDAC.c b/src/i128IBMDAC.c index 14acba9..8bd78e9 100644 --- a/src/i128IBMDAC.c +++ b/src/i128IBMDAC.c @@ -50,7 +50,7 @@ Bool I128IBMHWCursorInit(ScrnInfoPtr pScrn) { xf86CursorInfoPtr infoPtr; - ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex]; + ScreenPtr pScreen = xf86ScrnToScreen(pScrn); I128Ptr pI128 = I128PTR(pScrn); if (!pI128->HWCursor) diff --git a/src/i128_driver.c b/src/i128_driver.c index bdb999e..e416101 100644 --- a/src/i128_driver.c +++ b/src/i128_driver.c @@ -79,19 +79,18 @@ static const OptionInfoRec * I128AvailableOptions(int chipid, int busid); static void I128Identify(int flags); static Bool I128Probe(DriverPtr drv, int flags); static Bool I128PreInit(ScrnInfoPtr pScrn, int flags); -static Bool I128ScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); -static Bool I128EnterVT(int scrnIndex, int flags); -static void I128LeaveVT(int scrnIndex, int flags); -static Bool I128CloseScreen(int scrnIndex, ScreenPtr pScreen); +static Bool I128ScreenInit(SCREEN_INIT_ARGS_DECL); +static Bool I128EnterVT(VT_FUNC_ARGS_DECL); +static void I128LeaveVT(VT_FUNC_ARGS_DECL); +static Bool I128CloseScreen(CLOSE_SCREEN_ARGS_DECL); static Bool I128SaveScreen(ScreenPtr pScreen, int mode); static void I128DumpBaseRegisters(ScrnInfoPtr pScrn); static void I128DumpIBMDACRegisters(ScrnInfoPtr pScrn, volatile CARD32 *vrbg); /* Optional functions */ -static void I128FreeScreen(int scrnIndex, int flags); -static ModeStatus I128ValidMode(int scrnIndex, DisplayModePtr mode, +static void I128FreeScreen(FREE_SCREEN_ARGS_DECL); +static ModeStatus I128ValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags); static void I128DisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, @@ -1406,9 +1405,10 @@ I128Restore(ScrnInfoPtr pScrn) /* Usually mandatory */ Bool -I128SwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +I128SwitchMode(SWITCH_MODE_ARGS_DECL) { - return I128ModeInit(xf86Screens[scrnIndex], mode); + SCRN_INFO_PTR(arg); + return I128ModeInit(pScrn, mode); } @@ -1442,7 +1442,7 @@ I128ModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode) /* This gets called at the start of each server generation */ static Bool -I128ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +I128ScreenInit(SCREEN_INIT_ARGS_DECL) { ScrnInfoPtr pScrn; I128Ptr pI128; @@ -1454,7 +1454,7 @@ I128ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* * First get the ScrnInfoRec */ - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); pI128 = I128PTR(pScrn); @@ -1477,7 +1477,7 @@ I128ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Darken the screen for aesthetic reasons and set the viewport */ I128SaveScreen(pScreen, SCREEN_SAVER_ON); - pScrn->AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); /* * The next step is to setup the screen's visuals, and initialise the @@ -1628,14 +1628,13 @@ I128ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) */ /* Usually mandatory */ void -I128AdjustFrame(int scrnIndex, int x, int y, int flags) +I128AdjustFrame(ADJUST_FRAME_ARGS_DECL) { - ScrnInfoPtr pScrn; + SCRN_INFO_PTR(arg); int Base; I128Ptr pI128; #define I128_PAN_MASK 0x01FFFFE0 - pScrn = xf86Screens[scrnIndex]; pI128 = I128PTR(pScrn); if (pI128->ShowCache && y && pScrn->vtSema) @@ -1661,13 +1660,13 @@ I128AdjustFrame(int scrnIndex, int x, int y, int flags) /* Mandatory */ static Bool -I128EnterVT(int scrnIndex, int flags) +I128EnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); if (!I128ModeInit(pScrn, pScrn->currentMode)) return FALSE; - I128AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + I128AdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); return TRUE; } @@ -1679,9 +1678,9 @@ I128EnterVT(int scrnIndex, int flags) /* Mandatory */ static void -I128LeaveVT(int scrnIndex, int flags) +I128LeaveVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); I128Restore(pScrn); } @@ -1696,9 +1695,9 @@ I128LeaveVT(int scrnIndex, int flags) /* Mandatory */ static Bool -I128CloseScreen(int scrnIndex, ScreenPtr pScreen) +I128CloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); I128Ptr pI128 = I128PTR(pScrn); if (pScrn->vtSema) { @@ -1718,7 +1717,7 @@ I128CloseScreen(int scrnIndex, ScreenPtr pScreen) pScrn->vtSema = FALSE; pScreen->CloseScreen = pI128->CloseScreen; - return (*pScreen->CloseScreen)(scrnIndex, pScreen); + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); } @@ -1726,16 +1725,17 @@ I128CloseScreen(int scrnIndex, ScreenPtr pScreen) /* Optional */ static void -I128FreeScreen(int scrnIndex, int flags) +I128FreeScreen(FREE_SCREEN_ARGS_DECL) { + SCRN_INFO_PTR(arg); /* * This only gets called when a screen is being deleted. It does not * get called routinely at the end of a server generation. */ if (xf86LoaderCheckSymbol("vgaHWFreeHWRec")) - vgaHWFreeHWRec(xf86Screens[scrnIndex]); - - I128FreeRec(xf86Screens[scrnIndex]); + vgaHWFreeHWRec(pScrn); + + I128FreeRec(pScrn); } @@ -1743,7 +1743,7 @@ I128FreeScreen(int scrnIndex, int flags) /* Optional */ static ModeStatus -I128ValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) +I128ValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags) { int lace; @@ -1775,7 +1775,7 @@ I128SaveScreen(ScreenPtr pScreen, int mode) Bool on; if (pScreen != NULL) - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); on = xf86IsUnblank(mode); @@ -1945,7 +1945,7 @@ I128getDDC(ScrnInfoPtr pScrn) } /* Read and output monitor info using DDC2 over I2C bus */ if (pI128->I2C) { - MonInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, pI128->I2C); + MonInfo = xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn), pI128->I2C); xf86DrvMsg(pScrn->scrnIndex, X_INFO, "I2C Monitor info: %p\n", (void *)MonInfo); xf86PrintEDID(MonInfo); @@ -1954,7 +1954,7 @@ I128getDDC(ScrnInfoPtr pScrn) if (!MonInfo) { /* Read and output monitor info using DDC1 */ if (pI128->ddc1Read) { - MonInfo = xf86DoEDID_DDC1(pScrn->scrnIndex, NULL, pI128->ddc1Read ) ; + MonInfo = xf86DoEDID_DDC1(XF86_SCRN_ARG(pScrn), NULL, pI128->ddc1Read ) ; xf86DrvMsg(pScrn->scrnIndex, X_INFO, "DDC Monitor info: %p\n", (void *)MonInfo); xf86PrintEDID(MonInfo); diff --git a/src/i128accel.c b/src/i128accel.c index 6fb8c0f..ddeecb3 100644 --- a/src/i128accel.c +++ b/src/i128accel.c @@ -416,7 +416,7 @@ Bool I128XaaInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); I128Ptr pI128 = I128PTR(pScrn); BoxRec AvailFBArea; CARD32 buf_ctrl; diff --git a/src/i128dga.c b/src/i128dga.c index 8bc2fcb..11a150f 100644 --- a/src/i128dga.c +++ b/src/i128dga.c @@ -46,7 +46,7 @@ DGAFunctionRec I128_DGAFuncs = { Bool I128DGAInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); I128Ptr pI128 = I128PTR(pScrn); DGAModePtr modes = NULL, newmodes = NULL, currentMode; DisplayModePtr pMode, firstMode; @@ -153,7 +153,7 @@ I128_SetMode( pScrn->displayWidth = OldDisplayWidth[index]; - I128SwitchMode(index, pScrn->currentMode, 0); + I128SwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); pI128->DGAactive = FALSE; } else { if(!pI128->DGAactive) { /* save the old parameters */ @@ -165,7 +165,7 @@ I128_SetMode( pScrn->displayWidth = pMode->bytesPerScanline / (pMode->bitsPerPixel >> 3); - I128SwitchMode(index, pMode->mode, 0); + I128SwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode)); } return TRUE; @@ -190,7 +190,7 @@ I128_SetViewport( ){ I128Ptr pI128 = I128PTR(pScrn); - I128AdjustFrame(pScrn->pScreen->myNum, x, y, flags); + I128AdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y)); pI128->DGAViewportStatus = 0; /* I128AdjustFrame loops until finished */ } diff --git a/src/i128exa.c b/src/i128exa.c index f4e831f..13bba11 100644 --- a/src/i128exa.c +++ b/src/i128exa.c @@ -41,11 +41,11 @@ #include "i128reg.h" #define PI128_FROM_PIXMAP(x) \ - I128Ptr pI128 = I128PTR(xf86Screens[x->drawable.pScreen->myNum]) + I128Ptr pI128 = I128PTR(xf86ScreenToScrn(x->drawable.pScreen)) #define PI128_FROM_SCREEN(x) \ - I128Ptr pI128 = I128PTR(xf86Screens[x->myNum]) + I128Ptr pI128 = I128PTR(xf86ScreenToScrn(x)) #define PI128_FROM_PICTURE(x) \ - I128Ptr pI128 = I128PTR(xf86Screens[x->pDrawable->pScreen->myNum]) + I128Ptr pI128 = I128PTR(xf86ScreenToScrn(x->pDrawable->pScreen)) /* we might be able to do something smarter than this */ #define ENG_PIPELINE_READY() \ @@ -604,7 +604,7 @@ Bool I128ExaInit(ScreenPtr pScreen) { ExaDriverPtr pExa; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); I128Ptr pI128 = I128PTR(pScrn); if (!(pExa = exaDriverAlloc())) { commit 2228b7f80cc2f2a13dc00fd659b592407f1bbef1 Author: Alan Coopersmith <alan.coopersm...@oracle.com> Date: Fri Mar 23 18:51:51 2012 -0700 xf86-video-i128 1.3.5 Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> diff --git a/configure.ac b/configure.ac index 5ae48b0..76571d4 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-i128], - [1.3.4], + [1.3.5], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-i128]) AC_CONFIG_SRCDIR([Makefile.am]) commit 3b23ca1d037b9d70f8e3a1ce5b5af0cba05f45cc Author: Adam Jackson <a...@redhat.com> Date: Mon Dec 19 17:48:13 2011 -0500 Fix for new vgaHW ABI Signed-off-by: Adam Jackson <a...@redhat.com> diff --git a/src/i128_driver.c b/src/i128_driver.c index 7990c9b..bdb999e 100644 --- a/src/i128_driver.c +++ b/src/i128_driver.c @@ -492,6 +492,7 @@ I128PreInit(ScrnInfoPtr pScrn, int flags) return FALSE; hwp = VGAHWPTR(pScrn); + vgaHWSetStdFuncs(hwp); vgaHWGetIOBase(hwp); /* Set pScrn->monitor */ commit 0a46285e074dded359c859b8ffa2a0c9c437b21b Author: Adam Jackson <a...@redhat.com> Date: Mon Dec 19 16:29:49 2011 -0500 Make failure to XAA non-fatal No shadowfb support in this driver yet. Signed-off-by: Adam Jackson <a...@redhat.com> diff --git a/src/i128_driver.c b/src/i128_driver.c index 92f9d58..7990c9b 100644 --- a/src/i128_driver.c +++ b/src/i128_driver.c @@ -1117,8 +1117,9 @@ I128PreInit(ScrnInfoPtr pScrn, int flags) } } else { if (!xf86LoadSubModule(pScrn, "xaa")) { - I128FreeRec(pScrn); - return FALSE; + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "No acceleration available\n"); + pI128->NoAccel = 1; } } } commit 0e357623bc3d68e6eaf9bb755f44cca2d5321f8b Author: Jeremy Huddleston <jerem...@apple.com> Date: Wed Oct 19 00:24:00 2011 -0700 Build fix for ABI Version 12 ABI Version 12 removes support for multiple PCI domains. If you need to use this driver on a system with more than one PCI domain, you should either port this driver to using libpciaccess directly or stick with an older server. Signed-off-by: Jeremy Huddleston <jerem...@apple.com> diff --git a/src/i128_driver.c b/src/i128_driver.c index 26c06df..92f9d58 100644 --- a/src/i128_driver.c +++ b/src/i128_driver.c @@ -650,7 +650,10 @@ I128PreInit(ScrnInfoPtr pScrn, int flags) xf86DrvMsg(pScrn->scrnIndex, from, "Subsystem Vendor: \"%x\"\n", PCI_SUB_VENDOR_ID(pI128->PciInfo)); - iobase = (PCI_REGION_BASE(pI128->PciInfo, 5, REGION_IO) & 0xFFFFFF00) + hwp->PIOOffset; + iobase = (PCI_REGION_BASE(pI128->PciInfo, 5, REGION_IO) & 0xFFFFFF00); +#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 12 + iobase += hwp->PIOOffset; +#endif pI128->RegRec.iobase = iobase; pI128->io.rbase_g = inl(iobase) & 0xFFFFFF00; commit c3eb2c3f05902be4e4e5b929663753276cde3611 Author: Jeremy Huddleston <jerem...@apple.com> Date: Wed Oct 19 00:23:12 2011 -0700 Use unsigned long rather than deprecated IOADDRESS Signed-off-by: Jeremy Huddleston <jerem...@apple.com> diff --git a/src/i128_driver.c b/src/i128_driver.c index 40f1e4d..26c06df 100644 --- a/src/i128_driver.c +++ b/src/i128_driver.c @@ -446,7 +446,7 @@ I128PreInit(ScrnInfoPtr pScrn, int flags) int i; ClockRangePtr clockRanges; MessageType from; - IOADDRESS iobase; + unsigned long iobase; char *ramdac = NULL; CARD32 tmpl, tmph, tmp; unsigned char n, m, p, mdc, df; @@ -1804,7 +1804,7 @@ I128DDC1Read(ScrnInfoPtr pScrn) I128Ptr pI128 = I128PTR(pScrn); unsigned char val; unsigned long tmp, ddc; - IOADDRESS iobase; + unsigned long iobase; iobase = pI128->RegRec.iobase; ddc = inl(iobase + 0x2C); @@ -1839,7 +1839,7 @@ I128I2CGetBits(I2CBusPtr b, int *clock, int *data) { I128Ptr pI128 = I128PTR(xf86Screens[b->scrnIndex]); unsigned long ddc; - IOADDRESS iobase; + unsigned long iobase; #if 0 static int lastclock = -1, lastdata = -1; #endif @@ -1867,7 +1867,7 @@ I128I2CPutBits(I2CBusPtr b, int clock, int data) unsigned char drv, val; unsigned long ddc; unsigned long tmp; - IOADDRESS iobase; + unsigned long iobase; iobase = pI128->RegRec.iobase; ddc = inl(iobase + 0x2C); @@ -1889,7 +1889,7 @@ I128I2CInit(ScrnInfoPtr pScrn) { I128Ptr pI128 = I128PTR(pScrn); I2CBusPtr I2CPtr; - IOADDRESS iobase; + unsigned long iobase; unsigned long soft_sw, ddc; I2CPtr = xf86CreateI2CBusRec(); @@ -2102,7 +2102,7 @@ void I128DumpActiveRegisters(ScrnInfoPtr pScrn) { I128Ptr pI128 = I128PTR(pScrn); - IOADDRESS iobase; + unsigned long iobase; unsigned long rbase_g, rbase_w, rbase_a, rbase_b, rbase_i, rbase_e; unsigned long id, config1, config2, sgram, soft_sw, ddc, vga_ctl; volatile CARD32 *vrba, *vrbg, *vrbw; diff --git a/src/i128reg.h b/src/i128reg.h index 56b9c33..a72b525 100644 --- a/src/i128reg.h +++ b/src/i128reg.h @@ -75,7 +75,7 @@ struct i128mem { /* save the registers needed for restoration in this structure */ typedef struct { - IOADDRESS iobase; /* saved only for iobase indexing */ + unsigned long iobase; /* saved only for iobase indexing */ CARD32 config1; /* iobase+0x1C register */ CARD32 config2; /* iobase+0x20 register */ CARD32 sgram; /* iobase+0x24 register */ commit f5c6593c9309541eedd374431dbd72151b8fb3ab Author: Jeremy Huddleston <jerem...@apple.com> Date: Wed Oct 19 00:22:09 2011 -0700 Use malloc/calloc/realloc/free directly Signed-off-by: Jeremy Huddleston <jerem...@apple.com> diff --git a/src/i128_driver.c b/src/i128_driver.c index 903a3a8..40f1e4d 100644 --- a/src/i128_driver.c +++ b/src/i128_driver.c @@ -304,13 +304,13 @@ I128Probe(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; if (flags & PROBE_DETECT) { - xfree(usedChips); + free(usedChips); return FALSE; } @@ -340,7 +340,7 @@ I128Probe(DriverPtr drv, int flags) foundScreen = TRUE; } - xfree(usedChips); + free(usedChips); return foundScreen; } @@ -558,7 +558,7 @@ I128PreInit(ScrnInfoPtr pScrn, int flags) xf86CollectOptions(pScrn, NULL); /* Process the options */ - if (!(pI128->Options = xalloc(sizeof(I128Options)))) + if (!(pI128->Options = malloc(sizeof(I128Options)))) return FALSE; memcpy(pI128->Options, I128Options, sizeof(I128Options)); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pI128->Options); @@ -1157,7 +1157,7 @@ I128FreeRec(ScrnInfoPtr pScrn) { if (pScrn->driverPrivate == NULL) return; - xfree(pScrn->driverPrivate); + free(pScrn->driverPrivate); pScrn->driverPrivate = NULL; } @@ -1704,12 +1704,12 @@ I128CloseScreen(int scrnIndex, ScreenPtr pScreen) XAADestroyInfoRec(pI128->XaaInfoRec); if (pI128->ExaDriver) { exaDriverFini(pScreen); - xfree(pI128->ExaDriver); + free(pI128->ExaDriver); } if (pI128->CursorInfoRec) xf86DestroyCursorInfoRec(pI128->CursorInfoRec); if (pI128->DGAModes) - xfree(pI128->DGAModes); + free(pI128->DGAModes); pScrn->vtSema = FALSE; pScreen->CloseScreen = pI128->CloseScreen; diff --git a/src/i128dga.c b/src/i128dga.c index 48823aa..8bc2fcb 100644 --- a/src/i128dga.c +++ b/src/i128dga.c @@ -59,15 +59,15 @@ I128DGAInit(ScreenPtr pScreen) while(pMode) { if(0 /*pScrn->displayWidth != pMode->HDisplay*/) { - 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 FALSE; } modes = newmodes; commit b9e0edbd4ab23c811714a648cb729b5c11356795 Author: Jesse Adkins <jesserayadk...@gmail.com> Date: Tue Sep 28 13:29:51 2010 -0700 Purge cvs tags. Signed-off-by: Jesse Adkins <jesserayadk...@gmail.com> Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> diff --git a/man/i128.man b/man/i128.man index 920d2ab..a8e2e54 100644 --- a/man/i128.man +++ b/man/i128.man @@ -1,4 +1,3 @@ -.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i128/i128.man,v 1.2 2001/01/27 18:20:48 dawes Exp $ .\" shorthand for double quote that works everywhere. .ds q \N'34' .TH I128 __drivermansuffix__ __vendorversion__ -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1sruwn-00063b...@vasks.debian.org