diff options
author | Dave Airlie <airlied@redhat.com> | 2012-06-05 19:05:43 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-06-05 19:05:43 +0100 |
commit | 93f4ceaa288f639eef26d4c935a278f39b1cbcd6 (patch) | |
tree | 4cb1870c4945818a74d7c6b614668c4e6ac269e8 | |
parent | 2d23302d8249c5877a4ab784ba5d60eb0d5a384c (diff) |
chips: move to new compat API.
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | src/compat-api.h | 58 | ||||
-rw-r--r-- | src/ct_ddc.c | 2 | ||||
-rw-r--r-- | src/ct_dga.c | 8 | ||||
-rw-r--r-- | src/ct_driver.c | 80 | ||||
-rw-r--r-- | src/ct_driver.h | 8 | ||||
-rw-r--r-- | src/ct_shadow.c | 6 |
6 files changed, 108 insertions, 54 deletions
diff --git a/src/compat-api.h b/src/compat-api.h index 1bb7724..6bc946f 100644 --- a/src/compat-api.h +++ b/src/compat-api.h @@ -38,4 +38,62 @@ #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/ct_ddc.c b/src/ct_ddc.c index ab02d47..9f64826 100644 --- a/src/ct_ddc.c +++ b/src/ct_ddc.c @@ -96,7 +96,7 @@ chips_ddc1(ScrnInfoPtr pScrn) xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "DDC1 found\n"); else return; - xf86PrintEDID(xf86DoEDID_DDC1(pScrn->scrnIndex, vgaHWddc1SetSpeedWeak(), + xf86PrintEDID(xf86DoEDID_DDC1(XF86_SCRN_ARG(pScrn), vgaHWddc1SetSpeedWeak(), chips_ddc1Read)); /* restore */ diff --git a/src/ct_dga.c b/src/ct_dga.c index 47a0871..bed4df0 100644 --- a/src/ct_dga.c +++ b/src/ct_dga.c @@ -198,21 +198,21 @@ CHIPS_SetMode( /* put the ScreenParameters back */ if (cPtr->DGAactive) { pScrn->displayWidth = OldDisplayWidth[index]; - pScrn->EnterVT(pScrn->scrnIndex,0); + pScrn->EnterVT(VT_FUNC_ARGS); cPtr->DGAactive = FALSE; } } else { if(!cPtr->DGAactive) { /* save the old parameters */ OldDisplayWidth[index] = pScrn->displayWidth; - pScrn->LeaveVT(pScrn->scrnIndex,0); + pScrn->LeaveVT(VT_FUNC_ARGS); cPtr->DGAactive = TRUE; } pScrn->displayWidth = pMode->bytesPerScanline / (pMode->bitsPerPixel >> 3); - CHIPSSwitchMode(index, pMode->mode, 0); + CHIPSSwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode)); } return TRUE; @@ -243,7 +243,7 @@ CHIPS_SetViewport( while (!((hwp->readST01(hwp)) & 0x08)){}; } - CHIPSAdjustFrame(pScrn->pScreen->myNum, x, y, flags); + CHIPSAdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y)); cPtr->DGAViewportStatus = 0; /* CHIPSAdjustFrame loops until finished */ } diff --git a/src/ct_driver.c b/src/ct_driver.c index af80221..c0c3bce 100644 --- a/src/ct_driver.c +++ b/src/ct_driver.c @@ -146,13 +146,12 @@ static Bool CHIPSPciProbe(DriverPtr drv, int entity_num, static Bool CHIPSProbe(DriverPtr drv, int flags); #endif static Bool CHIPSPreInit(ScrnInfoPtr pScrn, int flags); -static Bool CHIPSScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); -static Bool CHIPSEnterVT(int scrnIndex, int flags); -static void CHIPSLeaveVT(int scrnIndex, int flags); -static Bool CHIPSCloseScreen(int scrnIndex, ScreenPtr pScreen); -static void CHIPSFreeScreen(int scrnIndex, int flags); -static ModeStatus CHIPSValidMode(int scrnIndex, DisplayModePtr mode, +static Bool CHIPSScreenInit(SCREEN_INIT_ARGS_DECL); +static Bool CHIPSEnterVT(VT_FUNC_ARGS_DECL); +static void CHIPSLeaveVT(VT_FUNC_ARGS_DECL); +static Bool CHIPSCloseScreen(CLOSE_SCREEN_ARGS_DECL); +static void CHIPSFreeScreen(FREE_SCREEN_ARGS_DECL); +static ModeStatus CHIPSValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags); static Bool CHIPSSaveScreen(ScreenPtr pScreen, int mode); @@ -202,7 +201,7 @@ static void chipsLoadPalette(ScrnInfoPtr pScrn, int numColors, static void chipsLoadPalette16(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, VisualPtr pVisual); static void chipsSetPanelType(CHIPSPtr cPtr); -static void chipsBlockHandler(int, pointer, pointer, pointer); +static void chipsBlockHandler(BLOCKHANDLER_ARGS_DECL); /* * This is intentionally screen-independent. It indicates the binding @@ -1918,7 +1917,7 @@ chipsPreInitHiQV(ScrnInfoPtr pScrn, int flags) if (!ddc_done) if (xf86LoadSubModule(pScrn, "i2c")) { if (chips_i2cInit(pScrn)) { - if ((pMon = xf86PrintEDID(xf86DoEDID_DDC2(pScrn->scrnIndex, + if ((pMon = xf86PrintEDID(xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn), cPtr->I2C))) != NULL) ddc_done = TRUE; xf86SetDDCproperties(pScrn,pMon); @@ -3675,9 +3674,9 @@ chipsPreInit655xx(ScrnInfoPtr pScrn, int flags) /* Mandatory */ static Bool -CHIPSEnterVT(int scrnIndex, int flags) +CHIPSEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); CHIPSPtr cPtr = CHIPSPTR(pScrn); CHIPSEntPtr cPtrEnt; @@ -3697,16 +3696,16 @@ CHIPSEnterVT(int scrnIndex, int flags) chipsHWCursorOn(cPtr, pScrn); /* cursor settle delay */ usleep(50000); - CHIPSAdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + CHIPSAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); usleep(50000); return TRUE; } /* Mandatory */ static void -CHIPSLeaveVT(int scrnIndex, int flags) +CHIPSLeaveVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); CHIPSPtr cPtr = CHIPSPTR(pScrn); CHIPSACLPtr cAcl = CHIPSACLPTR(pScrn); CHIPSEntPtr cPtrEnt; @@ -3848,7 +3847,7 @@ chipsLoadPalette16(ScrnInfoPtr pScrn, int numColors, int *indices, /* Mandatory */ static Bool -CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +CHIPSScreenInit(SCREEN_INIT_ARGS_DECL) { ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); vgaHWPtr hwp; @@ -3938,7 +3937,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (!chipsModeInit(pScrn,pScrn->currentMode)) return FALSE; CHIPSSaveScreen(pScreen,SCREEN_SAVER_ON); - CHIPSAdjustFrame(pScrn->scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + CHIPSAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); /* * The next step is to setup the screen's visuals, and initialise the @@ -4162,7 +4161,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) } else currentaddr = allocatebase; if (serverGeneration == 1) - xf86DrvMsg(scrnIndex, X_PROBED, + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "%d bytes off-screen memory available\n", freespace); /* @@ -4187,7 +4186,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) cAcl->CursorAddress = currentaddr; } if (cAcl->CursorAddress == -1) - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Too little space for H/W cursor.\n"); } @@ -4247,7 +4246,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) cAcl->CacheEnd = currentaddr; if (cAcl->CacheStart >= cAcl->CacheEnd) { - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Too little space for pixmap cache.\n"); cAcl->CacheStart = 0; cAcl->CacheEnd = 0; @@ -4298,7 +4297,7 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if ((cAcl->UseHWCursor) && (cAcl->CursorAddress != -1)) { /* HW cursor functions */ if (!CHIPSCursorInit(pScreen)) { - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Hardware cursor initialization failed\n"); return FALSE; } @@ -4371,9 +4370,9 @@ CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Mandatory */ Bool -CHIPSSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +CHIPSSwitchMode(SWITCH_MODE_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); CHIPSPtr cPtr = CHIPSPTR(pScrn); CHIPSEntPtr cPtrEnt; @@ -4386,14 +4385,14 @@ CHIPSSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) DUALREOPEN; } - return chipsModeInit(xf86Screens[scrnIndex], mode); + return chipsModeInit(pScrn, mode); } /* Mandatory */ void -CHIPSAdjustFrame(int scrnIndex, int x, int y, int flags) +CHIPSAdjustFrame(ADJUST_FRAME_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); CHIPSPtr cPtr = CHIPSPTR(pScrn); CHIPSEntPtr cPtrEnt; @@ -4478,9 +4477,9 @@ CHIPSAdjustFrame(int scrnIndex, int x, int y, int flags) /* Mandatory */ static Bool -CHIPSCloseScreen(int scrnIndex, ScreenPtr pScreen) +CHIPSCloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); CHIPSPtr cPtr = CHIPSPTR(pScrn); CHIPSEntPtr cPtrEnt; @@ -4518,23 +4517,24 @@ CHIPSCloseScreen(int scrnIndex, ScreenPtr pScreen) pScreen->CloseScreen = cPtr->CloseScreen; /*§§§*/ xf86ClearPrimInitDone(pScrn->entityList[0]); - return (*pScreen->CloseScreen)(scrnIndex, pScreen);/*§§§*/ + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);/*§§§*/ } /* Optional */ static void -CHIPSFreeScreen(int scrnIndex, int flags) +CHIPSFreeScreen(FREE_SCREEN_ARGS_DECL) { + SCRN_INFO_PTR(arg); if (xf86LoaderCheckSymbol("vgaHWFreeHWRec")) - vgaHWFreeHWRec(xf86Screens[scrnIndex]); - CHIPSFreeRec(xf86Screens[scrnIndex]); + vgaHWFreeHWRec(pScrn); + CHIPSFreeRec(pScrn); } /* Optional */ static ModeStatus -CHIPSValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) +CHIPSValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); CHIPSPtr cPtr = CHIPSPTR(pScrn); /* The tests here need to be expanded */ @@ -7477,18 +7477,14 @@ chipsSetPanelType(CHIPSPtr cPtr) } static void -chipsBlockHandler ( - int i, - pointer blockData, - pointer pTimeout, - pointer pReadmask -){ - ScreenPtr pScreen = screenInfo.screens[i]; - ScrnInfoPtr pScrn = xf86Screens[i]; +chipsBlockHandler (BLOCKHANDLER_ARGS_DECL) +{ + SCREEN_PTR(arg); + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); CHIPSPtr cPtr = CHIPSPTR(pScrn); pScreen->BlockHandler = cPtr->BlockHandler; - (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask); + (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS); pScreen->BlockHandler = chipsBlockHandler; if(cPtr->VideoTimerCallback) { diff --git a/src/ct_driver.h b/src/ct_driver.h index f07555a..cbb7da3 100644 --- a/src/ct_driver.h +++ b/src/ct_driver.h @@ -291,7 +291,7 @@ typedef struct _CHIPSRec { unsigned char * ShadowPtr; int ShadowPitch; int Rotate; - void (*PointerMoved)(int index, int x, int y); + void (*PointerMoved)(SCRN_ARG_TYPE arg, int x, int y); int FbOffset16; int FbSize16; OptionInfoPtr Options; @@ -384,8 +384,8 @@ extern unsigned int ChipsReg32HiQV[]; /* Prototypes */ -void CHIPSAdjustFrame(int scrnIndex, int x, int y, int flags); -Bool CHIPSSwitchMode(int scrnIndex, DisplayModePtr mode, int flags); +void CHIPSAdjustFrame(ADJUST_FRAME_ARGS_DECL); +Bool CHIPSSwitchMode(SWITCH_MODE_ARGS_DECL); /* video */ void CHIPSInitVideo(ScreenPtr pScreen); @@ -434,7 +434,7 @@ void chipsRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox); void chipsRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox); void chipsRefreshArea24(ScrnInfoPtr pScrn, int num, BoxPtr pbox); void chipsRefreshArea32(ScrnInfoPtr pScrn, int num, BoxPtr pbox); -void chipsPointerMoved(int index, int x, int y); +void chipsPointerMoved(SCRN_ARG_TYPE arg, int x, int y); #if X_BYTE_ORDER == X_BIG_ENDIAN # define BE_SWAP_APRETURE(pScrn,cPtr) \ diff --git a/src/ct_shadow.c b/src/ct_shadow.c index 896eac3..ad089d9 100644 --- a/src/ct_shadow.c +++ b/src/ct_shadow.c @@ -39,9 +39,9 @@ chipsRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox) } void -chipsPointerMoved(int index, int x, int y) +chipsPointerMoved(SCRN_ARG_TYPE arg, int x, int y) { - ScrnInfoPtr pScrn = xf86Screens[index]; + SCRN_INFO_PTR(arg); CHIPSPtr cPtr = CHIPSPTR(pScrn); int newX, newY; @@ -53,7 +53,7 @@ chipsPointerMoved(int index, int x, int y) newY = pScrn->pScreen->width - x - 1; } - (*cPtr->PointerMoved)(index, newX, newY); + (*cPtr->PointerMoved)(arg, newX, newY); } void |