configure.ac | 19 ++++++++++ src/Makefile.am | 1 src/ark.h | 7 +++ src/ark_accel.c | 12 +++--- src/ark_driver.c | 60 ++++++++++++++++----------------- src/compat-api.h | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 160 insertions(+), 38 deletions(-)
New commits: commit 8d63c607ceab903dbe36eccf2315065e6830a47e Author: Dave Airlie <airl...@redhat.com> Date: Tue Jul 17 16:05:09 2012 +1000 xf86-video-ark: bump to version 0.7.5 Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/configure.ac b/configure.ac index 752ead8..c5fd78f 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-ark], - [0.7.4], + [0.7.5], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/ark], [xf86-video-ark]) AC_CONFIG_SRCDIR([Makefile.am]) commit daf57a350326ff886de77609702944ec939a3495 Author: Dave Airlie <airl...@redhat.com> Date: Tue Jul 17 14:51:38 2012 +1000 convert to new X screen conversion api Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/ark_accel.c b/src/ark_accel.c index 2ec5070..d279b2f 100644 --- a/src/ark_accel.c +++ b/src/ark_accel.c @@ -189,7 +189,7 @@ static void ARKSubsequentScreenToScreenCopy(ScrnInfoPtr pScrn, Bool ARKAccelInit(ScreenPtr pScreen) { #ifdef HAVE_XAA_H - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ARKPtr pARK = ARKPTR(pScrn); XAAInfoRecPtr pXAA; commit 8c29d34510d7dfd786660827a09d1d60454ea32a Author: Dave Airlie <airl...@redhat.com> Date: Tue Jul 17 13:59:15 2012 +1000 ark: update for compat X server ABI. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/Makefile.am b/src/Makefile.am index fdc7bea..813234b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -32,6 +32,7 @@ ark_drv_la_LDFLAGS = -module -avoid-version ark_drv_ladir = @moduledir@/drivers ark_drv_la_SOURCES = \ + compat-api.h \ ark_accel.c \ ark_driver.c \ ark.h \ diff --git a/src/ark.h b/src/ark.h index bee8d1a..ba94b1a 100644 --- a/src/ark.h +++ b/src/ark.h @@ -12,6 +12,7 @@ #endif #include "vgaHW.h" +#include "compat-api.h" #define PCI_VENDOR_ARK 0xEDD8 #define PCI_CHIP_1000PV 0xA091 #define PCI_CHIP_2000PV 0xA099 @@ -58,7 +59,7 @@ typedef struct _ARKRec { int ramdac; ARKRegRec SavedRegs; /* original mode */ ARKRegRec ModeRegs; /* current mode */ - Bool (*CloseScreen)(int, ScreenPtr); + Bool (*CloseScreen)(CLOSE_SCREEN_ARGS_DECL); } ARKRec, *ARKPtr; diff --git a/src/ark_driver.c b/src/ark_driver.c index d550f2e..b7c287c 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -62,19 +62,18 @@ static const OptionInfoRec * ARKAvailableOptions(int chipid, int busid); static void ARKIdentify(int flags); static Bool ARKProbe(DriverPtr drv, int flags); static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags); -static Bool ARKEnterVT(int scrnIndex, int flags); -static void ARKLeaveVT(int scrnIndex, int flags); +static Bool ARKEnterVT(VT_FUNC_ARGS_DECL); +static void ARKLeaveVT(VT_FUNC_ARGS_DECL); static void ARKSave(ScrnInfoPtr pScrn); -static Bool ARKScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, - char **argv); +static Bool ARKScreenInit(SCREEN_INIT_ARGS_DECL); static Bool ARKMapMem(ScrnInfoPtr pScrn); static void ARKUnmapMem(ScrnInfoPtr pScrn); static Bool ARKModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode); -static void ARKAdjustFrame(int scrnIndex, int x, int y, int flags); -Bool ARKSwitchMode(int scrnIndex, DisplayModePtr mode, int flags); -Bool ARKCloseScreen(int scrnIndex, ScreenPtr pScreen); +static void ARKAdjustFrame(ADJUST_FRAME_ARGS_DECL); +Bool ARKSwitchMode(SWITCH_MODE_ARGS_DECL); +Bool ARKCloseScreen(CLOSE_SCREEN_ARGS_DECL); Bool ARKSaveScreen(ScreenPtr pScreen, int mode); -static void ARKFreeScreen(int scrnIndex, int flags); +static void ARKFreeScreen(FREE_SCREEN_ARGS_DECL); static void ARKLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indicies, LOCO *colors, VisualPtr pVisual); @@ -476,10 +475,9 @@ static Bool ARKPreInit(ScrnInfoPtr pScrn, int flags) return TRUE; } -static Bool ARKScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, - char **argv) +static Bool ARKScreenInit(SCREEN_INIT_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ARKPtr pARK = ARKPTR(pScrn); pScrn->fbOffset = 0; @@ -498,7 +496,7 @@ static Bool ARKScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, ARKSaveScreen(pScreen, SCREEN_SAVER_ON); - pScrn->AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); miClearVisualTypes(); if (pScrn->bitsPerPixel > 8) { @@ -545,13 +543,13 @@ static Bool ARKScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, if (!pARK->NoAccel) { if (ARKAccelInit(pScreen)) { - xf86DrvMsg(scrnIndex, X_INFO, "Acceleration enabled\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Acceleration enabled\n"); } else { - xf86DrvMsg(scrnIndex, X_ERROR, "Acceleration initialization failed\n"); - xf86DrvMsg(scrnIndex, X_INFO, "Acceleration disabled\n"); + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Acceleration initialization failed\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Acceleration disabled\n"); } } else { - xf86DrvMsg(scrnIndex, X_INFO, "Acceleration disabled\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Acceleration disabled\n"); } miDCInitialize(pScreen, xf86GetPointerScreenFuncs()); @@ -889,9 +887,9 @@ static Bool ARKModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode) } -static void ARKAdjustFrame(int scrnIndex, int x, int y, int flags) +static void ARKAdjustFrame(ADJUST_FRAME_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); ARKPtr pARK = ARKPTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); unsigned long vgaIOBase = PIOOFFSET + hwp->IOBase; @@ -988,23 +986,23 @@ static void ARKWriteMode(ScrnInfoPtr pScrn, vgaRegPtr pVga, ARKRegPtr new) } -static Bool ARKEnterVT(int scrnIndex, int flags) +static Bool ARKEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); if (!ARKModeInit(pScrn, pScrn->currentMode)) return FALSE; - ARKAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + ARKAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); return TRUE; } -static void ARKLeaveVT(int scrnIndex, int flags) +static void ARKLeaveVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); ARKPtr pARK = ARKPTR(pScrn); ARKRegPtr old = &pARK->SavedRegs; vgaHWPtr hwp = VGAHWPTR(pScrn); @@ -1081,9 +1079,9 @@ static void ARKUnmapMem(ScrnInfoPtr pScrn) } -Bool ARKCloseScreen(int scrnIndex, ScreenPtr pScreen) +Bool ARKCloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ARKPtr pARK = ARKPTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); @@ -1099,7 +1097,7 @@ Bool ARKCloseScreen(int scrnIndex, ScreenPtr pScreen) /* XXX Shouldn't XAADestroyInfoRec() be called? */ - return (*pScreen->CloseScreen)(scrnIndex, pScreen); + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); } @@ -1109,9 +1107,10 @@ Bool ARKSaveScreen(ScreenPtr pScreen, int mode) } -Bool ARKSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +Bool ARKSwitchMode(SWITCH_MODE_ARGS_DECL) { - return ARKModeInit(xf86Screens[scrnIndex], mode); + SCRN_INFO_PTR(arg); + return ARKModeInit(pScrn, mode); } @@ -1135,9 +1134,9 @@ static void ARKLoadPalette(ScrnInfoPtr pScrn, int numColors, } -static void ARKFreeScreen(int scrnIndex, int flags) +static void ARKFreeScreen(FREE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); vgaHWFreeHWRec(pScrn); 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 commit 7f115c9df7431e73b558b18aba7b64a1e253bb0a Author: Dave Airlie <airl...@redhat.com> Date: Tue Jul 17 13:53:00 2012 +1000 ark: make build against XAA-less server. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/configure.ac b/configure.ac index 8d3d470..752ead8 100644 --- a/configure.ac +++ b/configure.ac @@ -70,6 +70,23 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.12.901]) 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]) DRIVER_NAME=ark AC_SUBST([DRIVER_NAME]) diff --git a/src/ark.h b/src/ark.h index 7462876..bee8d1a 100644 --- a/src/ark.h +++ b/src/ark.h @@ -7,7 +7,9 @@ #include "xf86.h" #include "xf86Pci.h" +#ifdef HAVE_XAA_H #include "xaa.h" +#endif #include "vgaHW.h" #define PCI_VENDOR_ARK 0xEDD8 @@ -46,7 +48,9 @@ typedef struct _ARKRec { unsigned int Flags; Bool NoAccel; CARD32 Bus; +#ifdef HAVE_XAA_H XAAInfoRecPtr pXAA; +#endif int Chipset, ChipRev; int clock_mult; int dac_width; diff --git a/src/ark_accel.c b/src/ark_accel.c index 5ab75f0..2ec5070 100644 --- a/src/ark_accel.c +++ b/src/ark_accel.c @@ -34,16 +34,14 @@ #include <X11/Xarch.h> #include "xf86.h" #include "xf86_OSproc.h" -#include "xaa.h" #include "compiler.h" #include "ark.h" #include "ark_reg.h" - +#ifdef HAVE_XAA_H static int curx, cury, cmd_flags; - static void ARKSync(ScrnInfoPtr pScrn) { unsigned long port = 0x3cb; @@ -186,10 +184,11 @@ static void ARKSubsequentScreenToScreenCopy(ScrnInfoPtr pScrn, BITBLT | cmd_flags); } - +#endif Bool ARKAccelInit(ScreenPtr pScreen) { +#ifdef HAVE_XAA_H ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ARKPtr pARK = ARKPTR(pScrn); XAAInfoRecPtr pXAA; @@ -228,4 +227,7 @@ Bool ARKAccelInit(ScreenPtr pScreen) LINEAR_DST_ADDR); return XAAInit(pScreen, pXAA); +#else + return FALSE; +#endif } diff --git a/src/ark_driver.c b/src/ark_driver.c index cda8cdc..d550f2e 100644 --- a/src/ark_driver.c +++ b/src/ark_driver.c @@ -37,7 +37,6 @@ #include "xf86fbman.h" #include "xf86cmap.h" #include "compiler.h" -#include "xaa.h" #include "mipointer.h" #include "micmap.h" #include "mibstore.h" -- 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/e1srugd-000536...@vasks.debian.org