.gitignore | 84 +++++++++-- COPYING | 95 ++++++++++++- ChangeLog | 354 ++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile.am | 16 -- README | 159 ++++++++++++++++++++++ README.r128 | 160 ---------------------- README.r128.sgml | 138 ------------------- configure.ac | 77 ++++++---- debian/changelog | 13 + debian/control | 6 debian/patches/series | 1 man/Makefile.am | 63 +++----- man/r128.man | 1 src/Makefile.am | 1 src/atipcirename.h | 27 +++ src/compat-api.h | 99 +++++++++++++ src/r128.h | 30 ++-- src/r128_accel.c | 40 ++++- src/r128_cursor.c | 4 src/r128_dga.c | 32 ++-- src/r128_dri.c | 76 ++++++---- src/r128_driver.c | 203 +++++++++++++--------------- src/r128_misc.c | 3 src/r128_probe.c | 10 - src/r128_probe.h | 14 - src/r128_video.c | 22 +-- 26 files changed, 1113 insertions(+), 615 deletions(-)
New commits: commit 1592e880e50acceb83883bdbcd55197cda50059d Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Wed Jul 18 16:17:18 2012 +0200 Add missing misc:Depends to shut up lintian diff --git a/debian/control b/debian/control index eba422e..45eec5e 100644 --- a/debian/control +++ b/debian/control @@ -46,7 +46,9 @@ Description: X.Org X server -- ATI r128 display driver Package: xserver-xorg-video-r128-dbg Architecture: any -Depends: xserver-xorg-video-r128 (= ${binary:Version}) +Depends: + xserver-xorg-video-r128 (= ${binary:Version}), + ${misc:Depends}, Section: debug Priority: extra Description: X.Org X server -- ATI r128 display driver (debugging symbols) commit 10ff322effd588ae9ece92e19a3885915d959eae Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Wed Jul 18 16:15:03 2012 +0200 Bump Standards-Version to 3.9.3 diff --git a/debian/changelog b/debian/changelog index f8774b1..ef69746 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ xserver-xorg-video-r128 (6.8.4-1) UNRELEASED; urgency=low * New upstream release. + * Bump Standards-Version to 3.9.3 -- Maarten Lankhorst <maarten.lankho...@canonical.com> Wed, 18 Jul 2012 16:13:52 +0200 diff --git a/debian/control b/debian/control index 5567265..eba422e 100644 --- a/debian/control +++ b/debian/control @@ -21,7 +21,7 @@ Build-Depends: x11proto-xf86dri-dev, quilt, xutils-dev -Standards-Version: 3.9.1 +Standards-Version: 3.9.3 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-r128 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-r128.git diff --git a/debian/patches/series b/debian/patches/series index e69de29..fdffa2a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -0,0 +1 @@ +# placeholder commit 1dd257e2ae08b4ecf373431b1e1cb05c5421bf73 Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Wed Jul 18 16:14:41 2012 +0200 New upstream release. diff --git a/debian/changelog b/debian/changelog index 499a397..f8774b1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-r128 (6.8.4-1) UNRELEASED; urgency=low + + * New upstream release. + + -- Maarten Lankhorst <maarten.lankho...@canonical.com> Wed, 18 Jul 2012 16:13:52 +0200 + xserver-xorg-video-r128 (6.8.2-1) unstable; urgency=low * New upstream release. commit c0418e1fb0407fcdfa665386ddd33ebad219d7a8 Author: Maarten Lankhorst <maarten.lankho...@canonical.com> Date: Wed Jul 18 16:13:46 2012 +0200 Bump changelog. diff --git a/ChangeLog b/ChangeLog index eb9ceaf..bb89291 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,37 @@ +commit a4231073010096f689df72c1f8f1453852f28d81 +Author: Dave Airlie <airl...@redhat.com> +Date: Tue Jul 17 16:05:09 2012 +1000 + + xf86-video-r128: bump to version 6.8.4 + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit 16df5622c550c64711a25a9d8ece9152c3047a94 +Author: Dave Airlie <airl...@gmail.com> +Date: Sun Jul 15 17:14:10 2012 +1000 + + r128: drop XAA support. + + this just makes XAA conditional. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit 734e9ff97b81af732ab7065761212e8eb8f6aa3c +Author: Dave Airlie <airl...@redhat.com> +Date: Mon Jul 2 12:26:11 2012 +0100 + + r128: bump 6.8.3 release + + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit b027633fcfc0e226b78036e27c66ccd76542e43f +Author: Dave Airlie <airl...@redhat.com> +Date: Wed Jun 6 11:02:27 2012 +0100 + + r128: port to new compat API. + + Signed-off-by: Dave Airlie <airl...@redhat.com> + commit 1ac4cd4b41d0e8232660df78ff136df1214f3907 Author: Alan Coopersmith <alan.coopersm...@oracle.com> Date: Fri Mar 23 19:23:54 2012 -0700 commit a4231073010096f689df72c1f8f1453852f28d81 Author: Dave Airlie <airl...@redhat.com> Date: Tue Jul 17 16:05:09 2012 +1000 xf86-video-r128: bump to version 6.8.4 Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/configure.ac b/configure.ac index 6c4f5d9..e45a402 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-r128], - [6.8.3], + [6.8.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-r128]) AC_CONFIG_SRCDIR([Makefile.am]) commit 16df5622c550c64711a25a9d8ece9152c3047a94 Author: Dave Airlie <airl...@gmail.com> Date: Sun Jul 15 17:14:10 2012 +1000 r128: drop XAA support. this just makes XAA conditional. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/configure.ac b/configure.ac index 8049006..6c4f5d9 100644 --- a/configure.ac +++ b/configure.ac @@ -117,6 +117,24 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS, [#include "xorg-server.h"]) CPPFLAGS="$SAVE_CPPFLAGS" +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]) + AM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes) if test "x$XSERVER_LIBPCIACCESS" = xyes; then diff --git a/src/r128.h b/src/r128.h index 3c51879..bee1562 100644 --- a/src/r128.h +++ b/src/r128.h @@ -44,7 +44,10 @@ #include "xf86Pci.h" /* XAA and Cursor Support */ +#ifdef HAVE_XAA_H #include "xaa.h" +#endif +#include "xf86fbman.h" #include "xf86Cursor.h" /* DDC support */ @@ -65,6 +68,8 @@ #include "GL/glxint.h" #endif +#include "fb.h" + #include "compat-api.h" #include "atipcirename.h" @@ -276,7 +281,9 @@ typedef struct { Bool PaletteSavedOnVT; /* Palette saved on last VT switch */ +#ifdef HAVE_XAA_H XAAInfoRecPtr accel; +#endif Bool accelOn; xf86CursorInfoPtr cursor; unsigned long cursor_start; diff --git a/src/r128_accel.c b/src/r128_accel.c index 7708bda..defc076 100644 --- a/src/r128_accel.c +++ b/src/r128_accel.c @@ -101,6 +101,7 @@ /* X and server generic header files */ #include "xf86.h" +#ifdef HAVE_XAA_H static struct { int rop; int pattern; @@ -122,6 +123,7 @@ static struct { { R128_ROP3_DSan, R128_ROP3_DPan }, /* GXnand */ { R128_ROP3_ONE, R128_ROP3_ONE } /* GXset */ }; +#endif extern int getR128EntityIndex(void); @@ -317,6 +319,7 @@ int R128CCEStop(ScrnInfoPtr pScrn) #endif +#ifdef HAVE_XAA_H /* Setup for XAA SolidFill. */ static void R128SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop, unsigned int planemask) @@ -1006,6 +1009,7 @@ static void R128SubsequentImageWriteScanline(ScrnInfoPtr pScrn, int bufno) } } } +#endif /* Initialize the acceleration hardware. */ void R128EngineInit(ScrnInfoPtr pScrn) @@ -1098,6 +1102,8 @@ void R128EngineInit(ScrnInfoPtr pScrn) #ifdef R128DRI +#ifdef HAVE_XAA_H + /* Setup for XAA SolidFill. */ static void R128CCESetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop, @@ -1540,6 +1546,7 @@ static void R128CCESubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn, ADVANCE_RING(); } +#endif /* Get an indirect buffer for the CCE 2D acceleration commands. */ @@ -1634,6 +1641,7 @@ void R128CCEFlushIndirect( ScrnInfoPtr pScrn, int discard ) info->indirectStart = buffer->used; } +#ifdef HAVE_XAA_H /* Flush and release the indirect buffer. */ void R128CCEReleaseIndirect( ScrnInfoPtr pScrn ) @@ -1743,7 +1751,9 @@ static void R128CCEAccelInit(ScrnInfoPtr pScrn, XAAInfoRecPtr a) } #endif +#endif +#ifdef HAVE_XAA_H /* This callback is required for multihead cards using XAA */ static void R128RestoreAccelState(ScrnInfoPtr pScrn) @@ -1857,11 +1867,15 @@ static void R128MMIOAccelInit(ScrnInfoPtr pScrn, XAAInfoRecPtr a) } } +#endif /* Initialize XAA for supported acceleration and also initialize the graphics hardware for acceleration. */ Bool R128AccelInit(ScreenPtr pScreen) { +#ifndef HAVE_XAA_H + return FALSE; +#else ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); XAAInfoRecPtr a; @@ -1880,4 +1894,5 @@ Bool R128AccelInit(ScreenPtr pScreen) R128EngineInit(pScrn); return XAAInit(pScreen, a); +#endif } diff --git a/src/r128_dga.c b/src/r128_dga.c index 71e1b42..d7fee02 100644 --- a/src/r128_dga.c +++ b/src/r128_dga.c @@ -29,10 +29,12 @@ static Bool R128_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **, static Bool R128_SetMode(ScrnInfoPtr, DGAModePtr); static int R128_GetViewport(ScrnInfoPtr); static void R128_SetViewport(ScrnInfoPtr, int, int, int); +#ifdef HAVE_XAA_H static void R128_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long); static void R128_BlitRect(ScrnInfoPtr, int, int, int, int, int, int); static void R128_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int, unsigned long); +#endif static DGAModePtr R128SetupDGAMode(ScrnInfoPtr pScrn, DGAModePtr modes, @@ -81,6 +83,7 @@ SECOND_PASS: if (pixmap) currentMode->flags |= DGA_PIXMAP_AVAILABLE; +#ifdef HAVE_XAA_H if (info->accel) { if (info->accel->SetupForSolidFill && info->accel->SubsequentSolidFillRect) @@ -93,6 +96,7 @@ SECOND_PASS: DGA_BLIT_RECT | DGA_BLIT_RECT_TRANS)) currentMode->flags &= ~DGA_CONCURRENT_ACCESS; } +#endif if (pMode->Flags & V_DBLSCAN) currentMode->flags |= DGA_DOUBLESCAN; if (pMode->Flags & V_INTERLACE) @@ -211,6 +215,7 @@ R128DGAInit(ScreenPtr pScreen) info->DGAFuncs.BlitRect = NULL; info->DGAFuncs.BlitTransRect = NULL; +#ifdef HAVE_XAA_H if (info->accel) { info->DGAFuncs.Sync = info->accel->Sync; if (info->accel->SetupForSolidFill && @@ -222,6 +227,7 @@ R128DGAInit(ScreenPtr pScreen) info->DGAFuncs.BlitTransRect = R128_BlitTransRect; } } +#endif return DGAInit(pScreen, &(info->DGAFuncs), modes, num); } @@ -317,7 +323,7 @@ R128_SetViewport( info->DGAViewportStatus = 0; /* FIXME */ } - +#ifdef HAVE_XAA_H static void R128_FillRect ( ScrnInfoPtr pScrn, @@ -379,7 +385,7 @@ R128_BlitTransRect( if (pScrn->bitsPerPixel == info->CurrentLayout.bitsPerPixel) SET_SYNC_FLAG(info->accel); } - +#endif static Bool R128_OpenFramebuffer( diff --git a/src/r128_dri.c b/src/r128_dri.c index 4f318ef..09b3cff 100644 --- a/src/r128_dri.c +++ b/src/r128_dri.c @@ -301,10 +301,11 @@ static void R128DestroyContext(ScreenPtr pScreen, drm_context_t hwContext, can start/stop the engine. */ static void R128EnterServer(ScreenPtr pScreen) { +#ifdef HAVE_XAA_H ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); - if (info->accel) info->accel->NeedToSync = TRUE; +#endif } /* Called when the X server goes to sleep to allow the X server's @@ -358,9 +359,11 @@ static void R128DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 indx) ScreenPtr pScreen = pWin->drawable.pScreen; ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); +#ifdef HAVE_XAA_H BoxPtr pbox, pboxSave; int nbox, nboxSave; int depth; +#endif /* FIXME: Use accel when CCE 2D code is written * EA: What is this code kept for? Radeon doesn't have it and @@ -369,7 +372,7 @@ static void R128DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 indx) */ if (info->directRenderingEnabled) return; - +#ifdef HAVE_XAA_H /* FIXME: This should be based on the __GLXvisualConfig info */ switch (pScrn->bitsPerPixel) { case 8: depth = 0x000000ff; break; @@ -413,6 +416,7 @@ static void R128DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 indx) pbox->y2 - pbox->y1); info->accel->NeedToSync = TRUE; +#endif } /* Copy the back and depth buffers when the X server moves a window. */ @@ -1386,8 +1390,10 @@ void R128DRICloseScreen(ScreenPtr pScreen) static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox) { +#ifdef HAVE_XAA_H R128InfoPtr info = R128PTR(pScrn); int i; +#endif R128SAREAPrivPtr pSAREAPriv = DRIGetSAREAPrivate(pScrn->pScreen); /* Don't want to do this when no 3d is active and pages are @@ -1396,6 +1402,7 @@ static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox) if (!pSAREAPriv->pfAllowPageFlip && pSAREAPriv->pfCurrentPage == 0) return; +#ifdef HAVE_XAA_H (*info->accel->SetupForScreenToScreenCopy)(pScrn, 1, 1, GXcopy, (CARD32)(-1), -1); @@ -1412,10 +1419,12 @@ static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox) yb - ya + 1); } } +#endif } static void R128EnablePageFlip(ScreenPtr pScreen) { +#ifdef HAVE_XAA_H ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); R128SAREAPrivPtr pSAREAPriv = DRIGetSAREAPrivate(pScreen); @@ -1436,6 +1445,7 @@ static void R128EnablePageFlip(ScreenPtr pScreen) pSAREAPriv->pfAllowPageFlip = 1; } +#endif } static void R128DisablePageFlip(ScreenPtr pScreen) diff --git a/src/r128_driver.c b/src/r128_driver.c index bfa3dfd..9714896 100644 --- a/src/r128_driver.c +++ b/src/r128_driver.c @@ -78,8 +78,6 @@ #include "r128_sarea.h" #endif -#include "fb.h" - /* colormap initialization */ #include "micmap.h" @@ -4298,8 +4296,10 @@ static Bool R128CloseScreen(CLOSE_SCREEN_ARGS_DECL) R128UnmapMem(pScrn); } +#ifdef HAVE_XAA_H if (info->accel) XAADestroyInfoRec(info->accel); info->accel = NULL; +#endif if (info->scratch_save) free(info->scratch_save); info->scratch_save = NULL; commit 734e9ff97b81af732ab7065761212e8eb8f6aa3c Author: Dave Airlie <airl...@redhat.com> Date: Mon Jul 2 12:26:11 2012 +0100 r128: bump 6.8.3 release Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/configure.ac b/configure.ac index ecbe3d3..8049006 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-r128], - [6.8.2], + [6.8.3], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-r128]) AC_CONFIG_SRCDIR([Makefile.am]) commit b027633fcfc0e226b78036e27c66ccd76542e43f Author: Dave Airlie <airl...@redhat.com> Date: Wed Jun 6 11:02:27 2012 +0100 r128: port to new compat API. Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/src/Makefile.am b/src/Makefile.am index df7c65c..f8bc8d1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -40,6 +40,7 @@ r128_drv_la_SOURCES = \ r128_video.c r128_misc.c r128_probe.c $(R128_DRI_SRCS) EXTRA_DIST = \ + compat-api.h \ r128_common.h \ r128_dri.h \ r128_dripriv.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 <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 diff --git a/src/r128.h b/src/r128.h index fcef00c..3c51879 100644 --- a/src/r128.h +++ b/src/r128.h @@ -53,8 +53,6 @@ /* Xv support */ #include "xf86xv.h" -#include "r128_probe.h" - /* DRI support */ #ifndef XF86DRI #undef R128DRI @@ -67,8 +65,11 @@ #include "GL/glxint.h" #endif +#include "compat-api.h" #include "atipcirename.h" +#include "r128_probe.h" + #define R128_DEBUG 0 /* Turn off debugging output */ #define R128_IDLE_RETRY 32 /* Fall out of idle loops after this count */ #define R128_TIMEOUT 2000000 /* Fall out of wait loops after this count */ @@ -270,8 +271,8 @@ typedef struct { R128SaveRec SavedReg; /* Original (text) mode */ R128SaveRec ModeReg; /* Current mode */ - Bool (*CloseScreen)(int, ScreenPtr); - void (*BlockHandler)(int, pointer, pointer, pointer); + Bool (*CloseScreen)(CLOSE_SCREEN_ARGS_DECL); + void (*BlockHandler)(BLOCKHANDLER_ARGS_DECL); Bool PaletteSavedOnVT; /* Palette saved on last VT switch */ diff --git a/src/r128_accel.c b/src/r128_accel.c index 056b0b3..7708bda 100644 --- a/src/r128_accel.c +++ b/src/r128_accel.c @@ -1862,7 +1862,7 @@ static void R128MMIOAccelInit(ScrnInfoPtr pScrn, XAAInfoRecPtr a) graphics hardware for acceleration. */ Bool R128AccelInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); XAAInfoRecPtr a; diff --git a/src/r128_cursor.c b/src/r128_cursor.c index 8321284..62d277d 100644 --- a/src/r128_cursor.c +++ b/src/r128_cursor.c @@ -241,7 +241,7 @@ static void R128ShowCursor(ScrnInfoPtr pScrn) /* Determine if hardware cursor is in use. */ static Bool R128UseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); return info->cursor_start ? TRUE : FALSE; @@ -250,7 +250,7 @@ static Bool R128UseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) /* Initialize hardware cursor support. */ Bool R128CursorInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); xf86CursorInfoPtr cursor; FBAreaPtr fbarea; diff --git a/src/r128_dga.c b/src/r128_dga.c index 1c8a8dd..71e1b42 100644 --- a/src/r128_dga.c +++ b/src/r128_dga.c @@ -142,7 +142,7 @@ SECOND_PASS: Bool R128DGAInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); DGAModePtr modes = NULL; int num = 0; @@ -243,7 +243,7 @@ R128_SetMode( pScrn->currentMode = info->CurrentLayout.mode; - pScrn->SwitchMode(indx, pScrn->currentMode, 0); + pScrn->SwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); #ifdef R128DRI if (info->directRenderingEnabled) { R128CCE_STOP(pScrn, info); @@ -256,7 +256,7 @@ R128_SetMode( R128CCE_START(pScrn, info); } #endif - pScrn->AdjustFrame(indx, 0, 0, 0); + pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, 0, 0)); info->DGAactive = FALSE; } else { if(!info->DGAactive) { /* save the old parameters */ @@ -274,7 +274,7 @@ R128_SetMode( : pMode->depth); /* R128ModeInit() will set the mode field */ - pScrn->SwitchMode(indx, pMode->mode, 0); + pScrn->SwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode)); #ifdef R128DRI if (info->directRenderingEnabled) { @@ -313,7 +313,7 @@ R128_SetViewport( ){ R128InfoPtr info = R128PTR(pScrn); - pScrn->AdjustFrame(pScrn->pScreen->myNum, x, y, flags); + pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y)); info->DGAViewportStatus = 0; /* FIXME */ } diff --git a/src/r128_dri.c b/src/r128_dri.c index 624e3a5..4f318ef 100644 --- a/src/r128_dri.c +++ b/src/r128_dri.c @@ -77,7 +77,7 @@ static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox); client. */ static Bool R128InitVisualConfigs(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); int numConfigs = 0; __GLXvisualConfig *pConfigs = NULL; @@ -279,7 +279,7 @@ static Bool R128CreateContext(ScreenPtr pScreen, VisualPtr visual, drm_context_t hwContext, void *pVisualConfigPriv, DRIContextType contextStore) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); info->drmCtx = hwContext; @@ -301,7 +301,7 @@ static void R128DestroyContext(ScreenPtr pScreen, drm_context_t hwContext, can start/stop the engine. */ static void R128EnterServer(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); if (info->accel) info->accel->NeedToSync = TRUE; @@ -315,7 +315,7 @@ static void R128EnterServer(ScreenPtr pScreen) can start/stop the engine. */ static void R128LeaveServer(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); unsigned char *R128MMIO = info->MMIO; @@ -356,7 +356,7 @@ static void R128DRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 indx) { /* FIXME: This routine needs to have acceleration turned on */ ScreenPtr pScreen = pWin->drawable.pScreen; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); BoxPtr pbox, pboxSave; int nbox, nboxSave; @@ -420,7 +420,7 @@ static void R128DRIMoveBuffers(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc, CARD32 indx) { ScreenPtr pScreen = pWin->drawable.pScreen; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); /* FIXME: This routine needs to have acceleration turned on */ @@ -905,7 +905,7 @@ static Bool R128DRIBufInit(R128InfoPtr info, ScreenPtr pScreen) static void R128DRIIrqInit(R128InfoPtr info, ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); if (!info->irq) { info->irq = drmGetInterruptFromBusID( @@ -969,7 +969,7 @@ static void R128DRICCEInit(ScrnInfoPtr pScrn) create the DRI data structures and initialize the DRI state. */ Bool R128DRIScreenInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); DRIInfoPtr pDRIInfo; R128DRIPtr pR128DRI; @@ -1206,7 +1206,7 @@ Bool R128DRIScreenInit(ScreenPtr pScreen) initialization. */ Bool R128DRIFinishScreenInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); R128SAREAPrivPtr pSAREAPriv; R128DRIPtr pR128DRI; @@ -1291,7 +1291,7 @@ Bool R128DRIFinishScreenInit(ScreenPtr pScreen) resources used by the DRI. */ void R128DRICloseScreen(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); drmR128Init drmInfo; @@ -1416,7 +1416,7 @@ static void R128DRIRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox) static void R128EnablePageFlip(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); R128SAREAPrivPtr pSAREAPriv = DRIGetSAREAPrivate(pScreen); @@ -1462,7 +1462,7 @@ static void R128DRITransitionMultiToSingle3d(ScreenPtr pScreen) static void R128DRITransitionTo3d(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); R128EnablePageFlip(pScreen); @@ -1475,7 +1475,7 @@ static void R128DRITransitionTo3d(ScreenPtr pScreen) static void R128DRITransitionTo2d(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); R128SAREAPrivPtr pSAREAPriv = DRIGetSAREAPrivate(pScreen); diff --git a/src/r128_driver.c b/src/r128_driver.c index dc83076..bfa3dfd 100644 --- a/src/r128_driver.c +++ b/src/r128_driver.c @@ -118,7 +118,7 @@ #define USE_CRT_ONLY 0 /* Forward definitions for driver functions */ -static Bool R128CloseScreen(int scrnIndex, ScreenPtr pScreen); +static Bool R128CloseScreen(CLOSE_SCREEN_ARGS_DECL); static Bool R128SaveScreen(ScreenPtr pScreen, int mode); static void R128Save(ScrnInfoPtr pScrn); static void R128Restore(ScrnInfoPtr pScrn); @@ -1357,7 +1357,7 @@ static Bool R128GetDFPInfo(ScrnInfoPtr pScrn) OUTREG(info->DDCReg, INREG(info->DDCReg) & ~(CARD32)(R128_GPIO_MONID_A_0 | R128_GPIO_MONID_A_3)); - MonInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, info->pI2CBus); + MonInfo = xf86DoEDID_DDC2(XF86_SCRN_ARG(pScrn), info->pI2CBus); if(!MonInfo) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No DFP detected\n"); @@ -2165,10 +2165,10 @@ static void R128LoadPalette(ScrnInfoPtr pScrn, int numColors, } static void -R128BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask) +R128BlockHandler(BLOCKHANDLER_ARGS_DECL) { - ScreenPtr pScreen = screenInfo.screens[i]; - ScrnInfoPtr pScrn = xf86Screens[i]; + SCREEN_PTR(arg); + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); #ifdef R128DRI @@ -2177,7 +2177,7 @@ R128BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask) #endif pScreen->BlockHandler = info->BlockHandler; - (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask); + (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS); pScreen->BlockHandler = R128BlockHandler; if(info->VideoTimerCallback) { @@ -2186,10 +2186,9 @@ R128BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask) } /* Called at the start of each server generation. */ -Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, - int argc, char **argv) +Bool R128ScreenInit(SCREEN_INIT_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); BoxRec MemBox; int y2; @@ -2223,7 +2222,7 @@ Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, } R128SaveScreen(pScreen, SCREEN_SAVER_ON); - pScrn->AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + pScrn->AdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); /* Visual setup */ miClearVisualTypes(); @@ -2250,11 +2249,11 @@ Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, int maxy = info->FbMapSize / width_bytes; if (noAccel) { - xf86DrvMsg(scrnIndex, X_WARNING, + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Acceleration disabled, not initializing the DRI\n"); info->directRenderingEnabled = FALSE; } else if (maxy <= pScrn->virtualY * 3) { - xf86DrvMsg(scrnIndex, X_WARNING, + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Static buffer allocation failed -- " "need at least %d kB video memory\n", (pScrn->displayWidth * pScrn->virtualY * @@ -2269,7 +2268,7 @@ Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, if(xf86IsEntityShared(pScrn->entityList[0])) { info->directRenderingEnabled = FALSE; - xf86DrvMsg(scrnIndex, X_WARNING, + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, -- 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/e1srv4x-0006mn...@vasks.debian.org