diff options
author | Dave Airlie <airlied@redhat.com> | 2012-06-06 12:21:55 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-06-06 12:21:55 +0100 |
commit | 9b33cc9fe94d97c8b954a3614ead34622d293bc3 (patch) | |
tree | 46009a0b71019fe8651894fc4ebc05dd33a21a15 | |
parent | 3b06ee079494b0d08913a9f724c3661f9ac35907 (diff) |
neomagic: port to new compat API.
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | src/Makefile.am | 3 | ||||
-rw-r--r-- | src/compat-api.h | 99 | ||||
-rw-r--r-- | src/neo.h | 9 | ||||
-rw-r--r-- | src/neo_2070.c | 2 | ||||
-rw-r--r-- | src/neo_2090.c | 2 | ||||
-rw-r--r-- | src/neo_2097.c | 2 | ||||
-rw-r--r-- | src/neo_2200.c | 2 | ||||
-rw-r--r-- | src/neo_cursor.c | 4 | ||||
-rw-r--r-- | src/neo_dga.c | 10 | ||||
-rw-r--r-- | src/neo_driver.c | 86 | ||||
-rw-r--r-- | src/neo_shadow.c | 8 | ||||
-rw-r--r-- | src/neo_video.c | 8 |
12 files changed, 168 insertions, 67 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index e07e52e..764cb5f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -43,4 +43,5 @@ neomagic_drv_la_SOURCES = \ neo_shadow.c \ neo_video.c \ neo_video.h \ - neo_pcirename.h + neo_pcirename.h \ + compat-api.h 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 @@ -71,6 +71,7 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "neo_reg.h" #include "neo_macros.h" +#include "compat-api.h" /* Supported chipsets */ typedef enum { NM2070, @@ -86,8 +87,8 @@ typedef enum { /* function prototypes */ -extern Bool NEOSwitchMode(int scrnIndex, DisplayModePtr mode, int flags); -extern void NEOAdjustFrame(int scrnIndex, int x, int y, int flags); +extern Bool NEOSwitchMode(SWITCH_MODE_ARGS_DECL); +extern void NEOAdjustFrame(ADJUST_FRAME_ARGS_DECL); /* in neo_2070.c */ extern Bool Neo2070AccelInit(ScreenPtr pScreen); @@ -111,7 +112,7 @@ extern Bool neo_I2CInit(ScrnInfoPtr pScrn); /* in neo_shadow.c */ void neoShadowUpdate (ScreenPtr pScreen, shadowBufPtr pBuf); -void neoPointerMoved(int index, int x, int y); +void neoPointerMoved(SCRN_ARG_TYPE arg, int x, int y); void neoRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox); void neoRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox); void neoRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox); @@ -256,7 +257,7 @@ typedef struct neoRec unsigned char * ShadowPtr; int ShadowPitch; RefreshAreaFuncPtr refreshArea; - void (*PointerMoved)(int index, int x, int y); + void (*PointerMoved)(SCRN_ARG_TYPE arg, int x, int y); int rotate; Bool showcache; Bool video; diff --git a/src/neo_2070.c b/src/neo_2070.c index b3811d6..fab01ab 100644 --- a/src/neo_2070.c +++ b/src/neo_2070.c @@ -103,7 +103,7 @@ Bool Neo2070AccelInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NEOPtr nPtr = NEOPTR(pScrn); NEOACLPtr nAcl = NEOACLPTR(pScrn); diff --git a/src/neo_2090.c b/src/neo_2090.c index 45f34dd..f7b407a 100644 --- a/src/neo_2090.c +++ b/src/neo_2090.c @@ -100,7 +100,7 @@ Bool Neo2090AccelInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NEOPtr nPtr = NEOPTR(pScrn); NEOACLPtr nAcl = NEOACLPTR(pScrn); diff --git a/src/neo_2097.c b/src/neo_2097.c index 7d720df..d1e2389 100644 --- a/src/neo_2097.c +++ b/src/neo_2097.c @@ -124,7 +124,7 @@ Bool Neo2097AccelInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NEOPtr nPtr = NEOPTR(pScrn); NEOACLPtr nAcl = NEOACLPTR(pScrn); diff --git a/src/neo_2200.c b/src/neo_2200.c index 4b354e7..72864a5 100644 --- a/src/neo_2200.c +++ b/src/neo_2200.c @@ -119,7 +119,7 @@ Bool Neo2200AccelInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NEOPtr nPtr = NEOPTR(pScrn); NEOACLPtr nAcl = NEOACLPTR(pScrn); diff --git a/src/neo_cursor.c b/src/neo_cursor.c index c524527..40a517c 100644 --- a/src/neo_cursor.c +++ b/src/neo_cursor.c @@ -243,7 +243,7 @@ neoLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src) static Bool neoUseHWCursor(ScreenPtr pScr, CursorPtr pCurs) { - NEOACLPtr nAcl = NEOACLPTR(xf86Screens[pScr->myNum]); + NEOACLPtr nAcl = NEOACLPTR(xf86ScreenToScrn(pScr)); return(nAcl->UseHWCursor && !nAcl->NoCursorMode); } @@ -291,7 +291,7 @@ neoRealizeCursor(xf86CursorInfoPtr infoPtr, CursorPtr pCurs) Bool NeoCursorInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NEOPtr nPtr = NEOPTR(pScrn); xf86CursorInfoPtr infoPtr; infoPtr = xf86CreateCursorInfoRec(); diff --git a/src/neo_dga.c b/src/neo_dga.c index 3e2a02e..799150c 100644 --- a/src/neo_dga.c +++ b/src/neo_dga.c @@ -70,7 +70,7 @@ DGAFunctionRec NEODGAFuncs = { Bool NEODGAInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NEOPtr pNEO = NEOPTR(pScrn); DGAModePtr modes = NULL, newmodes = NULL, currentMode; DisplayModePtr pMode, firstMode; @@ -155,8 +155,8 @@ NEO_SetMode( if(!pMode) { /* restore the original mode */ if(pNEO->DGAactive) { pScrn->currentMode = NEOSavedDGAModes[index]; - NEOSwitchMode(index, pScrn->currentMode, 0); - NEOAdjustFrame(index, 0, 0, 0); + NEOSwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); + NEOAdjustFrame(ADJUST_FRAME_ARGS(pScrn, 0, 0)); pNEO->DGAactive = FALSE; } } else { @@ -165,7 +165,7 @@ NEO_SetMode( pNEO->DGAactive = TRUE; } - NEOSwitchMode(index, pMode->mode, 0); + NEOSwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode)); } return TRUE; @@ -189,7 +189,7 @@ NEO_SetViewport( NEOPtr pNEO = NEOPTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); - NEOAdjustFrame(pScrn->pScreen->myNum, x, y, flags); + NEOAdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y)); /* wait for retrace */ while((hwp->readST01(hwp) & 0x08)); while(!(hwp->readST01(hwp) & 0x08)); diff --git a/src/neo_driver.c b/src/neo_driver.c index 509a77f..124bd6f 100644 --- a/src/neo_driver.c +++ b/src/neo_driver.c @@ -115,13 +115,12 @@ static const OptionInfoRec * NEOAvailableOptions(int chipid, int busid); static void NEOIdentify(int flags); static Bool NEOProbe(DriverPtr drv, int flags); static Bool NEOPreInit(ScrnInfoPtr pScrn, int flags); -static Bool NEOScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); -static Bool NEOEnterVT(int scrnIndex, int flags); -static void NEOLeaveVT(int scrnIndex, int flags); -static Bool NEOCloseScreen(int scrnIndex, ScreenPtr pScreen); -static void NEOFreeScreen(int scrnIndex, int flags); -static ModeStatus NEOValidMode(int scrnIndex, DisplayModePtr mode, +static Bool NEOScreenInit(SCREEN_INIT_ARGS_DECL); +static Bool NEOEnterVT(VT_FUNC_ARGS_DECL); +static void NEOLeaveVT(VT_FUNC_ARGS_DECL); +static Bool NEOCloseScreen(CLOSE_SCREEN_ARGS_DECL); +static void NEOFreeScreen(FREE_SCREEN_ARGS_DECL); +static ModeStatus NEOValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags); /* Internally used functions */ @@ -137,7 +136,7 @@ static Bool neoUnmapMem(ScrnInfoPtr pScrn); static void neoProgramShadowRegs(ScrnInfoPtr pScrn, vgaRegPtr VgaReg, NeoRegPtr restore); static void neoCalcVCLK(ScrnInfoPtr pScrn, long freq); -static xf86MonPtr neo_ddc1(int scrnIndex); +static xf86MonPtr neo_ddc1(ScrnInfoPtr pScrn); static Bool neoDoDDC1(ScrnInfoPtr pScrn); static Bool neoDoDDC2(ScrnInfoPtr pScrn); static Bool neoDoDDCVBE(ScrnInfoPtr pScrn); @@ -1337,9 +1336,9 @@ NEOPreInit(ScrnInfoPtr pScrn, int flags) /* Mandatory */ static Bool -NEOEnterVT(int scrnIndex, int flags) +NEOEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); NEOPtr nPtr = NEOPTR(pScrn); /* Should we re-save the text mode on each VT enter? */ @@ -1351,16 +1350,16 @@ NEOEnterVT(int scrnIndex, int flags) if (nPtr->NeoHWCursorShown) NeoShowCursor(pScrn); - NEOAdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + NEOAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); return TRUE; } /* Mandatory */ static void -NEOLeaveVT(int scrnIndex, int flags) +NEOLeaveVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); NEOPtr nPtr = NEOPTR(pScrn); /* Invalidate the cached acceleration registers */ @@ -1410,7 +1409,7 @@ NEOLoadPalette( /* Mandatory */ static Bool -NEOScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +NEOScreenInit(SCREEN_INIT_ARGS_DECL) { ScrnInfoPtr pScrn; vgaHWPtr hwp; @@ -1429,7 +1428,7 @@ NEOScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) * we need to get the ScrnInfoRec for this screen, so let's allocate * one first thing */ - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); nPtr = NEOPTR(pScrn); nAcl = NEOACLPTR(pScrn); @@ -1451,7 +1450,7 @@ NEOScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (!neoModeInit(pScrn,pScrn->currentMode)) return FALSE; vgaHWSaveScreen(pScreen,SCREEN_SAVER_ON); - NEOAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + NEOAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); /* * Reset visual list. @@ -1533,11 +1532,11 @@ NEOScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) freespace = allocatebase - pScrn->displayWidth * pScrn->virtualY * (pScrn->bitsPerPixel >> 3); currentaddr = allocatebase; - xf86DrvMsg(scrnIndex, X_PROBED, + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "%d bytes off-screen memory available\n", freespace); if (nPtr->swCursor || !nPtr->NeoMMIOBase) { - xf86DrvMsg(scrnIndex, X_CONFIG, + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Using Software Cursor.\n"); } else if (nPtr->NeoCursorMem <= freespace) { currentaddr -= nPtr->NeoCursorMem; @@ -1546,10 +1545,10 @@ NEOScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) freespace -= currentaddr & 0x3FF; currentaddr &= 0xfffffc00; nAcl->CursorAddress = currentaddr; - xf86DrvMsg(scrnIndex, X_INFO, + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using H/W Cursor.\n"); } else { - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Too little space for H/W cursor.\n"); } @@ -1596,7 +1595,7 @@ NEOScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (!nPtr->noAccel && nPtr->NeoMMIOBase) { Bool ret = FALSE; if (nAcl->cacheStart >= nAcl->cacheEnd) { - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Too little space for pixmap cache.\n"); } switch(nPtr->NeoChipset) { @@ -1632,7 +1631,7 @@ NEOScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (nAcl->CursorAddress != -1) { /* HW cursor functions */ if (!NeoCursorInit(pScreen)) { - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Hardware cursor initialization failed\n"); return FALSE; } @@ -1706,22 +1705,22 @@ NEOScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Mandatory */ Bool -NEOSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +NEOSwitchMode(SWITCH_MODE_ARGS_DECL) { - return neoModeInit(xf86Screens[scrnIndex], mode); + SCRN_INFO_PTR(arg); + return neoModeInit(pScrn, mode); } /* Mandatory */ void -NEOAdjustFrame(int scrnIndex, int x, int y, int flags) +NEOAdjustFrame(ADJUST_FRAME_ARGS_DECL) { - ScrnInfoPtr pScrn; + SCRN_INFO_PTR(arg); NEOPtr nPtr; vgaHWPtr hwp; int oldExtCRTDispAddr; int Base; - pScrn = xf86Screens[scrnIndex]; hwp = VGAHWPTR(pScrn); nPtr = NEOPTR(pScrn); @@ -1776,9 +1775,9 @@ NEOAdjustFrame(int scrnIndex, int x, int y, int flags) /* Mandatory */ static Bool -NEOCloseScreen(int scrnIndex, ScreenPtr pScreen) +NEOCloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NEOPtr nPtr = NEOPTR(pScrn); if(pScrn->vtSema){ @@ -1798,23 +1797,24 @@ NEOCloseScreen(int scrnIndex, ScreenPtr pScreen) pScrn->vtSema = FALSE; pScreen->CloseScreen = nPtr->CloseScreen; - return (*pScreen->CloseScreen)(scrnIndex, pScreen); + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); } /* Optional */ static void -NEOFreeScreen(int scrnIndex, int flags) +NEOFreeScreen(FREE_SCREEN_ARGS_DECL) { + SCRN_INFO_PTR(arg); if (xf86LoaderCheckSymbol("vgaHWFreeHWRec")) - vgaHWFreeHWRec(xf86Screens[scrnIndex]); - NEOFreeRec(xf86Screens[scrnIndex]); + vgaHWFreeHWRec(pScrn); + NEOFreeRec(pScrn); } /* Optional */ static ModeStatus -NEOValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) +NEOValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); NEOPtr nPtr = NEOPTR(pScrn); int vDisplay = mode->VDisplay * ((mode->Flags & V_DBLSCAN) ? 2 : 1); @@ -1831,7 +1831,7 @@ NEOValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) */ if (nPtr->overrideValidate) { - xf86DrvMsg(scrnIndex, X_WARNING, "display mode validation disabled\n"); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "display mode validation disabled\n"); } else { /* * When the LCD is active, only allow modes that are (1) equal to @@ -1842,7 +1842,7 @@ NEOValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) /* Is the mode larger than the LCD panel? */ if ((mode->HDisplay > nPtr->NeoPanelWidth) || (vDisplay > nPtr->NeoPanelHeight)) { - xf86DrvMsg(scrnIndex,X_INFO, "Removing mode (%dx%d) " + xf86DrvMsg(pScrn->scrnIndex,X_INFO, "Removing mode (%dx%d) " "larger than the LCD panel (%dx%d)\n", mode->HDisplay, mode->VDisplay, @@ -1883,7 +1883,7 @@ NEOValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) break; } - xf86DrvMsg(scrnIndex, X_INFO, "Removing mode (%dx%d) that won't " + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Removing mode (%dx%d) that won't " "display properly on LCD\n", mode->HDisplay, mode->VDisplay); @@ -3017,9 +3017,9 @@ neo_ddc1Read(ScrnInfoPtr pScrn) } static xf86MonPtr -neo_ddc1(int scrnIndex) +neo_ddc1(ScrnInfoPtr pScrn) { - vgaHWPtr hwp = VGAHWPTR(xf86Screens[scrnIndex]); + vgaHWPtr hwp = VGAHWPTR(pScrn); unsigned int reg1, reg2, reg3; xf86MonPtr ret; @@ -3030,7 +3030,7 @@ neo_ddc1(int scrnIndex) VGAwCR(0x21,0x00); VGAwCR(0x1D,0x01); /* some Voodoo */ VGAwGR(0xA1,0x2F); - ret = xf86DoEDID_DDC1(scrnIndex,vgaHWddc1SetSpeedWeak(),neo_ddc1Read); + ret = xf86DoEDID_DDC1(XF86_SCRN_ARG(pScrn),vgaHWddc1SetSpeedWeak(),neo_ddc1Read); /* undo initialization */ VGAwCR(0x21,reg1); VGAwCR(0x1D,reg2); @@ -3046,7 +3046,7 @@ neoDoDDC1(ScrnInfoPtr pScrn) VGAwGR(0x09,0x26); ret = xf86SetDDCproperties(pScrn, - xf86PrintEDID(neo_ddc1(pScrn->scrnIndex))); + xf86PrintEDID(neo_ddc1(pScrn))); VGAwGR(0x09,0x00); return ret; @@ -3063,7 +3063,7 @@ neoDoDDC2(ScrnInfoPtr pScrn) if (xf86LoadSubModule(pScrn, "i2c")) { if (neo_I2CInit(pScrn)) { ret = xf86SetDDCproperties(pScrn,xf86PrintEDID(xf86DoEDID_DDC2( - pScrn->scrnIndex,nPtr->I2C))); + XF86_SCRN_ARG(pScrn),nPtr->I2C))); } } VGAwGR(0x09,0x00); diff --git a/src/neo_shadow.c b/src/neo_shadow.c index dd9aa32..2df7657 100644 --- a/src/neo_shadow.c +++ b/src/neo_shadow.c @@ -21,7 +21,7 @@ neoShadowUpdate (ScreenPtr pScreen, shadowBufPtr pBuf) { RegionPtr damage = DamageRegion(pBuf->pDamage); ScrnInfoPtr pScrn; - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); (NEOPTR(pScrn))->refreshArea (pScrn, REGION_NUM_RECTS(damage), REGION_RECTS(damage)); @@ -55,9 +55,9 @@ neoRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox) } void -neoPointerMoved(int index, int x, int y) +neoPointerMoved(SCRN_ARG_TYPE arg, int x, int y) { - ScrnInfoPtr pScrn = xf86Screens[index]; + SCRN_INFO_PTR(arg); NEOPtr nPtr = NEOPTR(pScrn); int newX, newY; @@ -69,7 +69,7 @@ neoPointerMoved(int index, int x, int y) newY = pScrn->pScreen->width - x - 1; } - (*nPtr->PointerMoved)(index, newX, newY); + (*nPtr->PointerMoved)(arg, newX, newY); } void diff --git a/src/neo_video.c b/src/neo_video.c index 0edae30..8e63947 100644 --- a/src/neo_video.c +++ b/src/neo_video.c @@ -78,7 +78,7 @@ static Atom xvColorKey, xvBrightness, xvInterlace; void NEOInitVideo(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NEOPtr nPtr = NEOPTR(pScrn); XF86VideoAdaptorPtr *overlayAdaptors, *newAdaptors = NULL; XF86VideoAdaptorPtr newAdaptor = NULL; @@ -202,7 +202,7 @@ static XF86ImageRec NEOVideoImages[] = static XF86VideoAdaptorPtr NEOSetupVideo(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); NEOPtr nPtr = NEOPTR(pScrn); NEOPortPtr pPriv; XF86VideoAdaptorPtr overlayAdaptor; @@ -916,7 +916,7 @@ NEOInitOffscreenImages(ScreenPtr pScreen) XF86OffscreenImagePtr offscreenImages; #ifdef DEBUG - xf86DrvMsg(xf86Screens[pScreen->myNum]->scrnIndex,X_INFO,"NEOInitOffscreenImages\n"); + xf86DrvMsg(xf86ScreenToScrn(pScreen)->scrnIndex,X_INFO,"NEOInitOffscreenImages\n"); #endif if ((offscreenImages = malloc(sizeof(XF86OffscreenImageRec))) == NULL){ return; @@ -968,7 +968,7 @@ NEOAllocateMemory(ScrnInfoPtr pScrn, FBLinearPtr linear, int size) } - pScreen = screenInfo.screens[pScrn->scrnIndex]; + pScreen = xf86ScrnToScreen(pScrn); if ((new_linear = xf86AllocateOffscreenLinear(pScreen, size, 16, NULL, NULL, NULL)) == NULL){ int max_size; |