diff options
author | Dave Airlie <airlied@gmail.com> | 2012-07-16 19:08:25 +1000 |
---|---|---|
committer | Dave Airlie <airlied@gmail.com> | 2012-07-16 19:08:25 +1000 |
commit | 880187727ca6125d6332346ec740fe36ef577910 (patch) | |
tree | d835f744f88036b63271fff1d0d1277f374f5e0a | |
parent | 909da5737b3adb3193ccd829969e7bfee71e258a (diff) |
tseng: fix XAA-less server build
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | configure.ac | 18 | ||||
-rw-r--r-- | src/tseng.h | 4 | ||||
-rw-r--r-- | src/tseng_accel.c | 7 | ||||
-rw-r--r-- | src/tseng_dga.c | 17 | ||||
-rw-r--r-- | src/tseng_driver.c | 2 |
5 files changed, 44 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac index 8458c06..667e64f 100644 --- a/configure.ac +++ b/configure.ac @@ -78,6 +78,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]) DRIVER_NAME=tseng diff --git a/src/tseng.h b/src/tseng.h index c6a51b7..2e05090 100644 --- a/src/tseng.h +++ b/src/tseng.h @@ -35,8 +35,10 @@ #include "fb.h" /* Drivers using the XAA interface ... */ +#ifdef HAVE_XAA_H #include "xaa.h" #include "xaalocal.h" +#endif #include "xf86Cursor.h" #include "xf86fbman.h" @@ -137,7 +139,9 @@ typedef struct { int max_vco_freq; /* ET6000: max internal VCO frequency */ CloseScreenProcPtr CloseScreen; int save_divide; +#ifdef HAVE_XAA_H XAAInfoRecPtr AccelInfoRec; +#endif xf86CursorInfoPtr CursorInfoRec; CARD32 AccelColorBufferOffset; /* offset in video memory where FG and BG colors will be stored */ CARD32 AccelColorExpandBufferOffsets[3]; /* offset in video memory for ColorExpand buffers */ diff --git a/src/tseng_accel.c b/src/tseng_accel.c index adeaf24..3edf001 100644 --- a/src/tseng_accel.c +++ b/src/tseng_accel.c @@ -26,6 +26,7 @@ #include "tseng.h" #include "tseng_accel.h" +#ifdef HAVE_XAA_H #include "miline.h" /* @@ -1257,6 +1258,7 @@ TsengSubsequentFillTrapezoidSolid(ytop, height, left, dxL, dyL, eL, right, dxR, #endif +#endif /* * The following function sets up the supported acceleration. Call it from @@ -1266,6 +1268,7 @@ TsengSubsequentFillTrapezoidSolid(ytop, height, left, dxL, dyL, eL, right, dxR, Bool TsengXAAInit(ScreenPtr pScreen) { +#ifdef HAVE_XAA_H ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TsengPtr pTseng = TsengPTR(pScrn); XAAInfoRecPtr pXAAinfo; @@ -1542,5 +1545,7 @@ TsengXAAInit(ScreenPtr pScreen) xf86InitFBManager(pScreen, &AvailFBArea); return (XAAInit(pScreen, pXAAinfo)); - +#else + return FALSE; +#endif } diff --git a/src/tseng_dga.c b/src/tseng_dga.c index c0a85a5..72baf09 100644 --- a/src/tseng_dga.c +++ b/src/tseng_dga.c @@ -36,12 +36,14 @@ static Bool Tseng_SetMode(ScrnInfoPtr, DGAModePtr); static void Tseng_Sync(ScrnInfoPtr); static int Tseng_GetViewport(ScrnInfoPtr); static void Tseng_SetViewport(ScrnInfoPtr, int, int, int); +#ifdef HAVE_XAA_H static void Tseng_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long); static void Tseng_BlitRect(ScrnInfoPtr, int, int, int, int, int, int); /* static void Tseng_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int, unsigned long); */ +#endif static DGAFunctionRec TsengDGAFuncs = { @@ -51,9 +53,13 @@ DGAFunctionRec TsengDGAFuncs = { Tseng_SetViewport, Tseng_GetViewport, Tseng_Sync, +#ifdef HAVE_XAA_H Tseng_FillRect, Tseng_BlitRect, NULL /* Tseng_BlitTransRect */ +#else + NULL, NULL, NULL +#endif }; @@ -84,8 +90,10 @@ TsengDGAInit(ScreenPtr pScreen) num++; (void)memset(currentMode, 1, sizeof(DGAModeRec)); currentMode->mode = pMode; - currentMode->flags = DGA_PIXMAP_AVAILABLE - | ((pTseng->UseAccel) ? (DGA_FILL_RECT | DGA_BLIT_RECT) : 0); + currentMode->flags = DGA_PIXMAP_AVAILABLE; +#ifdef HAVE_XAA_H + currentMode->flags |= ((pTseng->UseAccel) ? (DGA_FILL_RECT | DGA_BLIT_RECT) : 0); +#endif if (pMode->Flags & V_DBLSCAN) currentMode->flags |= DGA_DOUBLESCAN; if(pMode->Flags & V_INTERLACE) @@ -205,12 +213,14 @@ Tseng_Sync( ScrnInfoPtr pScrn ){ TsengPtr pTseng = TsengPTR(pScrn); - +#ifdef HAVE_XAA_H if(pTseng->AccelInfoRec) { (*pTseng->AccelInfoRec->Sync)(pScrn); } +#endif } +#ifdef HAVE_XAA_H static void Tseng_FillRect ( ScrnInfoPtr pScrn, @@ -246,3 +256,4 @@ Tseng_BlitRect( SET_SYNC_FLAG(pTseng->AccelInfoRec); } } +#endif diff --git a/src/tseng_driver.c b/src/tseng_driver.c index 0c04e54..ffafb19 100644 --- a/src/tseng_driver.c +++ b/src/tseng_driver.c @@ -1545,8 +1545,10 @@ TsengCloseScreen(CLOSE_SCREEN_ARGS_DECL) &(pTseng->SavedReg),VGA_SR_ALL); TsengUnmapMem(pScrn); } +#ifdef HAVE_XAA_H if (pTseng->AccelInfoRec) XAADestroyInfoRec(pTseng->AccelInfoRec); +#endif if (pTseng->CursorInfoRec) xf86DestroyCursorInfoRec(pTseng->CursorInfoRec); |