summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2012-06-05 19:05:43 +0100
committerDave Airlie <airlied@redhat.com>2012-06-05 19:05:43 +0100
commit93f4ceaa288f639eef26d4c935a278f39b1cbcd6 (patch)
tree4cb1870c4945818a74d7c6b614668c4e6ac269e8
parent2d23302d8249c5877a4ab784ba5d60eb0d5a384c (diff)
chips: move to new compat API.
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--src/compat-api.h58
-rw-r--r--src/ct_ddc.c2
-rw-r--r--src/ct_dga.c8
-rw-r--r--src/ct_driver.c80
-rw-r--r--src/ct_driver.h8
-rw-r--r--src/ct_shadow.c6
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