[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-sunffb: Changes to 'upstream-unstable'



 .gitignore         |   70 ++++++++++++++++++++++++++++++++++---
 COPYING            |   26 +++++++++----
 ChangeLog          |   98 ----------------------------------------------------
 Makefile.am        |   12 +++++-
 configure.ac       |   63 +++++++++++++++++++++------------
 man/.cvsignore     |    2 -
 man/Makefile.am    |   59 +++++++++++--------------------
 man/sunffb.man     |    1 
 src/.cvsignore     |    6 ---
 src/Makefile.am    |    1 
 src/VISmoveImage.s |    3 +
 src/compat-api.h   |   99 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/ffb.h          |    6 ++-
 src/ffb_accel.c    |   25 +++++++++----
 src/ffb_asm.s      |    7 +++
 src/ffb_attr.c     |    1 
 src/ffb_cursor.c   |    3 -
 src/ffb_dac.c      |    1 
 src/ffb_dac.h      |    1 
 src/ffb_ddc.c      |    1 
 src/ffb_dga.c      |   11 ++++-
 src/ffb_driver.c   |   69 ++++++++++++++++++------------------
 src/ffb_fifo.h     |    1 
 src/ffb_loops.h    |    1 
 src/ffb_rcache.h   |    1 
 src/ffb_regs.h     |    1 
 src/ffb_wid.c      |    1 
 27 files changed, 329 insertions(+), 241 deletions(-)

New commits:
commit 181b60190c1f81fc9b9b5deb07d536b78f2536ab
Author: Matthieu Herrb <matthieu.herrb@laas.fr>
Date:   Mon Jun 10 21:51:08 2013 +0200

    Unbreak when XAA is not present.
    
    Turn accel off if loading XAA fails.
    
    Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

diff --git a/src/ffb_driver.c b/src/ffb_driver.c
index af13484..7f17d64 100644
--- a/src/ffb_driver.c
+++ b/src/ffb_driver.c
@@ -413,9 +413,12 @@ FFBPreInit(ScrnInfoPtr pScrn, int flags)
 	return FALSE;
     }
 
-    if (xf86LoadSubModule(pScrn, "xaa") == NULL) {
-	FFBFreeRec(pScrn);
-	return FALSE;
+    if (!pFfb->NoAccel) {
+        if (xf86LoadSubModule(pScrn, "xaa") == NULL) {
+            xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                       "Loading XAA failed, acceleration disabled\n");
+            pFfb->NoAccel = TRUE;
+        }
     }
 
     if (pFfb->HWCursor && xf86LoadSubModule(pScrn, "ramdac") == NULL) {

commit 46e71051e0eb879a3d08ceb5675afbfdbff1f57b
Author: Matt Turner <mattst88@gmail.com>
Date:   Mon Jan 21 22:47:57 2013 -0800

    xf86-video-sunffb 1.2.2

diff --git a/configure.ac b/configure.ac
index 2a3b86a..af1dabf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-sunffb],
-        [1.2.1],
+        [1.2.2],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-sunffb])
 AC_CONFIG_SRCDIR([Makefile.am])

commit 17f43d1d727081f022872a6df88ceebc5a4c3628
Author: Adam Jackson <ajax@redhat.com>
Date:   Tue Sep 25 08:54:56 2012 -0400

    Remove mibstore.h
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>

diff --git a/src/ffb_driver.c b/src/ffb_driver.c
index d02835e..af13484 100644
--- a/src/ffb_driver.c
+++ b/src/ffb_driver.c
@@ -30,7 +30,6 @@
 #include "xf86.h"
 #include "xf86_OSproc.h"
 #include "mipointer.h"
-#include "mibstore.h"
 #include "micmap.h"
 #include "fb.h"
 
@@ -762,7 +761,6 @@ FFBScreenInit(SCREEN_INIT_ARGS_DECL)
     }
 
 
-    miInitializeBackingStore(pScreen);
     xf86SetBackingStore(pScreen);
     xf86SetSilkenMouse(pScreen);
 

commit 079960018061e5ae261ee7f627c6afb859177ef4
Author: Dave Airlie <airlied@gmail.com>
Date:   Mon Jul 16 19:12:32 2012 +1000

    sunffb: fix XAA-less build.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/configure.ac b/configure.ac
index 0fbe15f..2a3b86a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -73,6 +73,24 @@ AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ])
 
 # Checks for libraries.
 
+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(SPARC, test x$SPARC = xyes)
 
 AC_SUBST([moduledir])
diff --git a/src/ffb.h b/src/ffb.h
index 14edcbe..67a2d87 100644
--- a/src/ffb.h
+++ b/src/ffb.h
@@ -31,7 +31,9 @@
 #include "xf86.h"
 #include "xf86_OSproc.h"
 #include "xf86RamDac.h"
+#ifdef HAVE_XAA_H
 #include "xaa.h"
+#endif
 #include <X11/Xmd.h>
 #include "gcstruct.h"
 #include "windowstr.h"
@@ -174,7 +176,9 @@ typedef struct {
 	unsigned char has_double_buffer;
 
 	/* XAA related info */
+#ifdef HAVE_XAA_H
 	XAAInfoRecPtr pXAAInfo;
+#endif
 	unsigned int xaa_fbc;
 	unsigned int xaa_wid;
 	unsigned int xaa_planemask;
diff --git a/src/ffb_accel.c b/src/ffb_accel.c
index 7dc1228..86cac94 100644
--- a/src/ffb_accel.c
+++ b/src/ffb_accel.c
@@ -35,7 +35,6 @@
 #include	"mistruct.h"
 #include	"miline.h"
 #include	"fb.h"
-#include	"xaa.h"
 
 #include	"ffb.h"
 #include	"ffb_fifo.h"
@@ -43,6 +42,7 @@
 #include	"ffb_loops.h"
 #include	"ffb_regs.h"
 
+#ifdef HAVE_XAA_H
 /* VISmoveImage.s */
 extern void VISmoveImageRL(unsigned char *src, unsigned char *dst, long w, long h, long skind, long dkind);
 extern void VISmoveImageLR(unsigned char *src, unsigned char *dst, long w, long h, long skind, long dkind);
@@ -841,8 +841,11 @@ static void CreatorAlignTabInit(FFBPtr pFfb)
 	}
 }
 
+#endif
+
 Bool FFBAccelInit(ScreenPtr pScreen, FFBPtr pFfb)
 {
+#ifdef HAVE_XAA_H
 	XAAInfoRecPtr infoRec;
 	ffb_fbcPtr ffb = pFfb->regs;
 
@@ -1097,4 +1100,7 @@ Bool FFBAccelInit(ScreenPtr pScreen, FFBPtr pFfb)
 
 	/* Success */
 	return TRUE;
+#else
+	return FALSE;
+#endif
 }
diff --git a/src/ffb_dga.c b/src/ffb_dga.c
index 84598db..d6f5437 100644
--- a/src/ffb_dga.c
+++ b/src/ffb_dga.c
@@ -43,9 +43,11 @@ static Bool FFB_SetMode(ScrnInfoPtr, DGAModePtr);
 static void FFB_SetViewport(ScrnInfoPtr, int, int, int);
 static int FFB_GetViewport(ScrnInfoPtr);
 static void FFB_Flush(ScrnInfoPtr);
+#ifdef HAVE_XAA_H
 static void FFB_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
 static void FFB_BlitRect(ScrnInfoPtr, int, int, int, int,
 			 int, int);
+#endif
 
 static DGAFunctionRec FFB_DGAFuncs = {
 	FFB_OpenFramebuffer,
@@ -54,8 +56,12 @@ static DGAFunctionRec FFB_DGAFuncs = {
 	FFB_SetViewport,
 	FFB_GetViewport,
 	FFB_Flush,
+#ifdef HAVE_XAA_H
 	FFB_FillRect,
 	FFB_BlitRect,
+#else
+	NULL, NULL,
+#endif
 	NULL
 };
 
@@ -179,6 +185,7 @@ static void FFB_Flush(ScrnInfoPtr pScrn)
 	FFBWait(pFfb, ffb);
 }
 
+#ifdef HAVE_XAA_H
 extern void FFB_SetupForSolidFill(ScrnInfoPtr, int, int, unsigned int);
 extern void FFB_SubsequentSolidFillRect(ScrnInfoPtr, int, int, int, int);
 
@@ -207,3 +214,4 @@ static void FFB_BlitRect(ScrnInfoPtr pScrn, int srcx, int srcy,
 	FFB_SubsequentScreenToScreenCopy(pScrn, srcx, srcy, dstx,dsty, w, h);
 	SET_SYNC_FLAG(pFfb->pXAAInfo);
 }
+#endif

commit 5954960d4bbaee9ee4d2d3a4d1ca9a93d02f6697
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Jun 7 18:41:23 2012 +0100

    sunffb: port to new compat API.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/src/Makefile.am b/src/Makefile.am
index 198aac1..0ef8e3e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -33,6 +33,7 @@ SPARC_ASM_SRC = ffb_asm.s VISmoveImage.s
 endif
 
 sunffb_drv_la_SOURCES = \
+         compat-api.h \
          ffb_accel.c \
          ffb_attr.c \
          ffb_cursor.c \
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 <airlied@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/ffb.h b/src/ffb.h
index 5177fa4..14edcbe 100644
--- a/src/ffb.h
+++ b/src/ffb.h
@@ -47,6 +47,7 @@
 #include <X11/extensions/dpms.h>
 #endif
 
+#include "compat-api.h"
 /* Various offsets in virtual (ie. mmap()) spaces Linux and Solaris support. */
 /* Note: do not mmap FFB_DFB8R_VOFF and following mappings using one mmap together
    with any previous SFB mapping, otherwise the OS won't be able to use 4M pages
diff --git a/src/ffb_accel.c b/src/ffb_accel.c
index 6ea4dd2..7dc1228 100644
--- a/src/ffb_accel.c
+++ b/src/ffb_accel.c
@@ -59,7 +59,7 @@ struct fastfill_parms ffb_fastfill_parms[] = {
 void
 CreatorVtChange (ScreenPtr pScreen, int enter)
 {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	FFBPtr pFfb = GET_FFB_FROM_SCRN (pScrn);
 	ffb_fbcPtr ffb = pFfb->regs;
 
diff --git a/src/ffb_cursor.c b/src/ffb_cursor.c
index d347a46..554866d 100644
--- a/src/ffb_cursor.c
+++ b/src/ffb_cursor.c
@@ -112,7 +112,7 @@ FFBSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg)
 Bool 
 FFBHWCursorInit(ScreenPtr pScreen)
 {
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
     FFBPtr pFfb;
     xf86CursorInfoPtr infoPtr;
 
diff --git a/src/ffb_dga.c b/src/ffb_dga.c
index 82ad44f..84598db 100644
--- a/src/ffb_dga.c
+++ b/src/ffb_dga.c
@@ -61,7 +61,7 @@ static DGAFunctionRec FFB_DGAFuncs = {
 
 void FFB_InitDGA(ScreenPtr pScreen)
 {
-	ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	FFBPtr pFfb;
 	DGAModePtr mode;
 	Bool result;
diff --git a/src/ffb_driver.c b/src/ffb_driver.c
index b89771a..d02835e 100644
--- a/src/ffb_driver.c
+++ b/src/ffb_driver.c
@@ -42,22 +42,21 @@ static const OptionInfoRec * FFBAvailableOptions(int chipid, int busid);
 static void	FFBIdentify(int flags);
 static Bool	FFBProbe(DriverPtr drv, int flags);
 static Bool	FFBPreInit(ScrnInfoPtr pScrn, int flags);
-static Bool	FFBScreenInit(int Index, ScreenPtr pScreen, int argc,
-			      char **argv);
-static Bool	FFBEnterVT(int scrnIndex, int flags);
-static void	FFBLeaveVT(int scrnIndex, int flags);
-static Bool	FFBCloseScreen(int scrnIndex, ScreenPtr pScreen);
+static Bool	FFBScreenInit(SCREEN_INIT_ARGS_DECL);
+static Bool	FFBEnterVT(VT_FUNC_ARGS_DECL);
+static void	FFBLeaveVT(VT_FUNC_ARGS_DECL);
+static Bool	FFBCloseScreen(CLOSE_SCREEN_ARGS_DECL);
 static Bool	FFBSaveScreen(ScreenPtr pScreen, int mode);
 static void	FFBDPMSSet(ScrnInfoPtr pScrn, int mode, int flags);
 
 /* Required if the driver supports mode switching */
-static Bool	FFBSwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
+static Bool	FFBSwitchMode(SWITCH_MODE_ARGS_DECL);
 /* Required if the driver supports moving the viewport */
-static void	FFBAdjustFrame(int scrnIndex, int x, int y, int flags);
+static void	FFBAdjustFrame(ADJUST_FRAME_ARGS_DECL);
 
 /* Optional functions */
-static void	FFBFreeScreen(int scrnIndex, int flags);
-static ModeStatus FFBValidMode(int scrnIndex, DisplayModePtr mode,
+static void	FFBFreeScreen(FREE_SCREEN_ARGS_DECL);
+static ModeStatus FFBValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode,
 			       Bool verbose, int flags);
 static void     FFBDPMSMode(ScrnInfoPtr pScrn, int DPMSMode, int flags);
 /* ffb_dga.c */
@@ -573,7 +572,7 @@ FFBProbeBoardType(FFBPtr pFfb)
 /* This gets called at the start of each server generation */
 
 static Bool
-FFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+FFBScreenInit(SCREEN_INIT_ARGS_DECL)
 {
     ScrnInfoPtr pScrn;
     FFBPtr pFfb;
@@ -584,7 +583,7 @@ FFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
     /* 
      * First get the ScrnInfoRec
      */
-    pScrn = xf86Screens[pScreen->myNum];
+    pScrn = xf86ScreenToScrn(pScreen);
 
     pFfb = GET_FFB_FROM_SCRN(pScrn);
 
@@ -822,7 +821,7 @@ FFBScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
 
 /* Usually mandatory */
 static Bool
-FFBSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+FFBSwitchMode(SWITCH_MODE_ARGS_DECL)
 {
     return TRUE;
 }
@@ -834,7 +833,7 @@ FFBSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
  */
 /* Usually mandatory */
 static void 
-FFBAdjustFrame(int scrnIndex, int x, int y, int flags)
+FFBAdjustFrame(ADJUST_FRAME_ARGS_DECL)
 {
     /* we don't support virtual desktops */
     return;
@@ -847,9 +846,9 @@ FFBAdjustFrame(int scrnIndex, int x, int y, int flags)
 
 /* Mandatory */
 static Bool
-FFBEnterVT(int scrnIndex, int flags)
+FFBEnterVT(VT_FUNC_ARGS_DECL)
 {
-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+    SCRN_INFO_PTR(arg);
     FFBPtr pFfb = GET_FFB_FROM_SCRN(pScrn);
 
     pFfb->vtSema = FALSE;
@@ -870,9 +869,9 @@ FFBEnterVT(int scrnIndex, int flags)
 
 /* Mandatory */
 static void
-FFBLeaveVT(int scrnIndex, int flags)
+FFBLeaveVT(VT_FUNC_ARGS_DECL)
 {
-    ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+    SCRN_INFO_PTR(arg);
     FFBPtr pFfb = GET_FFB_FROM_SCRN(pScrn);
 
     FFBDacLeaveVT(pFfb);
@@ -895,9 +894,9 @@ FFBLeaveVT(int scrnIndex, int flags)
 
 /* Mandatory */
 static Bool
-FFBCloseScreen(int scrnIndex, ScreenPtr pScreen)
+FFBCloseScreen(CLOSE_SCREEN_ARGS_DECL)
 {
-	ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 	FFBPtr pFfb = GET_FFB_FROM_SCRN(pScrn);
 
 	/* Restore kernel ramdac state before we unmap registers. */
@@ -919,7 +918,7 @@ FFBCloseScreen(int scrnIndex, ScreenPtr pScreen)
 		xf86SbusHideOsHwCursor (pFfb->psdp);
 
 	pScreen->CloseScreen = pFfb->CloseScreen;
-	return (*pScreen->CloseScreen)(scrnIndex, pScreen);
+	return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);
 }
 
 
@@ -927,9 +926,10 @@ FFBCloseScreen(int scrnIndex, ScreenPtr pScreen)
 
 /* Optional */
 static void
-FFBFreeScreen(int scrnIndex, int flags)
+FFBFreeScreen(FREE_SCREEN_ARGS_DECL)
 {
-	FFBFreeRec(xf86Screens[scrnIndex]);
+	SCRN_INFO_PTR(arg);
+	FFBFreeRec(pScrn);
 }
 
 
@@ -937,7 +937,7 @@ FFBFreeScreen(int scrnIndex, int flags)
 
 /* Optional */
 static ModeStatus
-FFBValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
+FFBValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags)
 {
 	if (mode->Flags & V_INTERLACE)
 		return MODE_BAD;
@@ -957,7 +957,7 @@ FFBSaveScreen(ScreenPtr pScreen, int mode)
        done in "ffb_dac.c" `for aesthetic reasons.'
     */
 {
-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+    ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
 
     return FFBDacSaveScreen(GET_FFB_FROM_SCRN(pScrn), mode);
 }

commit 20e5b57ca3186dd58f88bc663e410aeea638100f
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date:   Sat Oct 29 19:56:26 2011 -0700

    Add missing prototypes to silence warnings
    
    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>

diff --git a/src/ffb_accel.c b/src/ffb_accel.c
index ccae276..6ea4dd2 100644
--- a/src/ffb_accel.c
+++ b/src/ffb_accel.c
@@ -43,6 +43,10 @@
 #include	"ffb_loops.h"
 #include	"ffb_regs.h"
 
+/* VISmoveImage.s */
+extern void VISmoveImageRL(unsigned char *src, unsigned char *dst, long w, long h, long skind, long dkind);
+extern void VISmoveImageLR(unsigned char *src, unsigned char *dst, long w, long h, long skind, long dkind);
+
 /* Indexed by ffb resolution enum. */
 struct fastfill_parms ffb_fastfill_parms[] = {
 	/* fsmall, psmall,  ffh,  ffw,  pfh,  pfw */

commit d76eda9d1c6456ece6b5e2a6b8a772293e10beb6
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date:   Sat Oct 29 19:52:52 2011 -0700

    Use malloc/calloc/realloc/free directly
    
    Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>

diff --git a/src/ffb_accel.c b/src/ffb_accel.c
index 6716bdc..ccae276 100644
--- a/src/ffb_accel.c
+++ b/src/ffb_accel.c
@@ -858,15 +858,15 @@ Bool FFBAccelInit(ScreenPtr pScreen, FFBPtr pFfb)
 		return FALSE;
 	}
 
-	pFfb->xaa_scanline_buffers[0] = xalloc(2048 * 4);
+	pFfb->xaa_scanline_buffers[0] = malloc(2048 * 4);
 	if (!pFfb->xaa_scanline_buffers[0]) {
 		XAADestroyInfoRec(infoRec);
 		return FALSE;
 	}
 
-	pFfb->xaa_scanline_buffers[1] = xalloc(2048 * 4);
+	pFfb->xaa_scanline_buffers[1] = malloc(2048 * 4);
 	if (!pFfb->xaa_scanline_buffers[1]) {
-		xfree(pFfb->xaa_scanline_buffers[0]);
+		free(pFfb->xaa_scanline_buffers[0]);
 		XAADestroyInfoRec(infoRec);
 		return FALSE;
 	}
@@ -1084,8 +1084,8 @@ Bool FFBAccelInit(ScreenPtr pScreen, FFBPtr pFfb)
 
 	if (!XAAInit(pScreen, infoRec)) {
 		XAADestroyInfoRec(infoRec);
-		xfree(pFfb->xaa_scanline_buffers[0]);
-		xfree(pFfb->xaa_scanline_buffers[1]);
+		free(pFfb->xaa_scanline_buffers[0]);
+		free(pFfb->xaa_scanline_buffers[1]);
 		pFfb->pXAAInfo = NULL;
 		FFBWidFree(pFfb, pFfb->xaa_wid);
 		return FALSE;
diff --git a/src/ffb_driver.c b/src/ffb_driver.c
index 4e37c6c..b89771a 100644
--- a/src/ffb_driver.c
+++ b/src/ffb_driver.c
@@ -175,7 +175,7 @@ FFBFreeRec(ScrnInfoPtr pScrn)
 
     pFfb = GET_FFB_FROM_SCRN(pScrn);
 
-    xfree(pScrn->driverPrivate);
+    free(pScrn->driverPrivate);
     pScrn->driverPrivate = NULL;
 
     return;
@@ -245,7 +245,7 @@ FFBProbe(DriverPtr drv, int flags)
 		   devSections, numDevSections,
 		   drv, &usedChips);
 				    
-    xfree(devSections);
+    free(devSections);
     if (numUsed <= 0)
 	return FALSE;
 
@@ -279,9 +279,9 @@ FFBProbe(DriverPtr drv, int flags)
 	    xf86AddEntityToScreen(pScrn, pEnt->index);
 	    foundScreen = TRUE;
 	}
-	xfree(pEnt);
+	free(pEnt);
     }
-    xfree(usedChips);
+    free(usedChips);
     return foundScreen;
 }
 
@@ -356,7 +356,7 @@ FFBPreInit(ScrnInfoPtr pScrn, int flags)
     /* Collect all of the relevant option flags (fill in pScrn->options) */
     xf86CollectOptions(pScrn, NULL);
     /* Process the options */
-    if (!(pFfb->Options = xalloc(sizeof(FFBOptions))))
+    if (!(pFfb->Options = malloc(sizeof(FFBOptions))))
 	return FALSE;
     memcpy(pFfb->Options, FFBOptions, sizeof(FFBOptions));
     xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pFfb->Options);

commit 205ed4acdfc9e73821b83244cb27f808bbab9933
Author: Jesse Adkins <jesserayadkins@gmail.com>
Date:   Tue Sep 28 13:29:51 2010 -0700

    Purge cvs tags.
    
    Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

diff --git a/man/sunffb.man b/man/sunffb.man
index 922722b..1d825c2 100644
--- a/man/sunffb.man
+++ b/man/sunffb.man
@@ -1,4 +1,3 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/sunffb.man,v 1.2 2001/01/27 18:20:54 dawes Exp $ 
 .\" shorthand for double quote that works everywhere.
 .ds q \N'34'
 .TH FFB __drivermansuffix__ __vendorversion__
diff --git a/src/VISmoveImage.s b/src/VISmoveImage.s
index 79a887f..bf9c71d 100644
--- a/src/VISmoveImage.s
+++ b/src/VISmoveImage.s
@@ -21,7 +21,6 @@
  * 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.
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/VISmoveImage.s,v 1.2 2000/05/23 04:47:43 dawes Exp $ */
 
 
 /* NOTE NOTE NOTE: All loads in these routines _MUST_ be 64-byte block
diff --git a/src/ffb.h b/src/ffb.h
index a2c3ada..5177fa4 100644
--- a/src/ffb.h
+++ b/src/ffb.h
@@ -24,7 +24,6 @@
  * USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb.h,v 1.7tsi Exp $ */
 
 #ifndef FFB_H
 #define FFB_H
diff --git a/src/ffb_accel.c b/src/ffb_accel.c
index b8ad1d0..6716bdc 100644
--- a/src/ffb_accel.c
+++ b/src/ffb_accel.c
@@ -24,7 +24,6 @@
  * USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_accel.c,v 1.6tsi Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/src/ffb_asm.s b/src/ffb_asm.s
index ef6b2ea..1678af2 100644
--- a/src/ffb_asm.s
+++ b/src/ffb_asm.s
@@ -22,7 +22,6 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  * IN THE SOFTWARE.
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_asm.s,v 1.1 2000/05/18 23:21:35 dawes Exp $ */
 
 
 #if defined(__sparc_v9__) || defined(__sparcv9) || defined(__arch64__)
diff --git a/src/ffb_attr.c b/src/ffb_attr.c
index e1a3771..2998cb8 100644
--- a/src/ffb_attr.c
+++ b/src/ffb_attr.c
@@ -22,7 +22,6 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 
  * IN THE SOFTWARE.
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_attr.c,v 1.1 2000/05/18 23:21:35 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/src/ffb_cursor.c b/src/ffb_cursor.c
index 134947b..d347a46 100644
--- a/src/ffb_cursor.c
+++ b/src/ffb_cursor.c
@@ -23,7 +23,6 @@
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  * SOFTWARE.
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_cursor.c,v 1.1 2000/05/18 23:21:36 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/src/ffb_dac.c b/src/ffb_dac.c
index fab463d..5a61160 100644
--- a/src/ffb_dac.c
+++ b/src/ffb_dac.c
@@ -21,7 +21,6 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_dac.c,v 1.3tsi Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/src/ffb_dac.h b/src/ffb_dac.h
index b6c4f5d..e95490b 100644
--- a/src/ffb_dac.h
+++ b/src/ffb_dac.h
@@ -21,7 +21,6 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_dac.h,v 1.2 2001/04/05 17:42:33 dawes Exp $ */
 
 #ifndef _FFB_DAC_H
 #define _FFB_DAC_H
diff --git a/src/ffb_ddc.c b/src/ffb_ddc.c
index b665105..3f688aa 100644
--- a/src/ffb_ddc.c
+++ b/src/ffb_ddc.c
@@ -21,7 +21,6 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
-/* $XFree86$ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/src/ffb_dga.c b/src/ffb_dga.c
index 0b40b06..82ad44f 100644
--- a/src/ffb_dga.c
+++ b/src/ffb_dga.c
@@ -21,7 +21,6 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_dga.c,v 1.1 2000/05/23 04:47:44 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
diff --git a/src/ffb_fifo.h b/src/ffb_fifo.h
index 0957e84..87c39b3 100644
--- a/src/ffb_fifo.h
+++ b/src/ffb_fifo.h
@@ -22,7 +22,6 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  * IN THE SOFTWARE.
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_fifo.h,v 1.2 2000/05/23 04:47:44 dawes Exp $ */
 
 #ifndef FFBFIFO_H
 #define FFBFIFO_H
diff --git a/src/ffb_loops.h b/src/ffb_loops.h
index efb14c3..13ecfc3 100644
--- a/src/ffb_loops.h
+++ b/src/ffb_loops.h
@@ -23,7 +23,6 @@
  * IN THE SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_loops.h,v 1.1 2000/05/18 23:21:37 dawes Exp $ */
 
 #ifndef FFBLOOPS_H
 #define FFBLOOPS_H
diff --git a/src/ffb_rcache.h b/src/ffb_rcache.h
index f8c17b9..b060d59 100644
--- a/src/ffb_rcache.h
+++ b/src/ffb_rcache.h
@@ -23,7 +23,6 @@
  * IN THE SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_rcache.h,v 1.1 2000/05/18 23:21:37 dawes Exp $ */
 
 #ifndef FFBRCACHE_H
 #define FFBRCACHE_H
diff --git a/src/ffb_regs.h b/src/ffb_regs.h
index efb5cce..7dfdd29 100644
--- a/src/ffb_regs.h
+++ b/src/ffb_regs.h
@@ -24,7 +24,6 @@
  * USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
-/* $XFree86$ */
 
 #ifndef FFBREGS_H
 #define FFBREGS_H
diff --git a/src/ffb_wid.c b/src/ffb_wid.c
index f9a13a8..573fb19 100644
--- a/src/ffb_wid.c
+++ b/src/ffb_wid.c
@@ -21,7 +21,6 @@
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sunffb/ffb_wid.c,v 1.2 2000/06/20 05:08:48 dawes Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"

commit 0fceb69e06e143e6a0c4ced64c1237ec420c85b8
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Wed Jul 21 16:49:04 2010 -0400

    config: add comments for main statements

diff --git a/configure.ac b/configure.ac
index 3ddb9f4..0fbe15f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,18 +20,18 @@
 #
 # Process this file with autoconf to produce a configure script
 
+# Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-sunffb],
         [1.2.1],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
         [xf86-video-sunffb])
-
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_AUX_DIR(.)
 
+# Initialize Automake
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
-
 AM_MAINTAINER_MODE
 
 # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
@@ -40,7 +40,7 @@ m4_ifndef([XORG_MACROS_VERSION],
 XORG_MACROS_VERSION(1.8)
 XORG_DEFAULT_OPTIONS
 
-# Checks for programs.
+# Initialize libtool
 AC_DISABLE_STATIC
 AC_PROG_LIBTOOL
 case $host_cpu in
@@ -52,18 +52,19 @@ AM_PROG_AS
 
 AH_TOP([#include "xorg-server.h"])
 
+# Define a configure option for an alternate module directory
 AC_ARG_WITH(xorg-module-dir,
             AS_HELP_STRING([--with-xorg-module-dir=DIR],
                            [Default xorg module directory [[default=$libdir/xorg/modules]]]),
             [moduledir="$withval"],
             [moduledir="$libdir/xorg/modules"])
 
-# Checks for extensions
+# Store the list of server defined optional extensions in REQUIRED_MODULES
 XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
 XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
 XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
 
-# Checks for pkg-config packages
+# Obtain compiler/linker options for the driver dependencies
 PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto $REQUIRED_MODULES])
 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
                   HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]),
@@ -72,7 +73,6 @@ AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ])
 
 # Checks for libraries.
 
-
 AM_CONDITIONAL(SPARC, test x$SPARC = xyes)
 
 AC_SUBST([moduledir])

commit fcc30b64c0d5512ab8acd4248da5aaaa12e10b80
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Wed Jul 21 16:07:00 2010 -0400

    config: replace deprecated use of AC_OUTPUT with AC_CONFIG_FILES
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

diff --git a/configure.ac b/configure.ac
index 6a0847e..3ddb9f4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -80,8 +80,9 @@ AC_SUBST([moduledir])
 DRIVER_NAME=sunffb
 AC_SUBST([DRIVER_NAME])
 
-AC_OUTPUT([
-	Makefile
-	src/Makefile
-	man/Makefile
+AC_CONFIG_FILES([
+                Makefile
+                src/Makefile
+                man/Makefile
 ])
+AC_OUTPUT

commit 3c193eae6b172540eb1127f3f78619e562b8f18d
Author: Gaetan Nadon <memsize@videotron.ca>
Date:   Wed Jul 21 14:37:41 2010 -0400

    config: replace deprecated AC_HELP_STRING with AS_HELP_STRING
    
    Signed-off-by: Gaetan Nadon <memsize@videotron.ca>

diff --git a/configure.ac b/configure.ac
index a57a6fb..6a0847e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -53,7 +53,7 @@ AM_PROG_AS
 AH_TOP([#include "xorg-server.h"])


Reply to: