]> git.pld-linux.org Git - packages/XFree86-Servers.git/commitdiff
This commit was manufactured by cvs2git to create branch 'XORG_XSERVER_1_3'. XORG_XSERVER_1_3
authorcvs2git <feedback@pld-linux.org>
Fri, 19 Dec 2003 10:13:37 +0000 (10:13 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Sprout from master 2003-12-19 10:13:36 UTC Jacek Konieczny <jajcus@pld-linux.org> '- s,/lib/security,,'
Delete:
    XFree86-Servers-3dfxalpha.patch
    XFree86-Servers-5480mem.patch
    XFree86-Servers-HasZlib.patch
    XFree86-Servers-alpha.patch
    XFree86-Servers-cyrix.patch
    XFree86-Servers-fbdev-compile.patch
    XFree86-Servers-fix-01-r128.patch
    XFree86-Servers-fix-04-s3trio3d2x.patch
    XFree86-Servers-fix-05-s3trio3d.patch
    XFree86-Servers-fixreleasedate.patch
    XFree86-Servers-joy.patch
    XFree86-Servers-morecyrix.patch
    XFree86-Servers-new-i810.patch
    XFree86-Servers-parallelmake.patch
    XFree86-Servers-ragemobility.patch
    XFree86-Servers-rh.patch
    XFree86-Servers-security.patch
    XFree86-Servers-serversonly.patch
    XFree86-Servers-sis.patch
    XFree86-Servers-sparc-asmflags.patch
    XFree86-Servers-ssa50.patch
    XFree86-Servers-svgaprobe.patch
    XFree86-Servers-xkbstack.patch
    XFree86-Servers.spec

24 files changed:
XFree86-Servers-3dfxalpha.patch [deleted file]
XFree86-Servers-5480mem.patch [deleted file]
XFree86-Servers-HasZlib.patch [deleted file]
XFree86-Servers-alpha.patch [deleted file]
XFree86-Servers-cyrix.patch [deleted file]
XFree86-Servers-fbdev-compile.patch [deleted file]
XFree86-Servers-fix-01-r128.patch [deleted file]
XFree86-Servers-fix-04-s3trio3d2x.patch [deleted file]
XFree86-Servers-fix-05-s3trio3d.patch [deleted file]
XFree86-Servers-fixreleasedate.patch [deleted file]
XFree86-Servers-joy.patch [deleted file]
XFree86-Servers-morecyrix.patch [deleted file]
XFree86-Servers-new-i810.patch [deleted file]
XFree86-Servers-parallelmake.patch [deleted file]
XFree86-Servers-ragemobility.patch [deleted file]
XFree86-Servers-rh.patch [deleted file]
XFree86-Servers-security.patch [deleted file]
XFree86-Servers-serversonly.patch [deleted file]
XFree86-Servers-sis.patch [deleted file]
XFree86-Servers-sparc-asmflags.patch [deleted file]
XFree86-Servers-ssa50.patch [deleted file]
XFree86-Servers-svgaprobe.patch [deleted file]
XFree86-Servers-xkbstack.patch [deleted file]
XFree86-Servers.spec [deleted file]

diff --git a/XFree86-Servers-3dfxalpha.patch b/XFree86-Servers-3dfxalpha.patch
deleted file mode 100644 (file)
index 4d7980d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- XFree86-3.3.5/xc/config/cf/xfree86.cf.3dfxalpha    Wed Dec  1 09:57:15 1999
-+++ XFree86-3.3.5/xc/config/cf/xfree86.cf      Wed Dec  1 09:58:24 1999
-@@ -121,7 +121,7 @@
- #endif
- #endif
- #ifndef XF86SvgaDrivers
--#define XF86SvgaDrivers               mga s3v
-+#define XF86SvgaDrivers               mga s3v tdfx
- #endif
- #ifndef XF86Vga2Drivers
- #define XF86Vga2Drivers               generic
diff --git a/XFree86-Servers-5480mem.patch b/XFree86-Servers-5480mem.patch
deleted file mode 100644 (file)
index 6df8f27..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_driver.c.5480mem    Sat Jan  8 13:26:49 2000
-+++ XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/cirrus/cir_driver.c    Mon Feb 21 21:53:18 2000
-@@ -1553,17 +1553,18 @@
-               /* Use the DRAM bandwidth bit and the DRAM bank switching */
-               /* bit to figure out the amount of memory. */
-               unsigned char SRF;
-+              unsigned char SR17;
-+
-               vga256InfoRec.videoRam = 512;
-               outb(0x3c4, 0x0f);
-               SRF = inb(0x3c5);
-+              outb(0x3c4, 0x17);
-+              SR17 = inb(0x3c5);
-               if (cirrusChip == CLGD5446) {
-                   /*
-                    * The CL-GD5446 has many different DRAM
-                    * configurations.
-                    */
--                  unsigned char SR17;
--                  outb(0x3c4, 0x17);
--                  SR17 = inb(0x3c5);
-                   vga256InfoRec.videoRam = 1024;
-                   if ((SRF & 0x18) == 0x18) {
-                       /* 64-bit DRAM bus. */
-@@ -1617,6 +1618,13 @@
-                       /* must be twice as much memory installed. */
-                       /* (4MB on the 5434) */
-                       vga256InfoRec.videoRam *= 2;
-+                  if (cirrusChip == CLGD5480 && (SR17 & 0x80))
-+                      /* 5480's with one 2MB chip show up as 1MB
-+                         because they have a 32-bit DRAM bus, but
-+                         this seems to fix it.  This is experimental
-+                         black magic; if it breaks anything for
-+                         you, please help find a better trigger... */
-+                      vga256InfoRec.videoRam *= 2;
-               }
-         }
-         else 
diff --git a/XFree86-Servers-HasZlib.patch b/XFree86-Servers-HasZlib.patch
deleted file mode 100644 (file)
index 827c011..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- XFree86-3.3.2.3/xc/config/cf/linux.cf~     Sun Aug 30 15:23:40 1998
-+++ XFree86-3.3.2.3/xc/config/cf/linux.cf      Sun Aug 30 15:25:09 1998
-@@ -309,3 +309,7 @@
- #ifndef XtermWithI18N
- #define XtermWithI18N YES
- #endif
-+
-+#ifndef HasZlib
-+#define HasZlib               YES
-+#endif
diff --git a/XFree86-Servers-alpha.patch b/XFree86-Servers-alpha.patch
deleted file mode 100644 (file)
index f2af0dc..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- xc/config/imake/imakemdep.h.jj     Sat Jan  8 13:21:02 2000
-+++ xc/config/imake/imakemdep.h        Wed Jun  7 01:01:17 2000
-@@ -330,6 +330,12 @@ char *cpp_argv[ARGUMENTS] = {
- # ifdef __i386__
-       "-D__i386__",
- # endif
-+# ifdef __alpha__
-+      "-D__alpha__",
-+# endif
-+# ifdef __ia64__
-+      "-D__ia64__",
-+# endif
- # ifdef __sparc__
-       "-D__sparc__",
- # endif
diff --git a/XFree86-Servers-cyrix.patch b/XFree86-Servers-cyrix.patch
deleted file mode 100644 (file)
index 081b5fa..0000000
+++ /dev/null
@@ -1,2963 +0,0 @@
-diff -ruN XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/Imakefile XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/Imakefile
---- XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/Imakefile        Wed Jun 23 08:37:21 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/Imakefile      Sat Oct 24 03:54:44 1998
-@@ -1,4 +1,4 @@
--XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/Imakefile,v 1.1.2.9 1999/06/23 12:37:21 hohndel Exp $
-+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/Imakefile,v 1.1.2.8 1998/10/22 04:31:05 hohndel Exp $
- XCOMM
- XCOMM This is an Imakefile for the cyrix driver.  
- XCOMM 
-@@ -6,10 +6,10 @@
- #include <Server.tmpl>
- SRCS = cyrix_driver.c cyrix_accel.c cyrix_cursor.c cyrix_cmap.c cyrix_bank.s \
--       cyrix_asm.s gxrender.c
-+       cyrix_asm.s
- OBJS = cyrix_driver.o cyrix_accel.o cyrix_cursor.o cyrix_cmap.o cyrix_bank.o \
--       cyrix_asm.o gxrender.o
-+       cyrix_asm.o
- DEFINES = -DPSZ=8
-@@ -61,7 +61,6 @@
- InstallLinkKitNonExecFile(cyrix_driver.c,$(LINKKITDIR)/drivers/vga256/cyrix)
- InstallLinkKitNonExecFile(cyrix_bank.s,$(LINKKITDIR)/drivers/vga256/cyrix)
- InstallLinkKitNonExecFile(cyrix_asm.s,$(LINKKITDIR)/drivers/vga256/cyrix)
--InstallLinkKitNonExecFile(gxrender.c,$(LINKKITDIR)/drivers/vga256/cyrix)
- InstallLinkKitNonExecFile(Imakefile,$(LINKKITDIR)/drivers/vga256/cyrix)
- XCOMM
-@@ -82,4 +81,3 @@
- XCOMM Install Link Kit Non Exec File(Imakefile,$(LINKKITDIR)/drivers/vga16/cyrix)
- DependTarget()
--
-diff -ruN XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h
---- XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h  Tue Dec 22 02:49:58 1998
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h        Fri Nov  6 11:41:51 1998
-@@ -1,5 +1,5 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h,v 1.1.2.6 1998/12/22 07:49:58 hohndel Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h,v 1.1.2.5 1998/11/06 09:47:02 hohndel Exp $ */
- /* this code is partly based on the MediaGX sources from the GGI project
-    based on CYRIX example code (gxvideo.c) and included with CYRIX and
-@@ -88,10 +88,9 @@
- #define CYRIXsetVectorMode()                 \
-                      GX_REG(GP_VECTOR_MODE)  = (vectorMode)
--#define IfDest(rop, planemask, val)                                        \
--                                 (( (((rop) & 0x5) ^ (((rop) & 0xA) >> 1)) \
--                                 || (~((planemask) & 0xFF))                \
--                                 ) ? (val) : 0)
-+#define IfDest(xrop, val)   ((((xrop) & 0x5) ^ (((xrop) & 0xA) >> 1)) ? (val) : 0)
-+
-+
- /* Generic MediaGX hardware register and value definitions */
-diff -ruN XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c
---- XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c    Wed Jun 23 08:37:21 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c  Fri Nov  6 11:41:51 1998
-@@ -1,7 +1,6 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c,v 1.1.2.6 1999/06/23 12:37:21 hohndel Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c,v 1.1.2.3 1998/11/06 09:47:04 hohndel Exp $ */
- /*
-- * Copyright 1999 by Brian Falardeau.
-  * Copyright 1998 by Annius Groenink, Amsterdam.
-  *
-  * Permission to use, copy, modify, distribute, and sell this software and its
-@@ -33,6 +32,7 @@
- #include "cyrix.h"
- #include "miline.h"
-+
- /* size of color expand source area (embedded in frame buffer) */
- #define CYRIXexpandSize       32768
-@@ -41,64 +41,17 @@
-    upper nybble inverted X raster operation (bits 0 - 3 correspond to
-    bits 3 - 0 and 7 - 4 in Windows style ROP).  In some routines,
-    the role of source and pattern is inverted. */
--
--/* The following ROPs only use pattern and destination data. */
--/* They are used when the planemask specifies all planes (no mask). */
--
--static const int windowsROPpat[16] = { 
--      0x00, /* GXclear = 0 */ 
--      0xA0, /* GXand = pat AND dst */ 
--      0x50, /* GXandReverse = pat AND NOT dst */
--      0xF0, /* GXcopy = pat */ 
--      0x0A, /* GXandInverted = NOT pat AND dst */ 
--      0xAA, /* GXnoop = dst */ 
--      0x5A, /* GXxor = pat XOR dst */  
--      0xFA, /* GXor = pat OR dst */
--      0x05, /* GXnor = NOT pat AND NOT dst */ 
--      0xA5, /* GXequiv = NOT pat XOR dst */ 
--      0x55, /* GXinvert = NOT dst */ 
--      0xF5, /* GXorReverse = pat OR NOT dst */ 
--      0x0F, /* GXcopyInverted = NOT pat */ 
--      0xAF, /* GXorInverted = NOT pat OR dst */ 
--      0x5F, /* GXnand = NOT pat OR NOT dst */ 
--      0xFF, /* GXset = 1 */ 
--};
--
--/* The following ROPs use source data to specify a planemask. */
--/* If the planemask (src) is one, then the result is the appropriate */
--/* combination of pattern and destination data.  If the planemask (src) */
--/* is zero, then the result is always just destination data. */
--
--static const int windowsROPsrcMask[16] = { 
--      0x22, /* GXclear => 0 if src = 1, dst if src = 0 */ 
--      0xA2, /* GXand = pat AND dst if src = 1, dst if src = 0 */
--      0x62, /* GXandReverse = pat AND NOT dst if src = 1, dst if src = 0 */
--      0xE2, /* GXcopy = pat if src = 1, dst if src = 0 */ 
--      0x2A, /* GXandInverted = NOT pat AND dst if src = 1, dst if src = 0 */ 
--      0xAA, /* GXnoop = dst if src = 1, dst if src = 0 */
--      0x6A, /* GXxor = pat XOR dst if src = 1, dst if src = 0 */
--      0xEA, /* GXor = pat OR dst if src = 1, dst if src = 0 */
--    0x26, /* GXnor = NOT pat AND NOT dst if src = 1, dst if src = 0 */
--      0xA6, /* GXequiv = NOT pat XOR dst if src = 1, dst if src = 0 */
--      0x66, /* GXinvert = NOT dst if src = 1, dst if src = 0 */
--      0xE6, /* GXorReverse = pat OR NOT dst if src = 1, dst if src = 0 */
--    0x2E, /* GXcopyInverted = NOT pat if src = 1, dst if src = 0 */
--      0xAE, /* GXorInverted = NOT pat OR dst if src = 1, dst if src = 0 */
--      0x6E, /* GXnand = NOT pat OR NOT dst if src = 1, dst if src = 0 */
--      0xEE, /* GXset = 1 if src = 1, dst if src = 0 */
--};
--
--/* The following ROPs use pattern data to specify a planemask. */
--/* If the planemask (pat) is one, then the result is the appropriate */
--/* combination of source and destination data.  If the planemask (pat) */
--/* is zero, then the result is always just destination data. */
--
- static const int windowsROPpatMask[16] = { 0x0A, 0x8A, 0x4A, 0xCA,
-                                            0x2A, 0xAA, 0x6A, 0xEA,
-                                            0x1A, 0x9A, 0x5A, 0xDA,
-                                            0x3A, 0xBA, 0x7A, 0xFA };
-+static const int windowsROPsrcMask[16] = { 0x22, 0xA2, 0x62, 0xE2,
-+                                           0x2A, 0xAA, 0x6A, 0xEA,
-+                                           0x26, 0xA6, 0x66, 0xE6,
-+                                           0x2E, 0xAE, 0x6E, 0xEE };
-+static int bltBufWidth;
- static int blitMode;
- static int vectorMode;
-@@ -106,85 +59,25 @@
- static int copyXdir;
- static int setBlitModeOnSync = 0;
--/* STATIC VARIABLES FOR THIS FILE */
--/* Used to maintain state between setup and rendering calls. */
--
--static int CYRIXsavedROP;
--static int CYRIXtransparent;
--static int CYRIXtransColor;
--static int CYRIXstartMonoExpand = 0;
--
--static unsigned short CYRIXsaveX, CYRIXsaveY, CYRIXsaveW, CYRIXsaveH;
- /* Forward declaration of functions used in the driver */
--
- void CYRIXAccelSync();
- void CYRIXAccelInit();
- void CYRIXSetupForFillRectSolid();
- void CYRIXSubsequentFillRectSolid();
--void CYRIXSetupFor8x8PatternColorExpand();
--void CYRIXSubsequent8x8PatternColorExpand();
- void CYRIXSetupForScreenToScreenCopy();
- void CYRIXSubsequentScreenToScreenCopy();
--
- void CYRIXSubsequentBresenhamLine();
-+void CYRIXSetupFor8x8PatternColorExpand();
-+void CYRIXSubsequent8x8PatternColorExpand();
- void CYRIXSetupForCPUToScreenColorExpand();
- void CYRIXSubsequentCPUToScreenColorExpand();
--/* Routines in GXRENDER.C */
--
--void gxr_initialize(unsigned char *regptr, unsigned short bpp, 
--      unsigned short BB0base, unsigned short BB1base, 
--      unsigned short BBwidthPixels);
--
--void gxr_wait_until_idle(void);
--
--void gxr_load_solid_source(unsigned short color);
--
--void gxr_load_mono_source(unsigned short bgcolor, unsigned short fgcolor,
--      unsigned short transparent);
--
--void gxr_load_solid_pattern(unsigned short color);
--
--void gxr_load_mono_pattern(unsigned short bgcolor, unsigned short fgcolor, 
--      unsigned long data0, unsigned long data1, unsigned char transparency);
--
--void gxr_load_raster_operation(unsigned char rop);
--
--void gxr_pattern_fill(unsigned short x, unsigned short y, 
--      unsigned short width, unsigned short height);
--
--void gxr_screen_to_screen_blt(unsigned short srcx, unsigned short srcy,
--      unsigned short dstx, unsigned short dsty, unsigned short width, 
--      unsigned short height);
--
--void gxr_screen_to_screen_xblt(unsigned short srcx, unsigned short srcy,
--      unsigned short dstx, unsigned short dsty, unsigned short width, 
--      unsigned short height, unsigned short color);
--
--void gxr_text_glyph(unsigned short srcx, unsigned short srcy,
--      unsigned short dstx, unsigned short dsty, unsigned short width, 
--      unsigned short height, unsigned char *data, unsigned short pitch); 
--
--void gxr_bresenham_line(unsigned short x, unsigned short y, 
--      unsigned short length, unsigned short initerr, 
--      unsigned short axialerr, unsigned short diagerr, 
--      unsigned short flags);
--
--/*
--//---------------------------------------------------------------------------
--// CYRIXAccelInit
--//
--// This routine hooks the acceleration routines and sets appropriate flags.
--//---------------------------------------------------------------------------
--*/
-+/* Acceleration init function, sets up pointers to our accelerated functions */
- void 
- CYRIXAccelInit() 
--{
--      int bltBufWidth;
--
--      /* General acceleration flags */
-+{     /* General acceleration flags */
-       xf86AccelInfoRec.Flags = PIXMAP_CACHE
-                              | BACKGROUND_OPERATIONS
-                              | HARDWARE_PATTERN_SCREEN_ORIGIN
-@@ -245,344 +138,232 @@
-       /* calculate the pixel width of a blit buffer for convenience */
-       bltBufWidth = CYRIXbltBufSize / (vgaBitsPerPixel / 8);
-+} 
--      /* pass parameters to GXRENDER.C file */
--      gxr_initialize((unsigned char *) GXregisters, 
--              (unsigned short) vgaBitsPerPixel,
--              (unsigned short) CYRIXbltBuf0Address, 
--              (unsigned short) CYRIXbltBuf1Address, 
--              (unsigned short) bltBufWidth);
--} 
-+/* set colors - called through access macros in cyrix.h */
-+static __inline__ void CYRIXsetColors01(reg, col0, col1)
-+int reg;
-+int col0;
-+int col1;
-+{     if (vgaBitsPerPixel == 16)
-+              GX_REG(reg) = ((col1 & 0xFFFF) << 16) | (col0 & 0xFFFF);
-+      else
-+      {       col0 &= 0xFF;
-+              col1 &= 0xFF;
-+              GX_REG(reg) = (col1 << 24) | (col1 << 16) | (col0 << 8) | col0;
-+}     }
--/*
--//---------------------------------------------------------------------------
--// CYRIXAccelSync
--//
--// This routine is called before accessing the frame buffer directly to 
--// make sure that the graphics pipeline is idle.  It is also called after
--// loading the monochrome data into BB0 for bitmap to screen BLTs.
--//---------------------------------------------------------------------------
--*/
-+/* The generic Sync() function that waits for everything to
-+   be completed (e.g. before writing to the frame buffer
-+   directly). */
- void
- CYRIXAccelSync()
--{     
--      /* CHECK IF END TO CPU TO SCREEN EXPAND BLT */
--
--      if (CYRIXstartMonoExpand)
--      {       
--              /* START CPU TO SCREEN EXPAND BLT */
--              /* Data has already been loaded into BB0, so use NULL pointer. */
--
--              /* this is formally incorrect: XAA may use both BB0 and BB1
--                 for the text source bitmap, so READ_DST_FB1 should not be
--             used.  So far, this problem has not manifested itself in
--             practice. */
--
--              CYRIXstartMonoExpand = 0;
--              gxr_text_glyph(0, 0, CYRIXsaveX, CYRIXsaveY, CYRIXsaveW, 
--                      CYRIXsaveH, 0, 0);
-+{     if (setBlitModeOnSync)
-+      {       setBlitModeOnSync = 0;
-+              CYRIXsetupSync();
-+              CYRIXsetBlitMode();
-       }
--      
--      /* WAIT UNTIL IDLE */
--
--      gxr_wait_until_idle();
-+      while (GX_REG(GP_BLIT_STATUS) &
-+             (BS_BLIT_BUSY|BS_PIPELINE_BUSY|BS_BLIT_PENDING));
- }
--/*
--//---------------------------------------------------------------------------
--// CYRIXSetupForFillRectSolid
--//
--// This routine is called to setup the solid pattern color for future
--// rectangular fills or vectors.
--//---------------------------------------------------------------------------
--*/
--
-+/* Solid rectangles */
- void 
- CYRIXSetupForFillRectSolid(color, rop, planemask)
- int color, rop;
- unsigned int planemask;
--{
--      /* LOAD THE SOLID PATTERN COLOR */
--
--      gxr_load_solid_pattern((unsigned short) color);
--
--      /* CHECK IF PLANEMASK IS NOT USED (ALL PLANES ENABLED) */
--
--      if (planemask == (unsigned int) -1)
--      {
--              /* use normal pattern ROPs if all planes are enabled */
--
--              gxr_load_raster_operation(windowsROPpat[rop & 0x0F]);
--      }
--      else
--      {
--              /* select ROP that uses planemask in src data */
--
--              gxr_load_solid_source((unsigned short) planemask);
--              gxr_load_raster_operation(windowsROPsrcMask[rop & 0x0F]);
--      }
-+{     CYRIXsetupSync();
-+      CYRIXsetSourceColors01(color, color);
-+      CYRIXsetPatColors01(planemask, 0);
-+      CYRIXsetPatMode(rop, RM_PAT_DISABLE);
-+      blitMode = BM_READ_SRC_NONE | BM_WRITE_FB | BM_SOURCE_EXPAND
-+               | IfDest(rop, BM_READ_DST_FB0);
-+      vectorMode = IfDest(rop, VM_READ_DST_FB);
- }
-     
--/*
--//---------------------------------------------------------------------------
--// CYRIXSubsequentFillRectSolid
--//
--// This routine is called to fill a rectangular region using the previously
--// specified solid pattern and raster operation.  
--//
--// Sample application uses:
--//   - Window backgrounds. 
--//   - x11perf: rectangle tests (-rect500).
--//   - x11perf: fill trapezoid tests (-trap100).
--//   - x11perf: horizontal line segments (-hseg500).
--//---------------------------------------------------------------------------
--*/
-     
- void 
- CYRIXSubsequentFillRectSolid(x, y, w, h)
- int x, y, w, h;
--{
--      /* call routine to fill rectangular region */
--
--      gxr_pattern_fill((unsigned short) x, (unsigned short) y, 
--              (unsigned short) w, (unsigned short) h);
--}
--
--/*
--//---------------------------------------------------------------------------
--// CYRIXSetupFor8x8PatternColorExpand
--//
--// This routine is called to setup the monochrome pattern (8x8) and raster 
--// operation for future rectangular fills.
--//---------------------------------------------------------------------------
--*/
--
--void CYRIXSetupFor8x8PatternColorExpand(patternx, patterny, bg, fg, rop, planemask)
--int patternx, patterny;
--int bg, fg, rop;
--unsigned int planemask;
--{     int trans = (bg == -1);
--
--      /* LOAD PATTERN COLORS AND DATA */
--
--      gxr_load_mono_pattern((unsigned short) bg, (unsigned short) fg,
--              (unsigned long) patternx, (unsigned long) patterny, 
--              (unsigned char) trans);
--
--      /* CHECK IF PLANEMASK IS NOT USED (ALL PLANES ENABLED) */
--
--      if (planemask == (unsigned int) -1)
--      {
--              /* use normal pattern ROPs if all planes are enabled */
--
--              gxr_load_raster_operation(windowsROPpat[rop & 0x0F]);
--      }
--      else
--      {
--              /* select ROP that uses planemask in src data */
--
--              gxr_load_solid_source((unsigned short) planemask);
--              gxr_load_raster_operation(windowsROPsrcMask[rop & 0x0F]);
-+{     /* divide the operation into columns if required; use twice the
-+           blit buffer width because buffer 0 will overflow into buffer 1 */
-+      while (w > 2 * bltBufWidth)
-+      {       CYRIXSubsequentFillRectSolid(x, y, 2 * bltBufWidth, h);
-+              x += 2 * bltBufWidth;
-+              w -= 2 * bltBufWidth;
-       }
-+      CYRIXsetupSync();
-+      CYRIXsetDstXY(x, y);
-+      CYRIXsetWH(w, h);
-+      CYRIXsetBlitMode();
- }
--/*
--//---------------------------------------------------------------------------
--// CYRIXSubsequent8x8PatternColorExpand
--//
--// This routine is called to fill a rectangular region using the previously
--// specified monochrome pattern (8x8) and raster operation.
--//
--// Sample application uses:
--//   - Patterned desktops
--//   - x11perf: stippled rectangle tests (-srect500).
--//   - x11perf: opaque stippled rectangle tests (-osrect500).
--//---------------------------------------------------------------------------
--*/
--
--void CYRIXSubsequent8x8PatternColorExpand(patternx, patterny, x, y, w, h)
--int patternx, patterny;
--int x, y, w, h;
--{
--      /* call routine to fill rectangular region */
--
--      gxr_pattern_fill((unsigned short) x, (unsigned short) y, 
--              (unsigned short) w, (unsigned short) h);
--}
--
--/*
--//---------------------------------------------------------------------------
--// CYRIXSetupForScreenToScreenCopy
--//
--// This routine is called to setup the planemask and raster operation 
--// for future screen to screen BLTs.
--//---------------------------------------------------------------------------
--*/
-+/* Screen to screen copies */
- void 
- CYRIXSetupForScreenToScreenCopy(xdir, ydir, rop, planemask, transparency_color)
- int xdir, ydir;
- int rop;
- unsigned int planemask;
- int transparency_color;
--{
--      /* LOAD PLANEMASK INTO PATTERN DATA */
-+{     CYRIXsetupSync();
-+      CYRIXsetPatColors01(planemask, 0);
--      gxr_load_solid_pattern((unsigned short) planemask);
--      
--      /* SET RASTER OPERATION FOR USING PATTERN AS PLANE MASK */
-+      if (transparency_color == -1)
-+      {       CYRIXsetPatMode(rop, RM_PAT_DISABLE);
-+              transMode = 0;
-+      }
-+      else
-+      {       CYRIXsetPatModeTrans(RM_PAT_DISABLE);
-+              transMode = 1;
--      gxr_load_raster_operation(windowsROPpatMask[rop & 0x0F]);
-+              /* fill blit buffer 1 with the transparency color */
-+              if (vgaBitsPerPixel == 16)
-+              {       int              k   = CYRIXbltBufSize / 4;
-+                      CARD32           val = (transparency_color << 16) |
-+                                             transparency_color;
-+                      volatile CARD32* buf = &(GX_REG(CYRIXbltBuf1Address));
-+
-+                      while (--k >= 0) buf[k] = val;
-+              }
-+              else
-+                      memset(GXregisters + CYRIXbltBuf1Address,
-+                             transparency_color, CYRIXbltBufSize);
-+      }
--      /* SAVE TRANSPARENCY FLAG */
-+      blitMode = BM_READ_SRC_FB | BM_WRITE_FB | BM_SOURCE_COLOR
-+               | (transMode ? IfDest(rop, BM_READ_DST_FB1) : BM_READ_DST_NONE)
-+               | (ydir < 0 ? BM_REVERSE_Y : 0);
--      CYRIXtransparent = (transparency_color == -1) ? 0 : 1;
--      CYRIXtransColor = transparency_color;
-+      copyXdir = xdir;
- }
--/*
--//---------------------------------------------------------------------------
--// CYRIXSubsequentScreenToScreenCopy
--//
--// This routine is called to perform a screen to screen BLT using the 
--// previously specified planemask, raster operation, and transparency flag.
--//
--// Sample application uses (non-transparent):
--//   - Moving windows.
--//   - x11perf: scroll tests (-scroll500).
--//   - x11perf: copy from window to window (-copywinwin500).
--//
--// No application found using transparency.
--//---------------------------------------------------------------------------
--*/
--
- void 
- CYRIXSubsequentScreenToScreenCopy(x1, y1, x2, y2, w, h)
- int x1, y1, x2, y2, w, h;
--{
--      if (CYRIXtransparent)
--      {
--              /* CALL ROUTINE FOR TRANSPARENT SCREEN TO SCREEN BLT */
--              /* Should only be called for the "copy" raster operation. */
--
--              gxr_screen_to_screen_xblt(
--                      (unsigned short) x1, (unsigned short) y1, 
--                      (unsigned short) x2, (unsigned short) y2, 
--                      (unsigned short) w, (unsigned short) h, 
--                      (unsigned short) CYRIXtransColor);
-+{     int up       = (blitMode & BM_REVERSE_Y);
-+
-+      /* divide the operation into columns when necessary */
-+      if (copyXdir < 0)
-+      {       int x_offset = w - bltBufWidth;
-+
-+              while (x_offset > 0)
-+              {       CYRIXSubsequentScreenToScreenCopy(x1 + x_offset, y1,
-+                                                        x2 + x_offset, y2,
-+                                                        bltBufWidth, h);
-+                      x_offset -= bltBufWidth;
-+                      w -= bltBufWidth;
-+      }       }
-+      else while (w > bltBufWidth)
-+      {       CYRIXSubsequentScreenToScreenCopy(x1, y1, x2, y2,
-+                                                bltBufWidth, h);
-+              x1 += bltBufWidth;
-+              x2 += bltBufWidth;
-+              w -= bltBufWidth;
-       }
--      else
--      {
--              /* CALL ROUTINE FOR NORMAL SCREEN TO SCREEN BLT */
--              gxr_screen_to_screen_blt(
--                      (unsigned short) x1, (unsigned short) y1, 
--                      (unsigned short) x2, (unsigned short) y2, 
--                      (unsigned short) w, (unsigned short) h);
-+      CYRIXsetupSync();
-+      CYRIXsetSrcXY(x1, (up ? (y1 + h - 1) : y1));
-+      CYRIXsetDstXY(x2, (up ? (y2 + h - 1) : y2));
-+
-+      /* in transparent mode, one line reads the transparency color
-+         into a processor-internal register, and the remaining lines
-+         can be done in a single second pass */
-+      if (transMode)
-+      {       blitMode |= BM_READ_DST_BB1;
-+              CYRIXsetWH(w, 1);
-+              CYRIXsetBlitMode();
-+              h--;
-+              if (!h) return;
-+              if (up) { y1--; y2--; }
-+              else { y1++; y2++; }
-+              CYRIXsetupSync();
-+              blitMode &= ~(BM_READ_DST_BB1);
-       }
-+      CYRIXsetWH(w, h);
-+      CYRIXsetBlitMode();
- }
--/*
--//---------------------------------------------------------------------------
--// CYRIXSubsequentBresenhamLine
--//
--// This routine is called to render a vector using the specified Bresenham
--// parameters.  
--//
--// Sample application uses:
--//   - Window outlines on window move.
--//   - x11perf: line segments (-seg500).
--//---------------------------------------------------------------------------
--*/
-+/* Bresenham lines */
- void
- CYRIXSubsequentBresenhamLine(x1, y1, octant, err, e1, e2, length)
- int x1, y1, octant, err, e1, e2, length;
--{     
--      unsigned short flags;
--
--      /* DETERMINE YMAJOR AND DIRECTION FLAGS */
--
--      if (octant & YMAJOR)
--      {       flags = VM_Y_MAJOR;
--              if (!(octant & XDECREASING)) flags |= VM_MINOR_INC;
--              if (!(octant & YDECREASING)) flags |= VM_MAJOR_INC;
-+{     if (octant & YMAJOR)
-+      {       vectorMode = (vectorMode & VM_READ_DST_FB) | VM_Y_MAJOR;
-+              if (!(octant & XDECREASING)) vectorMode |= VM_MINOR_INC;
-+              if (!(octant & YDECREASING)) vectorMode |= VM_MAJOR_INC;
-       }
-       else
--      {       flags = VM_X_MAJOR;
--              if (!(octant & XDECREASING)) flags |= VM_MAJOR_INC;
--              if (!(octant & YDECREASING)) flags |= VM_MINOR_INC;
-+      {       vectorMode = (vectorMode & VM_READ_DST_FB) | VM_X_MAJOR;
-+              if (!(octant & XDECREASING)) vectorMode |= VM_MAJOR_INC;
-+              if (!(octant & YDECREASING)) vectorMode |= VM_MINOR_INC;
-       }
--      /* CALL ROUTINE TO DRAW VECTOR */
--
--      gxr_bresenham_line((unsigned short) x1, (unsigned short) y1, 
--              (unsigned short) length, (unsigned short) err, 
--              (unsigned short) e1, (unsigned short) e2, (unsigned short) flags);      
-+      CYRIXsetupSync();
-+      CYRIXsetDstXY(x1, y1);
-+      CYRIXsetWH(length, (err & 0xFFFF));
-+      CYRIXsetSrcXY((e1 & 0xFFFF), (e2 & 0xFFFF));
-+      CYRIXsetVectorMode();
- }
--/*
--//---------------------------------------------------------------------------
--// CYRIXSetupForCPUToScreenColorExpand
--//
--// This routine is called to setup the planemask, colors, and raster 
--// operation for future monocrome bitmap to screen BLTs.
--//---------------------------------------------------------------------------
--*/
--void CYRIXSetupForCPUToScreenColorExpand(bg, fg, rop, planemask)
-+/* 8x8 pattern color expand */
-+void CYRIXSetupFor8x8PatternColorExpand(patternx, patterny, bg, fg, rop, planemask)
-+int patternx, patterny;
- int bg, fg, rop;
- unsigned int planemask;
- {     int trans = (bg == -1);
--      /* LOAD SOURCE COLORS */
-+      CYRIXsetupSync();
-+      CYRIXsetSourceColors01(planemask, planemask);
-+      CYRIXsetPatColors01(trans ? 0 : bg, fg);
-+      CYRIXsetPatData(patternx, patterny);
-+      CYRIXsetPatModeX(rop, RM_PAT_MONO | (trans ? RM_PAT_TRANSPARENT : 0));
--      gxr_load_mono_source((unsigned short) bg, (unsigned short) fg, 
--              (unsigned short) trans);
-+      blitMode = BM_READ_SRC_NONE | BM_WRITE_FB | BM_SOURCE_EXPAND
-+               | (trans ? IfDest(rop, BM_READ_DST_FB0) : BM_READ_DST_NONE);
-+}
--      /* LOAD PLANEMASK INTO PATTERN DATA */
-+void CYRIXSubsequent8x8PatternColorExpand(patternx, patterny, x, y, w, h)
-+int patternx, patterny;
-+int x, y, w, h;
-+{     CYRIXSubsequentFillRectSolid(x, y, w, h);
-+}
--      gxr_load_solid_pattern((unsigned short) planemask);
--      
--      /* SET RASTER OPERATION FOR USING PATTERN AS PLANE MASK */
--      gxr_load_raster_operation(windowsROPpatMask[rop & 0x0F]);
--}
-+/* CPU-to-screen color expansion */
-+void CYRIXSetupForCPUToScreenColorExpand(bg, fg, rop, planemask)
-+int bg, fg, rop;
-+unsigned int planemask;
-+{     int trans = (bg == -1);
--/*
--//---------------------------------------------------------------------------
--// CYRIXSubsequentCPUToScreenColorExpand
--//
--// This routine is called to render expanded monocrome bitmap data to the
--// screen using the previously specified colors and raster operation.  Since
--// the server loads the monochrome data into BB0, not the driver, this 
--// routine just sets a flag and saves the parameters to use when the server
--// is done loading the data and calls the CYRIXAccelSync function. 
--//
--// Sample application uses:
--//   - Text in windows.
--//   - x11perf: text (-ftext, -f8text, -f9text, ...).
--//---------------------------------------------------------------------------
--*/
-+      CYRIXsetupSync();
-+      CYRIXsetSourceColors01(trans ? 0 : bg, fg);
-+      CYRIXsetPatColors01(planemask, 0);
-+
-+      CYRIXsetPatMode(rop, RM_PAT_DISABLE | (trans ? RM_SRC_TRANSPARENT : 0));
-+
-+      /* this is formally incorrect: XAA may use both BB0 and BB1
-+         for the text source bitmap, so READ_DST_FB1 should not be
-+         used.  So far, this problem has not manifested itself in
-+         practice. */
-+      blitMode = BM_READ_SRC_BB0 | BM_WRITE_FB | BM_SOURCE_EXPAND
-+               | (trans ? IfDest(rop, BM_READ_DST_FB1) : BM_READ_DST_NONE);
-+}
- void CYRIXSubsequentCPUToScreenColorExpand(x, y, w, h, skipleft)
- int x, y, w, h;
- int skipleft;
--{
--      CYRIXstartMonoExpand = 1;
--      CYRIXsaveX = x;
--      CYRIXsaveY = y;
--      CYRIXsaveW = w;
--      CYRIXsaveH = h;
--
--      /* WAIT UNTIL IDLE BEFORE ALLOWING WRITES TO BLT BUFFERS */
--      /* Server will load the monochrome data into BB0 after this. */
-+{     CYRIXsetupSync();
-+      CYRIXsetSrcXY(0, 0);
-+      CYRIXsetDstXY(x, y);
-+      CYRIXsetWH(w, h);
--      gxr_wait_until_idle();
-+      CYRIXAccelSync();
-+      setBlitModeOnSync = 1;
- }
--
--/* END OF FILE */
-diff -ruN XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_driver.c XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_driver.c
---- XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_driver.c   Wed Jun 23 08:37:22 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_driver.c Fri Nov  6 11:41:51 1998
-@@ -1,12 +1,9 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_driver.c,v 1.1.2.7 1999/06/23 12:37:22 hohndel Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_driver.c,v 1.1.2.6 1998/11/06 09:47:08 hohndel Exp $ */
- /*
-- * Copyright 1999 by Brian Falardeau 
-  * Copyright 1998 by Annius V. Groenink (A.V.Groenink@zfc.nl, avg@cwi.nl),
-  *                   Dirk H. Hohndel (hohndel@suse.de),
-  *                   Portions: the GGI project & confidential CYRIX databooks.
-  *
-- * Substitute Brian Falardeau into a copy of the following legal jargon...
-- *
-  * Permission to use, copy, modify, distribute, and sell this software and its
-  * documentation for any purpose is hereby granted without fee, provided that
-  * the above copyright notice appear in all copies and that both that
-@@ -25,17 +22,13 @@
-  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-  * PERFORMANCE OF THIS SOFTWARE.
-  */
-+/* $XConsortium: $ */
- /*************************************************************************/
- /*
-    Log for the cyrix driver source as a whole
--   May 1999, Brian Falardeau:
--   - Fixed interaction with SoftVGA for setting 2K pitch at 1280x1024.
--   - Added CRTC tables for 60 Hz and 75 Hz modes.
--   - Removed enabling display compression directly for VSA1.
--
-    5th Nov 1998 avg  - Fixed blit buffer organization using CPU_WRITE
-                        instruction.  Support for older chipsets (color
-                        treatment and different CPU_WRITE opcode).
-@@ -115,35 +108,50 @@
- #include "extensions/xf86dgastr.h"
- #endif
-+#ifdef XF86VGA16
-+#define MONOVGA
-+#endif
-+#if !defined(MONOVGA) && !defined(XF86VGA16)
- #include "vga256.h"
-+#endif
-+
- #include "cyrix.h"
- pciTagRec CyrixPciTag;
- extern vgaHWCursorRec vgaHWCursor;
--#define NUM_STD_CRTC_REGS 25
--#define NUM_EXT_CRTC_REGS 16
--
- typedef struct {
-       vgaHWRec std; /* IBM VGA */
-       struct vgaCYRIXext
--      {       
--              /* override of miscellaneous output register value */
--
--              unsigned char miscOutput;
--
--              /* override of standard CRTC register values */
--
--              unsigned char stdCRTCregs[NUM_STD_CRTC_REGS];
--
--              /* extended CRTC register values (specific to MediaGX) */
--
--              unsigned char extCRTCregs[NUM_EXT_CRTC_REGS];
-+      {       /* extended SoftVGA registers */
-+              unsigned char VerticalTimingExtension;
-+              unsigned char ExtendedAddressControl;
-+              unsigned char ExtendedOffset;
-+              unsigned char ExtendedColorControl;
-+              unsigned char DisplayCompression;
-+              unsigned char DriverControl;
-+              unsigned char DACControl;
-+              unsigned char ClockControl;
-+              unsigned char CrtClockFrequency;
-+              unsigned char CrtClockFrequencyFraction;
-+              unsigned char RefreshRate;
-+
-+              /* display controller hardware registers */
-+              CARD32 DcGeneralCfg;
-+              CARD32 DcCursStOffset;
-+              CARD32 DcCbStOffset;
-+              CARD32 DcLineDelta;
-+              CARD32 DcBufSize;
-+              CARD32 DcCursorX;
-+              CARD32 DcCursorY;
-+              CARD32 DcCursorColor;
-               /* graphics pipeline registers */
--
-               CARD32 GpBlitStatus;
-+
-+              /* save area for cursor image */
-+              char cursorPattern[256];
-       }       ext;
- } vgaCYRIXRec, *vgaCYRIXPtr;
-@@ -158,9 +166,11 @@
- static void   CYRIXRestore();
- static void   CYRIXAdjust();
-+#ifndef MONOVGA
- static void   CYRIXFbInit();
- static Bool   CYRIXScreenInit();
- static Bool   CYRIXPitchAdjust();
-+#endif
- void   CYRIXSetRead();
- void   CYRIXSetWrite();
-@@ -177,7 +187,11 @@
-       CYRIXAdjust,
-       vgaHWSaveScreen,
-       (void (*)())NoopDDA,     /* CYRIXGetMode */
-+#ifndef MONOVGA
-       CYRIXFbInit,
-+#else
-+      (void (*)())NoopDDA,     /* CYRIXFbInit */
-+#endif
-       CYRIXSetRead,
-       CYRIXSetWrite,
-       CYRIXSetReadWrite,
-@@ -191,9 +205,9 @@
-       VGA_NO_DIVIDE_VERT,      /* ChipInterlaceType */
-       {0,},                    /* ChipOptionFlags */
-       8,                       /* ChipRounding */
--      TRUE,                    /* ChipUseLinearAddressing */
--      0x40800000,              /* ChipLinearBase */
--      0x001FFFFF,              /* ChipLinearSize */
-+      FALSE,                   /* ChipUseLinearAddressing */
-+      0,                       /* ChipLinearBase */
-+      0,                       /* ChipLinearSize */
-       TRUE,                    /* ChipHas16bpp */
-       FALSE,                   /* ChipHas24bpp */
-       FALSE,                   /* ChipHas32bpp */
-@@ -207,10 +221,6 @@
- char* GXregisters;
--int CYRIXvsaversion;                  /* VSA version */
--#define CYRIX_VSA1    1
--#define CYRIX_VSA2  2
--
- int CYRIXcbufferAddress;      /* relative to video base */
- int CYRIXoffscreenAddress;
- int CYRIXcursorAddress;
-@@ -225,94 +235,6 @@
- #define newstate ((vgaCYRIXPtr)vgaNewVideoState)
--typedef struct {
--      int xsize;
--      int ysize;
--      int clock;
--      unsigned char miscOutput;
--      unsigned char stdCRTCregs[NUM_STD_CRTC_REGS];
--      unsigned char extCRTCregs[NUM_EXT_CRTC_REGS];
--} vgaCYRIXmode;
--
--vgaCYRIXmode CYRIXmodes[] =
--{
--/*------------------------------------------------------------------------------*/
--      { 640, 480,         /* 640x480 */
--        25,               /* 25 MHz clock = 60 Hz refresh rate */
--        0xE3,             /* miscOutput register */
--      { 0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0x0B, 0x3E, /* standard CRTC */ 
--        0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
--        0xEA, 0x0C, 0xDF, 0x50, 0x00, 0xE7, 0x04, 0xE3, 0xFF },    
--      { 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* extended CRTC */
--        0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00 } },
--/*------------------------------------------------------------------------------*/
--      { 800, 600,         /* 800x600 */
--        40,               /* 40 MHz clock = 60 Hz refresh rate */
--        0x23,             /* miscOutput register */
--      { 0x7F, 0x63, 0x64, 0x82, 0x6B, 0x1B, 0x72, 0xF0, /* standard CRTC */ 
--        0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
--        0x59, 0x0D, 0x57, 0x64, 0x00, 0x57, 0x73, 0xE3, 0xFF },    
--      { 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* extended CRTC */
--        0x00, 0x00, 0x01, 0x03, 0xA0, 0x50, 0x00, 0x00 } },
--/*------------------------------------------------------------------------------*/
--      { 1024, 768,        /* 1024x768 */
--        65,               /* 65 MHz clock = 60 Hz refresh rate */
--        0xE3,             /* miscOutput register */
--      { 0xA3, 0x7F, 0x80, 0x86, 0x85, 0x96, 0x24, 0xF5, /* standard CRTC */ 
--        0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
--        0x04, 0x0A, 0xFF, 0x80, 0x00, 0xFF, 0x25, 0xE3, 0xFF },    
--      { 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* extended CRTC */
--        0x00, 0x00, 0x01, 0x03, 0x80, 0x41, 0x00, 0x00 } },
--/*------------------------------------------------------------------------------*/
--      { 1280, 1024,       /* 1280x1024 */
--        108,              /* 108 MHz clock = 60 Hz refresh rate */
--        0x23,             /* miscOutput register */
--      { 0xCF, 0x9F, 0xA0, 0x92, 0xAA, 0x19, 0x28, 0x52, /* standard CRTC */ 
--        0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
--        0x01, 0x04, 0xFF, 0xA0, 0x00, 0x00, 0x29, 0xE3, 0xFF },    
--      { 0x00, 0x51, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* extended CRTC */
--        0x00, 0x00, 0x01, 0x03, 0x80, 0x6C, 0x00, 0x00 } },
--/*------------------------------------------------------------------------------*/
--      { 640, 480,         /* 640x480 */
--        31,               /* 31.5 MHz clock = 75 Hz refresh rate */
--        0xE3,             /* miscOutput register */
--      { 0x64, 0x4F, 0x4F, 0x88, 0x54, 0x9B, 0xF2, 0x1F, /* standard CRTC */ 
--        0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
--        0xE1, 0x04, 0xDF, 0x50, 0x00, 0xDF, 0xF3, 0xE3, 0xFF },    
--      { 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* extended CRTC */
--        0x00, 0x00, 0x01, 0x03, 0xA0, 0x3F, 0x00, 0x00 } },
--/*------------------------------------------------------------------------------*/
--      { 800, 600,         /* 800x600 */
--        99,               /* 99 MHz clock = 75 Hz refresh rate */
--        0x23,             /* miscOutput register */
--      { 0x7F, 0x63, 0x63, 0x83, 0x68, 0x11, 0x6F, 0xF0, /* standard CRTC */ 
--        0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
--        0x59, 0x1C, 0x57, 0x64, 0x00, 0x57, 0x70, 0xE3, 0xFF },    
--      { 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* extended CRTC */
--        0x00, 0x00, 0x01, 0x03, 0xA0, 0x63, 0x00, 0x00 } },
--/*------------------------------------------------------------------------------*/
--      { 1024, 768,        /* 1024x768 */
--        79,               /* 79 MHz clock = 75 Hz refresh rate */
--        0xE3,             /* miscOutput register */
--      { 0x9F, 0x7F, 0x7F, 0x83, 0x84, 0x8F, 0x1E, 0xF5, /* standard CRTC */ 
--        0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
--        0x01, 0x04, 0xFF, 0x80, 0x00, 0xFF, 0x1F, 0xE3, 0xFF },    
--      { 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* extended CRTC */
--        0x00, 0x00, 0x01, 0x03, 0x80, 0x4F, 0x00, 0x00 } },
--/*------------------------------------------------------------------------------*/
--      { 1280, 1024,       /* 1280x1024 */
--        135,              /* 135 MHz clock = 75 Hz refresh rate */
--        0x23,             /* miscOutput register */
--      { 0xCE, 0x9F, 0x9F, 0x92, 0xA4, 0x15, 0x28, 0x52, /* standard CRTC */ 
--        0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
--        0x01, 0x04, 0xFF, 0xA0, 0x00, 0x00, 0x29, 0xE3, 0xFF },    
--      { 0x00, 0x51, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* extended CRTC */
--        0x00, 0x00, 0x01, 0x03, 0x80, 0x87, 0x00, 0x00 } },
--/*------------------------------------------------------------------------------*/
--};
--
--#define NUM_CYRIX_MODES sizeof(CYRIXmodes)/sizeof(vgaCYRIXmode)
--
- static char *
- CYRIXIdent(n)
- int n;
-@@ -478,6 +400,7 @@
-       vga256InfoRec.bankedMono = TRUE;
-       OFLG_SET(CLOCK_OPTION_PROGRAMABLE, &vga256InfoRec.clockOptions);
-+#ifndef MONOVGA
-       /* define option set valid for the driver */
-       OFLG_SET(OPTION_SW_CURSOR, &CYRIX.ChipOptionFlags);
-       OFLG_SET(OPTION_HW_CURSOR, &CYRIX.ChipOptionFlags);
-@@ -496,12 +419,13 @@
-       CYRIX.ChipLinearSize  = (1024 * vga256InfoRec.videoRam);
-       CYRIX.ChipUseLinearAddressing = TRUE;
-+#endif
-       /* map the entire area from GX_BASE (scratchpad area)
-          up to the end of the control registers */
-       GXregisters = (char*)xf86MapVidMem(vga256InfoRec.scrnIndex,
-                                   EXTENDED_REGION,
--                                  (void*)physbase, 0x20000);
-+                                  (void*)physbase, 0x9000);
-       if (!GXregisters)
-       {       ErrorF("%s %s: Cannot map hardware registers\n",
-@@ -509,80 +433,27 @@
-               goto probeFailed;
-       }
--      /* check VSA version */
--      /* VSA2 contains a "CX" signature at registers 0x35 and 0x36. */
--      /* The SoftVGA interface changed slightly for VSA2.  Originally, */
--      /* VSA2 was intended for MXi only, but it may someday be */
--      /* provided for MediaGX systems as well. */
--
--      CYRIXvsaversion = CYRIX_VSA2;
--      outb(vgaIOBase + 4, 0x35);
--      if (inb(vgaIOBase + 5) != 'C') CYRIXvsaversion = CYRIX_VSA1;
--      outb(vgaIOBase + 4, 0x36);
--      if (inb(vgaIOBase + 5) != 'X') CYRIXvsaversion = CYRIX_VSA1;
--      if (CYRIXvsaversion == CYRIX_VSA1)
--      {
--              ErrorF("%s %s: VSA1 detected\n", 
--                      XCONFIG_PROBED, vga256InfoRec.name);
--      }
--      else
--      {
--              ErrorF("%s %s: VSA2 detected\n", 
--                      XCONFIG_PROBED, vga256InfoRec.name);
--      }
-       return(TRUE);
- }
--/*------------------------------------------------------------------------*\
--** FbInit()
--** 
--** From README file: "The FbInit() function is required for drivers with
--** accelerated graphics support.  It is used to replace default cfb.banked
--** functions with accelerated chip-specific versions.
--**
--** For the Cyrix driver, this routine is also used to allocate video 
--** memory.  This is more complicated than it needs to be...
--**
--** For VSA1, SoftVGA manages all of graphics memory, including the 
--** compression buffer, cursor buffer, and offscreen memory.  The driver 
--** should not allocate memory itself.  For offscreen memory it reads 
--** registers 0x3C and 0x3D.  For the cursor buffer it reads the hardware 
--** register after validating a mode.  For compression, it just sets bit 0
--** of register 0x49 if it wants to use compression, and SoftVGA will 
--** enable it if memory has been allocated.
--**
--** This model, however, breaks down for this driver.  There is a bug in 
--** SoftVGA that keeps the 0x3C register from working properly.  This bug
--** also prevents compression from being enabled when using a virtual 
--** desktop.  This driver also cannot use the memory past 2 Meg, which 
--** effects the memory calculation. 
--**
--** Therefore, this driver does what it is not supposed to and allocates
--** video memory itself.  But, this is required due to bugs in SoftVGA and,
--** as it turns out, works out fine (with limiting compression use).
--**
--** For VSA2, the driver is supposed to do this allocation itself.
--\*------------------------------------------------------------------------*/
-+#ifndef MONOVGA
- static void
- CYRIXFbInit()
- {     int lineDelta    = vga256InfoRec.displayWidth * (vgaBitsPerPixel / 8);
-       int virtualDelta = vga256InfoRec.virtualX * (vgaBitsPerPixel / 8);
--      int base;
-       vgaSetScreenInitHook(CYRIXScreenInit);
--      /* always put the cursor at the end of video memory. */
--
--      CYRIXcursorAddress = CYRIX.ChipLinearSize - 256;
--
-       /* offscreen memory is, normally, right after the frame buffer;
-+         always put the cursor at the end of video memory.
-+         
-          (It would be nice to use the ignored 64KB block at the end of
-          the video memory (2112 - 2048) for the hardware cursor, but
-          it is not mapped.  This will not be a problem in Xfree 3.9 */
--
-       CYRIXoffscreenAddress = (lineDelta * vga256InfoRec.virtualY);
--      CYRIXoffscreenSize = CYRIXcursorAddress - CYRIXoffscreenAddress;
-+      CYRIXcursorAddress    = CYRIX.ChipLinearSize - 256;
-+      CYRIXoffscreenSize    = CYRIXcursorAddress - CYRIXoffscreenAddress;
-       /* if there is enough room between lines, put the compression
-          buffer there */
-@@ -591,7 +462,7 @@
-               CYRIXcbLineDelta    = (lineDelta >> 2);
-               if (xf86Verbose > 1)
-                       ErrorF("%s %s: Interleaving frame buffer and compression buffer\n",
--                                 XCONFIG_PROBED, vga256InfoRec.name);
-+                             XCONFIG_PROBED, vga256InfoRec.name);
-       }
-       /* otherwise, put it directly after the virtual frame */
-       else
-@@ -600,7 +471,7 @@
-               if (cbuffer_size > CYRIXoffscreenSize)
-               {       CYRIXcbLineDelta  =  0;
-                       ErrorF("%s %s: No room for the compression buffer\n",
--                                 XCONFIG_PROBED, vga256InfoRec.name);
-+                             XCONFIG_PROBED, vga256InfoRec.name);
-               }
-               else
-               {       CYRIXcbufferAddress    = CYRIXoffscreenAddress;
-@@ -609,43 +480,25 @@
-                       CYRIXoffscreenSize    -= cbuffer_size;
-       }       }
--      /* print results of offscreen memory configuration */
--
--      if (CYRIXoffscreenSize <= 0)
--      {
--              ErrorF("%s %s: No offscreen memory available.\n", 
--                      XCONFIG_PROBED, vga256InfoRec.name);
--      }
--      else
--      {
--              ErrorF("%s %s: Offscreen memory from 0x%8.8X-0x%8.8X\n",
--                      XCONFIG_PROBED, vga256InfoRec.name, 
--                      CYRIXoffscreenAddress, 
--                      CYRIXoffscreenAddress+CYRIXoffscreenSize-1);
--      }
--
--    /* call CYRIXAccelInit to setup the XAA accelerated functions */
--
-+        /* call CYRIXAccelInit to setup the XAA accelerated functions */
-       if (!OFLG_ISSET(OPTION_NOACCEL, &vga256InfoRec.options))
-               CYRIXAccelInit();
-       /* install hardware cursor routines */
--
-       if (OFLG_ISSET(OPTION_HW_CURSOR, &vga256InfoRec.options))
--      {       if (CYRIXoffscreenSize > 0)
-+      {       if (CYRIXoffscreenSize >= 0)
-               {       vgaHWCursor.Initialized = TRUE;
-                       vgaHWCursor.Init = CYRIXCursorInit;
-                       vgaHWCursor.Restore = CYRIXRestoreCursor;
-                       vgaHWCursor.Warp = CYRIXWarpCursor;
-                       vgaHWCursor.QueryBestSize = CYRIXQueryBestSize;
--                      ErrorF("%s %s: Using hardware cursor at %8.8X\n",
--                              XCONFIG_PROBED, vga256InfoRec.name, CYRIXcursorAddress);
-+                      if (xf86Verbose)
-+                         ErrorF("%s %s: Using hardware cursor\n",
-+                                XCONFIG_PROBED, vga256InfoRec.name);
-               }
-               else
--              {
-                       ErrorF("%s %s: No room for hardware cursor\n",
--                              XCONFIG_PROBED, vga256InfoRec.name);
--              }
-+                             XCONFIG_PROBED, vga256InfoRec.name);
-       }
- }
-@@ -696,6 +549,7 @@
-       return pitch;
- }
-+#endif /* not MONOVGA */
- static void
-@@ -747,121 +601,210 @@
- static void
- CYRIXresetVGA()
--{
--      int i;
-+{     unsigned char temp;
-+      /* switch off compression and cursor the hard way */
-+      GX_REG(DC_UNLOCK)  = DC_UNLOCK_VALUE;
-+      GX_REG(DC_GENERAL_CFG) &= ~(DC_GCFG_CMPE | DC_GCFG_DECE | DC_GCFG_FDTY | DC_GCFG_CURE);
-+      GX_REG(DC_UNLOCK)  = 0;
-+      CYRIXmarkLinesDirty();
-       /* reset SoftVGA extensions to standard VGA behaviour */
--
--      for (i = 0; i < NUM_EXT_CRTC_REGS; i++)
--      {
--              outb(vgaIOBase + 4, 0x40 + i);
--              outb(vgaIOBase + 5, 0x00);
--      }
-+      outb(vgaIOBase + 4, CrtcExtendedAddressControl);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, temp & 0xf8);
-+      outb(vgaIOBase + 4, CrtcExtendedStartAddress);
-+      outb(vgaIOBase + 5, 0x00);
-+      outb(vgaIOBase + 4, CrtcWriteMemoryAperture);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, temp & 0xe0);
-+      outb(vgaIOBase + 4, CrtcReadMemoryAperture);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, temp & 0xe0);
-+      outb(vgaIOBase + 4, CrtcDriverControl);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, temp & 0xfe);
-+      outb(vgaIOBase + 4, CrtcDisplayCompression);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, temp & 0xf0);
- }
- static void
- CYRIXRestore(restore)
- vgaCYRIXPtr restore;
--{     unsigned char i, temp, temp2;
--      unsigned long value;
--
--      /* unlock extended CRTC registers */
--
--      outb(vgaIOBase + 4, 0x30);
--      outb(vgaIOBase + 5, 0x57);
--      outb(vgaIOBase + 5, 0x4C);
-+{     unsigned char temp;
-+      vgaProtect(TRUE);               /* Blank the screen */
--      /* SIGNAL THE BEGINNING OF THE MODE SWITCH 
--       SoftVGA will hold off validating the back end hardware. */
--
--      outb(vgaIOBase + 4, CrtcModeSwitchControl);
--      outb(vgaIOBase + 5, 0x01);
-+      /* it would be ideal to be able to use the ModeSwitchControl
-+         register to protect SoftVGA from reading the configuration
-+         before all registers have been written.  But that bit must be
-+         set somewhere in the middle of vgaHWRestore (after restoring
-+         the font). Luckily things seem to work without it. */
-       /* restore standard VGA portion */
--
-       CYRIXresetVGA();
-       vgaHWRestore((vgaHWPtr)restore);
-+      CYRIXmarkLinesDirty();
--      /* override restored miscellaneous output regiter value */
--      
--      outb(0x3C2, restore->ext.miscOutput);
--
--      /* override restored standard CRTC register values */
--
--      outb(vgaIOBase + 4, 0x11); 
--      outb(vgaIOBase + 5, 0x00);
--      for (i = 0; i < NUM_STD_CRTC_REGS; i++)
--      {
--              outb(vgaIOBase + 4, i);
--              outb(vgaIOBase + 5, restore->ext.stdCRTCregs[i]);
--      }
--      
-       /* restore SoftVGA extended registers */
-+      outb(vgaIOBase + 4, CrtcDriverControl);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, (restore->ext.DriverControl & 0x01)
-+                        | (temp & 0xfe));
-+
-+      outb(vgaIOBase + 4, CrtcVerticalTimingExtension);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, (restore->ext.VerticalTimingExtension & 0x55)
-+                        | (temp & 0xaa));
-+
-+      outb(vgaIOBase + 4, CrtcExtendedAddressControl);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, (restore->ext.ExtendedAddressControl & 0x07)
-+                        | (temp & 0xf8));
-+
-+      outb(vgaIOBase + 4, CrtcExtendedOffset);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, (restore->ext.ExtendedOffset & 0x03)
-+                        | (temp & 0xfc));
-+
-+      outb(vgaIOBase + 4, CrtcExtendedColorControl);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, (restore->ext.ExtendedColorControl & 0x07)
-+                        | (temp & 0xf8));
-+
-+      outb(vgaIOBase + 4, CrtcDisplayCompression);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, (restore->ext.DisplayCompression & 0x0f)
-+                        | (temp & 0xf0));
-+
-+      outb(vgaIOBase + 4, CrtcDACControl);
-+      temp = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 5, (restore->ext.DACControl & 0x0e)
-+                        | (temp & 0xf1));
-+
-+      if (restore->std.NoClock >= 0)
-+      {       outb(vgaIOBase + 4, CrtcClockControl);
-+              temp = inb(vgaIOBase + 5);
-+              outb(vgaIOBase + 5, (restore->ext.ClockControl & 0xb0)
-+                                | (temp & 0x4f));
-+
-+              outb(vgaIOBase + 4, CrtcClockFrequency);
-+              outb(vgaIOBase + 5, restore->ext.CrtClockFrequency);
-+
-+              outb(vgaIOBase + 4, CrtcClockFrequencyFraction);
-+              outb(vgaIOBase + 5, restore->ext.CrtClockFrequencyFraction);
-+
-+              outb(vgaIOBase + 4, CrtcRefreshRate);
-+              outb(vgaIOBase + 5, restore->ext.RefreshRate);
-+      }
-+
-+      /* let SoftVGA programming settle before we access DC registers,
-+         but don't wait too long */
-+      usleep(1000);
-+      CYRIXmarkLinesDirty();
-+
-+      /* restore display controller hardware registers */
-+#ifndef MONOVGA
-+#define DCFG_MASK       (DC_GCFG_FDTY | DC_GCFG_DECE | DC_GCFG_CMPE)
-+#define GPBS_MASK       (BC_16BPP | BC_FB_WIDTH_2048)
--      for (i = 0; i < NUM_EXT_CRTC_REGS; i++)
--      {
--              outb(vgaIOBase + 4, 0x40+i);
--              outb(vgaIOBase + 5, restore->ext.extCRTCregs[i]);
--      }
-+      GX_REG(DC_UNLOCK) = DC_UNLOCK_VALUE;
--      /* signal the end of the mode switch */
-+      GX_REG(DC_CURS_ST_OFFSET) = restore->ext.DcCursStOffset;
-+      GX_REG(DC_CB_ST_OFFSET)  = restore->ext.DcCbStOffset;
-+      GX_REG(DC_LINE_DELTA)    = (GX_REG(DC_LINE_DELTA) & 0xFFC00FFF)
-+                               | (restore->ext.DcLineDelta & 0x003FF000);
-+      GX_REG(DC_BUF_SIZE)      = (GX_REG(DC_BUF_SIZE) & 0xFFFF01FF)
-+                                 | (restore->ext.DcBufSize & 0x0000FE00);
-+      GX_REG(DC_CURSOR_X)      = restore->ext.DcCursorX;
-+      GX_REG(DC_CURSOR_Y)      = restore->ext.DcCursorY;
-+      GX_REG(DC_CURSOR_COLOR)  = restore->ext.DcCursorColor;
--      outb(vgaIOBase + 4, CrtcModeSwitchControl);
--      outb(vgaIOBase + 5, 0x00);
-+      GX_REG(DC_GENERAL_CFG)   = (GX_REG(DC_GENERAL_CFG) & (~DCFG_MASK))
-+                               | (restore->ext.DcGeneralCfg & DCFG_MASK);
--      /* wait until SoftVGA has validated the mode.
--         This is for VSA1 only, where SoftVGA waits until the next
--         vertical blank to recalculate the hardware state.  For VSA2
--         the hardware us updated immediately, so this is not needed. 
--         THIS MUST BE DONE FOR VSA1 before loading the GP_BLT_STATUS
--         register, otherwise SoftVGA will override the value. */
-+      GX_REG(DC_UNLOCK) = 0;
--      if (CYRIXvsaversion == CYRIX_VSA1)
--      {
--              outb(vgaIOBase + 4, 0x33); 
--              while(inb(vgaIOBase + 5) & 0x80); 
--      }
-+      GX_REG(GP_BLIT_STATUS)   = (GX_REG(GP_BLIT_STATUS) & (~GPBS_MASK))
-+                               | (restore->ext.GpBlitStatus & GPBS_MASK);
--      /* overrite what SoftVGA may have stored into GP_BLIT_STATUS */
-+      /* restore cursor pattern */
-+      if (restore->ext.DcCursStOffset < 1024 * vga256InfoRec.videoRam)
-+              memcpy((char*)vgaLinearBase + restore->ext.DcCursStOffset,
-+                     restore->ext.cursorPattern, 256);
-+#endif
--      GX_REG(GP_BLIT_STATUS) = restore->ext.GpBlitStatus;
-+      vgaProtect(FALSE);              /* Turn on screen */
- }
- static void *
- CYRIXSave(save)
- vgaCYRIXPtr save;
--{     unsigned char i;
--      struct vgaCYRIXext ext;
-+{     struct vgaCYRIXext ext;
--      /* save miscellaneous output register */
-+#ifndef MONOVGA
-+      /* save graphics pipeline registers */
-+      ext.GpBlitStatus   = GX_REG(GP_BLIT_STATUS);
--      ext.miscOutput = inb(0x3CC);
-+      /* save display controller hardware registers */
-+      GX_REG(DC_UNLOCK)  = DC_UNLOCK_VALUE;
-+      ext.DcGeneralCfg   = GX_REG(DC_GENERAL_CFG);
-+      ext.DcCursStOffset = GX_REG(DC_CURS_ST_OFFSET);
-+      ext.DcCbStOffset   = GX_REG(DC_CB_ST_OFFSET);
-+      ext.DcLineDelta    = GX_REG(DC_LINE_DELTA);
-+      ext.DcBufSize      = GX_REG(DC_BUF_SIZE);
-+      ext.DcCursorX      = GX_REG(DC_CURSOR_X);
-+      ext.DcCursorY      = GX_REG(DC_CURSOR_Y);
-+      ext.DcCursorColor  = GX_REG(DC_CURSOR_COLOR);
-+      GX_REG(DC_UNLOCK)  = 0;
-+
-+      /* save cursor pattern.
-+         In the 3.3.1 solution, we don't need to do this
-+         if it is in the extra 64KB block of frame buffer memory
-+         that we ignore (and is not mapped anyway) */
-+      if (ext.DcCursStOffset < 1024 * vga256InfoRec.videoRam)
-+              memcpy(ext.cursorPattern,
-+                     (char*)vgaLinearBase + ext.DcCursStOffset, 256);
-+#endif
--      /* save standard CRTC registers */
-+      /* save SoftVGA extended registers */
-+      outb(vgaIOBase + 4, CrtcVerticalTimingExtension);
-+      ext.VerticalTimingExtension = inb(vgaIOBase + 5);
--      for (i = 0; i < NUM_STD_CRTC_REGS; i++)
--      {
--              outb(vgaIOBase + 4, i);
--              ext.stdCRTCregs[i] = inb(vgaIOBase + 5);
--      }
-+      outb(vgaIOBase + 4, CrtcExtendedAddressControl);
-+      ext.ExtendedAddressControl = inb(vgaIOBase + 5);
--      /* save extended CRTC registers */
-+      outb(vgaIOBase + 4, CrtcExtendedOffset);
-+      ext.ExtendedOffset = inb(vgaIOBase + 5);
--      for (i = 0; i < NUM_EXT_CRTC_REGS; i++)
--      {
--              outb(vgaIOBase + 4, 0x40+i);
--              ext.extCRTCregs[i] = inb(vgaIOBase + 5);
--      }
-+      outb(vgaIOBase + 4, CrtcExtendedColorControl);
-+      ext.ExtendedColorControl = inb(vgaIOBase + 5);
--      /* save graphics pipeline registers */
-+      outb(vgaIOBase + 4, CrtcDisplayCompression);
-+      ext.DisplayCompression = inb(vgaIOBase + 5);
--      ext.GpBlitStatus   = GX_REG(GP_BLIT_STATUS);
-+      outb(vgaIOBase + 4, CrtcDriverControl);
-+      ext.DriverControl = inb(vgaIOBase + 5);
--      /* save standard VGA portion */
-+      outb(vgaIOBase + 4, CrtcDACControl);
-+      ext.DACControl = inb(vgaIOBase + 5);
-+
-+      outb(vgaIOBase + 4, CrtcClockControl);
-+      ext.ClockControl = inb(vgaIOBase + 5);
-+
-+      outb(vgaIOBase + 4, CrtcClockFrequency);
-+      ext.CrtClockFrequency = inb(vgaIOBase + 5);
-+      outb(vgaIOBase + 4, CrtcClockFrequencyFraction);
-+      ext.CrtClockFrequencyFraction = inb(vgaIOBase + 5);
-+
-+      outb(vgaIOBase + 4, CrtcRefreshRate);
-+      ext.RefreshRate = inb(vgaIOBase + 5);
-+
-+      /* save standard VGA portion */
-       CYRIXresetVGA();
-       save = (vgaCYRIXPtr)vgaHWSave((vgaHWPtr)save, sizeof(vgaCYRIXRec));
-       save->ext = ext;
-+
-       return ((void *) save);
- }
-@@ -869,108 +812,101 @@
- static Bool
- CYRIXInit(mode)
- DisplayModePtr mode;
--{     int i, mode_index;
--      int clock = vga256InfoRec.clock[mode->Clock] / 1000;
--      int min, diff;
--      int offset_shift = (vgaBitsPerPixel == 16) ? 2 :
-+{     int offset_shift = (vgaBitsPerPixel == 16) ? 2 :
-                            (vgaBitsPerPixel == 8) ? 3 : 4;
-       int line_offset = vga256InfoRec.displayWidth >> offset_shift;
-       /* initialize standard VGA portion */
--
-       if (!vgaHWInit(mode,sizeof(vgaCYRIXRec)))
-               return(FALSE);
--      /* search for specified mode in the table */
--    /* Need to find the entry with the closest dot clock value */ 
--      /* Assume within at least 200 MHz and then maintain closest natch. */
--
--      mode_index = 0;
--      min = 200; 
--      for (i = 0; i < NUM_CYRIX_MODES; i++)
--      {
--              diff = clock - CYRIXmodes[i].clock;
--              if (diff < 0) diff = -diff;
--              if ((mode->CrtcHDisplay == CYRIXmodes[i].xsize) &&
--                      (mode->CrtcVDisplay == CYRIXmodes[i].ysize) &&
--                      (diff < min))
--              {
--                      mode_index = i;
--                      min = diff;
--              }
--      }
--
--      /* override standard miscOutput register value */
--
--      newstate->ext.miscOutput = CYRIXmodes[mode_index].miscOutput;
-+      newstate->std.CRTC[19] = line_offset;
--      /* override standard CRTC register values */
-+      /* initialize SoftVGA extended registers */
-+      newstate->ext.VerticalTimingExtension =
-+              ((mode->CrtcVSyncStart & 0x400) >> 4) |
-+              (((mode->CrtcVDisplay - 1) & 0x400) >> 8) |
-+              (((mode->CrtcVTotal - 2) & 0x400) >> 10) |
-+              ((mode->CrtcVSyncStart & 0x400) >> 6);
--      for (i = 0; i < NUM_STD_CRTC_REGS; i++)
--      {
--              newstate->ext.stdCRTCregs[i] = 
--                      CYRIXmodes[mode_index].stdCRTCregs[i];
--      }
--
--      /* set extended CRTC registers */
--
--      for (i = 0; i < NUM_EXT_CRTC_REGS; i++)
--      {
--              newstate->ext.extCRTCregs[i] = 
--                      CYRIXmodes[mode_index].extCRTCregs[i];
--      }
--
--      /* override pitch from the mode tables */
--      /* (same tables are used for 8BPP and 16BPP) */
-+      if (vgaBitsPerPixel < 8)
-+              newstate->ext.ExtendedAddressControl = EAC_DIRECT_FRAME_BUFFER;
-+      else
-+              newstate->ext.ExtendedAddressControl = EAC_DIRECT_FRAME_BUFFER |
-+                                                     EAC_PACKED_CHAIN4;
--      newstate->ext.stdCRTCregs[19] = line_offset;
--      newstate->ext.extCRTCregs[5] = ((line_offset >> 8) & 0x03);
-+      newstate->ext.ExtendedOffset = ((line_offset >> 8) & 0x03);
--      /* override color control from the mode tables */
--      /* (same tables are used for 8BPP and 16BPP) */
-+      newstate->ext.ExtendedColorControl = (vgaBitsPerPixel == 16)
-+                                           ? ECC_16BPP | ECC_565_FORMAT
-+                                           : ECC_8BPP;
-+
-+      /* display compression is set using the DC registers */
-+      newstate->ext.DisplayCompression = 0x00;
-+
-+      /* we drive the palette through the display controller (in new
-+         chipsets only) in 8bpp and 16bpp (that is, whenever the
-+         hardware cursor is used). */
-+      if (vgaBitsPerPixel < 8)
-+              newstate->ext.DriverControl = 0x00;
-+      else
-+              newstate->ext.DriverControl = DRVCT_DISPLAY_DRIVER_ACTIVE;
--      newstate->ext.extCRTCregs[6] = (vgaBitsPerPixel == 16)
--              ? ECC_16BPP | ECC_565_FORMAT : ECC_8BPP;
-+      /* set `16 bit bus' or else compression will hang the
-+         system in 16bpp mode */
-+      if (vgaBitsPerPixel == 16)
-+              newstate->ext.DACControl = DACCT_ENABLE_16BIT_BUS;
-+      else
-+              newstate->ext.DACControl = 0;
--      /* enable display compression when appropriate */
--      if (CYRIXvsaversion == CYRIX_VSA1)
--      {
--              /* For VSA1, SoftVGA manages the compression buffer. */
--              /* Enabling compression directly causes unpredictable results. */
--              /* Only enable if not panning (there is a bug in SoftVGA that */
--              /* will put the compression buffer in the wrong place when */
--              /* using a virtual desktop. */
--              /* By setting bit 0 of register 0x49, SoftVGA will enable */
--              /* compression whenever possible, based on memory available */
--              /* and starting address of memory. */
--
--          if ((mode->CrtcVDisplay == vga256InfoRec.virtualY) &&
--                      (mode->CrtcHDisplay == vga256InfoRec.virtualX))
--              {
--                      newstate->ext.extCRTCregs[9] = 0x01;
--                      ErrorF("%s %s: Display compression enabled.\n", 
--                              XCONFIG_PROBED, vga256InfoRec.name);
--              }
--              else
--              {
--                      ErrorF("%s %s: Display compression disabled.\n", 
--                              XCONFIG_PROBED, vga256InfoRec.name);
--              }
-+      if (newstate->std.NoClock >= 0)
-+      {       int entier_clock   = (vga256InfoRec.clock[mode->Clock] / 1000);
-+              int clock_fraction = (vga256InfoRec.clock[mode->Clock] / 100)
-+                                 - (entier_clock * 10);
-+
-+              newstate->ext.ClockControl = CLKCT_EXT_CLOCK_MODE;
-+              newstate->ext.CrtClockFrequency = entier_clock;
-+              newstate->ext.CrtClockFrequencyFraction = clock_fraction;
-+              newstate->ext.RefreshRate = 0 /* relevant to VGA BIOS only */;
-+      }
-+
-+#ifndef MONOVGA
-+      /* initialize masked contents of display controller
-+         hardware registers. */
-+      newstate->ext.DcCursStOffset =  CYRIXcursorAddress;
-+      newstate->ext.DcCbStOffset  =  CYRIXcbufferAddress;
-+      newstate->ext.DcLineDelta   =  CYRIXcbLineDelta << 12;
-+      newstate->ext.DcBufSize     =  0x41 << 9;
-+      newstate->ext.DcCursorX     =  0;
-+      newstate->ext.DcCursorY     =  0;
-+      newstate->ext.DcCursorColor =  0;
-+
-+      /* Compression  is enabled only  when a buffer  was allocated by
-+         FbInit  and provided that the displayed screen is the virtual
-+         screen.  If the line delta is not 1024 or 2048, entire frames
-+         will be flagged dirty as opposed to lines.  Problems with 16bpp
-+         and line-dirty flagging seem to have been solved now.  */
-+      if (CYRIXcbLineDelta != 0 &&
-+          mode->CrtcVDisplay == vga256InfoRec.virtualY &&
-+          mode->CrtcHDisplay == vga256InfoRec.virtualX)
-+      {       newstate->ext.DcGeneralCfg = DC_GCFG_DECE
-+                                         | DC_GCFG_CMPE;
-+              if (/* vgaBitsPerPixel != 8 ||   -- this is OK now */
-+                 (vga256InfoRec.displayWidth * (vgaBitsPerPixel / 8)) & 0x03FF)
-+                      newstate->ext.DcGeneralCfg |= DC_GCFG_FDTY;
-       }
-       else
--      {
--              /* ### TO DO ### */
--              /* Enable display compression directly for VSA2. */
--              /* For VSA2, the display driver manages all graphics memory. */
--      }
-+              newstate->ext.DcGeneralCfg = 0;
--      /* initialize the graphics pipeline registers */
-+      /* initialize the graphics pipeline registers */
-       newstate->ext.GpBlitStatus  =  ((vga256InfoRec.displayWidth == 2048) ?
-                                       BC_FB_WIDTH_2048 : BC_FB_WIDTH_1024) |
-                                      ((vgaBitsPerPixel == 16) ?
-                                       BC_16BPP : BC_8BPP);
-+#endif
-+
-       return(TRUE);
- }
-@@ -978,68 +914,31 @@
- CYRIXAdjust(x, y)
- int x, y;
- {     int Base = (y * vga256InfoRec.displayWidth + x);
--      unsigned long active, sync, count1, count2;
-       if (vgaBitsPerPixel > 8) Base *= (vgaBitsPerPixel / 8);
-       if (vgaBitsPerPixel < 8) Base /= 2;
--      /* wait until out of active display area */
--
--      active = GX_REG(DC_V_TIMING_1) & 0x07FF;        
--      sync = GX_REG(DC_V_TIMING_3) & 0x07FF;
--
--      do
--      {
--              /* read twice to avoid transition values */
--
--              count1 = GX_REG(DC_V_LINE_CNT) & 0x07FF;
--              count2 = GX_REG(DC_V_LINE_CNT) & 0x07FF;
--      } while ((count1 != count2) || (count1 < active) || (count1 >= sync));
--
--      /* load the start address directly */
--
-+      /* doing this using the SoftVGA registers does not work reliably */
-       GX_REG(DC_UNLOCK) = DC_UNLOCK_VALUE;
-       GX_REG(DC_FB_ST_OFFSET) = Base;
-       GX_REG(DC_UNLOCK) = 0;
- }
--/*------------------------------------------------------------------------*\
--** ValidMode()
--** 
--** From README file: "The ValidMode() function is required.  It is used to 
--** check for any chipset dependent reasons why a graphics mode might not be
--** valid.  It gets called by higher levels of the code after the Probe()
--** stage.  In many cases no special checking will be required and this 
--** function will simply return TRUE always."
--**
--** For the Cyrix driver, this routine loops through modes provided in a 
--** table at the beginning of this file and returns OK if it finds a match.
--** These tables were required to make the standard VESA 60 Hz and 75 Hz 
--** modes work correctly.  Doing this, however, takes away the flexibility 
--** of adding different resolutions or different refresh rates to the 
--** XF86Config file.
--\*------------------------------------------------------------------------*/
--
- static int
- CYRIXValidMode(mode, verbose, flag)
- DisplayModePtr mode;
- Bool verbose;
- int flag;
--{
--      int i;
--
--      /* loop through table of modes */
--
--      for (i = 0; i < NUM_CYRIX_MODES; i++)
--      {
--              if ((mode->CrtcHDisplay == CYRIXmodes[i].xsize) &&
--                      (mode->CrtcVDisplay == CYRIXmodes[i].ysize))
--              {
--                      return MODE_OK;
--              }
-+{     /* note (avg): there seems to be a lot more to this if you look
-+         at the GGI code (adjustment). */
-+      if (mode->CrtcHSyncStart - mode->CrtcHDisplay >= 24 ||
-+            mode->CrtcHSyncStart - mode->CrtcHDisplay <= 8)
-+      {       if (verbose)
-+                      ErrorF("%s %s: mode %s: horizontal sync out of range (sync - display should be between 8 and 24)\n",
-+                              XCONFIG_PROBED, vga256InfoRec.name, mode->name
-+                              );
-+              return MODE_HSYNC;
-       }
--      return MODE_BAD;
-+      return(MODE_OK);
- }
--
--/* END OF FILE */
-diff -ruN XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/gxrender.c XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/gxrender.c
---- XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/gxrender.c       Thu Jun 24 01:59:41 1999
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/gxrender.c     Wed Dec 31 19:00:00 1969
-@@ -1,1237 +0,0 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/gxrender.c,v 1.1.2.1 1999/06/24 05:59:41 hohndel Exp $ */
--/*
--//---------------------------------------------------------------------------
--// gxrender.c
--//
--// This file gives examples of using the MediaGX graphics unit to provide
--// acceleration for 2D display drivers.  It is intended to provide an 
--// absraction layer for new display driver development.  This code handles
--// the quirks of the MediaGX graphics unit to allow faster developemt times
--// for new drivers.
--//---------------------------------------------------------------------------
--*/
--
--/* GRAPHICS PIPELINE REGISTER DEFINITIONS */
--
--#define GP_DST_XCOOR          0x8100          /* x destination origin */
--#define GP_DST_YCOOR          0x8102          /* y destination origin */
--#define GP_WIDTH                      0x8104          /* pixel width */
--#define GP_HEIGHT                     0x8106          /* pixel height */
--#define GP_SRC_XCOOR          0x8108          /* x source origin */
--#define GP_SRC_YCOOR          0x810A          /* y source origin */
--
--#define GP_VECTOR_LENGTH      0x8104          /* vector length */
--#define GP_INIT_ERROR         0x8106          /* vector initial error */
--#define GP_AXIAL_ERROR                0x8108          /* axial error increment */
--#define GP_DIAG_ERROR         0x810A          /* diagonal error increment */
--
--#define GP_SRC_COLOR_0                0x810C          /* source color 0 */
--#define GP_SRC_COLOR_1                0x810E          /* source color 1 */
--#define GP_PAT_COLOR_0                0x8110          /* pattern color 0 */
--#define GP_PAT_COLOR_1                0x8112          /* pattern color 1 */
--#define GP_PAT_COLOR_2                0x8114          /* pattern color 2 */
--#define GP_PAT_COLOR_3                0x8116          /* pattern color 3 */
--#define GP_PAT_DATA_0         0x8120          /* bits 31:0 of pattern */
--#define GP_PAT_DATA_1         0x8124          /* bits 63:32 of pattern */
--#define GP_PAT_DATA_2         0x8128          /* bits 95:64 of pattern */
--#define GP_PAT_DATA_3         0x812C          /* bits 127:96 of pattern */
--
--#define GP_RASTER_MODE                0x8200          /* raster operation */
--#define GP_VECTOR_MODE                0x8204          /* vector mode register */
--#define GP_BLIT_MODE          0x8208          /* blit mode register */
--#define GP_BLIT_STATUS                0x820C          /* blit status register */
--
--/* "GP_VECTOR_MODE" BIT DEFINITIONS */
--
--#define VM_X_MAJOR                    0x0000          /* X major vector */
--#define VM_Y_MAJOR                    0x0001          /* Y major vector */
--#define VM_MAJOR_INC          0x0002          /* positive major axis step */
--#define VM_MINOR_INC          0x0004          /* positive minor axis step */
--#define VM_READ_DST_FB                0x0008          /* read destination data */
--
--/* "GP_RASTER_MODE" BIT DEFINITIONS */
--
--#define RM_PAT_DISABLE                0x0000          /* pattern is disabled */
--#define RM_PAT_MONO                   0x0100          /* 1BPP pattern expansion */
--#define RM_PAT_DITHER         0x0200          /* 2BPP pattern expansion */
--#define RM_PAT_COLOR          0x0300          /* 8BPP or 16BPP pattern */
--#define RM_PAT_MASK                   0x0300          /* mask for pattern mode */
--#define RM_PAT_TRANSPARENT    0x0400          /* transparent 1BPP pattern */
--#define RM_SRC_TRANSPARENT    0x0800          /* transparent 1BPP source */
--
--/* "GP_BLIT_STATUS" BIT DEFINITIONS */
--
--#define BS_BLIT_BUSY          0x0001          /* blit engine is busy */
--#define BS_PIPELINE_BUSY      0x0002          /* graphics pipeline is bus */
--#define BS_BLIT_PENDING               0x0004          /* blit pending */
--#define BC_8BPP                               0x0000          /* 8BPP mode */
--#define BC_16BPP                      0x0100          /* 16BPP mode */
--#define BC_FB_WIDTH_1024      0x0000          /* framebuffer width = 1024 */
--#define BC_FB_WIDTH_2048      0x0200          /* framebuffer width = 2048 */
--
--/* "GP_BLIT_MODE" BIT DEFINITIONS */
--
--#define       BM_READ_SRC_NONE        0x0000          /* source foreground color */
--#define BM_READ_SRC_FB                0x0001          /* read source from FB  */
--#define BM_READ_SRC_BB0               0x0002          /* read source from BB0 */
--#define BM_READ_SRC_BB1               0x0003          /* read source from BB1 */
--#define BM_READ_SRC_MASK      0x0003          /* read source mask */
--
--#define       BM_READ_DST_NONE        0x0000          /* no destination data */
--#define BM_READ_DST_BB0               0x0008          /* destination from BB0 */
--#define BM_READ_DST_BB1               0x000C          /* destination from BB1 */
--#define BM_READ_DST_FB0               0x0010          /* dest from FB (store BB0) */
--#define BM_READ_DST_FB1               0x0014          /* dest from FB (store BB1)*/
--#define BM_READ_DST_MASK      0x001C          /* read destination mask */
--
--#define BM_WRITE_FB                   0x0000          /* write to framebuffer */
--#define       BM_WRITE_MEM            0x0020          /* write to memory */
--#define BM_WRITE_MASK         0x0020          /* write mask */
--
--#define       BM_SOURCE_COLOR         0x0000          /* source is 8BPP or 16BPP */
--#define BM_SOURCE_EXPAND      0x0040          /* source is 1BPP */
--#define BM_SOURCE_TEXT                0x00C0          /* source is 1BPP text */
--#define BM_SOURCE_MASK                0x00C0          /* source mask */
--
--#define BM_REVERSE_Y          0x0100          /* reverse Y direction */
--
--/* THE DRIVER NEEDS TO MAINTAIN THE SIZE AND LOCATION OF THE BLT BUFFERS
--// These constants will work with 2K or 3K config, 8 or 16 BPP.  The driver
--// should set them, however, to optimize for the current config.  Otherwise
--// screen to screen BLTs, for example, may be visibly split into two vertical
--// sections when they do not need to be.
--*/
--
--/* STATIC VARIABLES FOR GXRENDER.C FILE */
--
--unsigned char *GXRregptr;
--unsigned short GXRbpp;
--unsigned short GXRbb0Base;
--unsigned short GXRbb1Base;
--unsigned short GXRbufferWidthPixels;
--
--unsigned short GXRpatternFlags;
--unsigned short GXRsourceFlags;
--unsigned short GXRsavedColor;
--unsigned short GXRsavedRop;
--unsigned short GXRusesDstData;
--
--/* MACROS FOR REGISTER ACCESS 
--// These macros asssume that a pointer was specified during initialization.
--// They also assume 32-bit access is possible (16-bit access such as for 
--// Windows 98 display drivers would require different macros).
--*/
-- 
--#define WRITE_REG8(offset, value) \
--      (*(volatile unsigned char *)(GXRregptr + (offset))) = (value)
--
--#define WRITE_REG16(offset, value) \
--      (*(volatile unsigned short *)(GXRregptr + (offset))) = (value)
--
--#define WRITE_REG32(offset, value) \
--      (*(volatile unsigned long *)(GXRregptr + (offset))) = (value)
--
--#define READ_REG16(offset) \
--    (*(volatile unsigned short *)(GXRregptr + (offset)))
--
--#define READ_REG32(offset) \
--    (*(volatile unsigned long *)(GXRregptr + (offset)))
--
--/*
--//---------------------------------------------------------------------------
--// GXR_INITIALIZE
--//
--// This routine initializes the parameters for the current configuration.
--//
--//     REGPTR     pointer to GX memory mapped registers
--//     BPP        bits per pixel (8 pr 16)
--//     
--//---------------------------------------------------------------------------
--*/
--
--void gxr_initialize(unsigned char *regptr, unsigned short bpp, 
--      unsigned short BB0base, unsigned short BB1base, 
--      unsigned short BBwidthPixels)
--{
--      GXRregptr = regptr;
--      GXRbpp = bpp;
--      GXRbb0Base = BB0base;
--      GXRbb1Base = BB1base;
--      GXRbufferWidthPixels = BBwidthPixels;
--}
--
--/*
--//---------------------------------------------------------------------------
--// GXR_WAIT_UNTIL_IDLE
--//
--// This routine waits until the graphics engine is idle.
--//---------------------------------------------------------------------------
--*/
--
--void gxr_wait_until_idle(void)
--{
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_BUSY);
--}
--
--/*
--//---------------------------------------------------------------------------
--// GXR_LOAD_SOLID_SOURCE
--//
--// This routine is used to specify a solid source color.  For the Xfree96
--// display driver, the source color is used to specify a planemask and the 
--// ROP is adjusted accordingly.
--//---------------------------------------------------------------------------
--*/
--
--void gxr_load_solid_source(unsigned short color)
--{
--      /* CLEAR TRANSPARENCY FLAG */
--
--      GXRsourceFlags = 0;
--
--      /* FORMAT 8 BPP COLOR */
--      /* GX requires 8BPP color data be duplicated into bits [15:8]. */
--
--      if (!(READ_REG16(GP_BLIT_STATUS) & BC_16BPP))
--      {
--              color &= 0x00FF;
--              color |= (color << 8);
--      }
--      
--      /* POLL UNTIL ABLE TO WRITE THE SOURCE COLOR */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_SRC_COLOR_0, color);
--}
--
--/*
--//---------------------------------------------------------------------------
--// GXR_LOAD_MONO_SOURCE
--//
--// This routine is used to specify the monochrome source colors.  
--//---------------------------------------------------------------------------
--*/
--
--void gxr_load_mono_source(unsigned short bgcolor, unsigned short fgcolor,
--      unsigned short transparent)
--{
--      /* SET TRANSPARENCY FLAG */
--
--      GXRsourceFlags = transparent ? RM_SRC_TRANSPARENT : 0;
--
--      /* FORMAT 8 BPP COLOR */
--      /* GX requires 8BPP color data be duplicated into bits [15:8]. */
--
--      if (!(READ_REG16(GP_BLIT_STATUS) & BC_16BPP))
--      {
--              bgcolor &= 0x00FF;
--              bgcolor |= (bgcolor << 8);
--              fgcolor &= 0x00FF;
--              fgcolor |= (fgcolor << 8);
--      }
--
--      /* POLL UNTIL ABLE TO WRITE THE SOURCE COLOR */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_SRC_COLOR_0, bgcolor);
--      WRITE_REG16(GP_SRC_COLOR_1, fgcolor);
--}
--
--/*
--//---------------------------------------------------------------------------
--// GXR_LOAD_SOLID_PATTERN
--//
--// This routine is used to specify a solid pattern color.  It is called 
--// before performing solid rectangle fills or more complicated BLTs that 
--// use a solid pattern color. 
--//
--// The driver should always call "gxr_load_raster_operation" after a call 
--// to this routine to make sure that the pattern flags are set appropriately.
--//---------------------------------------------------------------------------
--*/
--
--void gxr_load_solid_pattern(unsigned short color)
--{
--      /* SET PATTERN FLAGS */
--
--      GXRpatternFlags = 0;
--
--      /* FORMAT 8 BPP COLOR */
--      /* GX requires 8BPP color data be duplicated into bits [15:8]. */
--
--      if (!(READ_REG16(GP_BLIT_STATUS) & BC_16BPP))
--      {
--              color &= 0x00FF;
--              color |= (color << 8);
--      }
--
--      /* SAVE THE REFORMATTED COLOR FOR LATER */
--      /* Used to call the "gxr_solid_fill" routine for special cases. */
--
--      GXRsavedColor = color;
--
--      /* POLL UNTIL ABLE TO WRITE THE PATTERN COLOR */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_PAT_COLOR_0, color);
--}
--
--/*
--//---------------------------------------------------------------------------
--// GXR_LOAD_MONO_PATTERN
--//
--// This routine is used to specify a monochrome pattern. 
--//---------------------------------------------------------------------------
--*/
--
--void gxr_load_mono_pattern(unsigned short bgcolor, unsigned short fgcolor, 
--      unsigned long data0, unsigned long data1, unsigned char transparent)
--{
--      /* SET PATTERN FLAGS */
--
--      GXRpatternFlags = transparent ? RM_PAT_MONO | RM_PAT_TRANSPARENT : 
--              RM_PAT_MONO;
--      
--      /* FORMAT 8 BPP COLOR */
--      /* GX requires 8BPP color data be duplicated into bits [15:8]. */
--
--      if (!(READ_REG16(GP_BLIT_STATUS) & BC_16BPP))
--      {
--              bgcolor &= 0x00FF;
--              bgcolor |= (bgcolor << 8);
--              fgcolor &= 0x00FF;
--              fgcolor |= (fgcolor << 8);
--      }
--
--      /* POLL UNTIL ABLE TO WRITE THE PATTERN COLORS AND DATA */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_PAT_COLOR_0, bgcolor);
--      WRITE_REG16(GP_PAT_COLOR_1, fgcolor);
--      WRITE_REG32(GP_PAT_DATA_0, data0);
--      WRITE_REG32(GP_PAT_DATA_1, data1);
--}
--
--/*
--//---------------------------------------------------------------------------
--// GXR_LOAD_RASTER_OPERATION
--//
--// This routine loads the specified raster operation.  It sets the pattern
--// flags appropriately.
--//---------------------------------------------------------------------------
--*/
--
--void gxr_load_raster_operation(unsigned char rop)
--{
--      unsigned short rop16;
--
--      /* GENERATE 16-BIT VERSION OF ROP WITH PATTERN FLAGS */
--
--      rop16 = (unsigned short) rop | GXRpatternFlags;
--      if ((rop & 0x33) ^ ((rop >> 2) & 0x33))
--              rop16 |= GXRsourceFlags;
--
--      /* SAVE ROP FOR LATER COMPARISONS */
--      /* Need to have the pattern flags included */
--
--      GXRsavedRop = rop16;
--      
--      /* SET FLAG INDICATING ROP REQUIRES DESTINATION DATA */
--      /* True if even bits (0:2:4:6) do not equal the correspinding */
--      /* even bits (1:3:5:7). */
--
--      GXRusesDstData = ((rop & 0x55) ^ ((rop >> 1) & 0x55));
--
--      /* POLL UNTIL ABLE TO WRITE THE PATTERN COLOR */
--      /* Only one operation can be pending at a time. */ 
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_RASTER_MODE, rop16);
--}
--
--/*
--//---------------------------------------------------------------------------
--// GXR_SOLID_FILL
--//
--// This routine MUST be used when performing a solid rectangle fill with 
--// the ROPs of PATCOPY (0xF0), BLACKNESS (0x00), WHITENESS (0xFF), or 
--// PATINVERT (0x0F).  There is a bug in GXm for these cases that requires a 
--// workaround.  
--//
--// For BLACKNESS (ROP = 0x00), set the color to 0x0000.  
--// For WHITENESS (ROP = 0xFF), set the color to 0xFFFF.
--// For PATINVERT (ROP = 0x0F), invert the desired color.
--//
--//      X               screen X position (left)
--//      Y               screen Y position (top)
--//      WIDTH           width of rectangle, in pixels
--//      HEIGHT          height of rectangle, in scanlines
--//      COLOR           fill color
--//
--// THIS ROUTINE SHOULD NOT BE DIRECTLY CALLED FROM THE DRIVER.  The driver 
--// should always use gxr_pattern_fill and let that routine call this one
--// when approipriate.  This is to hide quirks specific to MediaGX hardware.
--//---------------------------------------------------------------------------
--*/
--
--void gxr_solid_fill(unsigned short x, unsigned short y, 
--      unsigned short width, unsigned short height, unsigned short color)
--{
--      unsigned short section;
--
--      /* POLL UNTIL ABLE TO WRITE TO THE REGISTERS */
--      /* Only one operation can be pending at a time. */ 
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--
--      /* SET REGISTERS TO DRAW RECTANGLE */
--
--      WRITE_REG16(GP_DST_XCOOR, x);
--      WRITE_REG16(GP_DST_YCOOR, y);
--      WRITE_REG16(GP_HEIGHT, height);
--      WRITE_REG16(GP_RASTER_MODE, 0x00F0); /* PATCOPY */
--      WRITE_REG16(GP_PAT_COLOR_0, color);
--
--      /* CHECK WIDTH FOR GX BUG WORKAROUND */ 
--
--      if (width <= 16)
--      {
--              /* OK TO DRAW SMALL RECTANGLE IN ONE PASS */
--
--              WRITE_REG16(GP_WIDTH, width);
--              WRITE_REG16(GP_BLIT_MODE, 0);
--      }
--      else
--      {
--              /* DRAW FIRST PART OF RECTANGLE */
--              /* Get to a 16 pixel boundary. */
--
--              section = 0x10 - (x & 0x0F);
--              WRITE_REG16(GP_WIDTH, section);
--              WRITE_REG16(GP_BLIT_MODE, 0);
--
--              /* POLL UNTIL ABLE TO LOAD THE SECOND RECTANGLE */
--
--              while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--              WRITE_REG16(GP_DST_XCOOR, x + section);
--              WRITE_REG16(GP_DST_YCOOR, y);
--              WRITE_REG16(GP_WIDTH, width - section);
--              WRITE_REG16(GP_BLIT_MODE, 0);
--      }
--}    
--
--/*
--//----------------------------------------------------------------------------
--// GXR_PATTERN_FILL
--//
--// This routine is used to fill a rectangular region.  The pattern must 
--// be previously loaded using one of gxr_load_*_pattern routines.  Also, the 
--// raster operation must be previously specified using the 
--// "gxr_load_raster_operation" routine.
--//
--//      X               screen X position (left)
--//      Y               screen Y position (top)
--//      WIDTH           width of rectangle, in pixels
--//      HEIGHT          height of rectangle, in scanlines
--//----------------------------------------------------------------------------
--*/
--
--void gxr_pattern_fill(unsigned short x, unsigned short y, 
--      unsigned short width, unsigned short height)
--{
--      unsigned short section, buffer_width, blit_mode;
--
--      /* CHECK IF OPTIMIZED SOLID CASES */
--    /* Check all 16 bits of the ROP to include solid pattern flags. */
--
--      switch(GXRsavedRop)
--      {
--              /* CHECK FOR SPECIAL CASES WITHOUT DESTINATION DATA */
--              /* Need hardware workaround for fast "burst write" cases. */
--
--              case 0x00F0:
--                      gxr_solid_fill(x, y, width, height, GXRsavedColor);
--                      break;
--              case 0x000F:
--                      gxr_solid_fill(x, y, width, height, ~GXRsavedColor);
--                      break;
--              case 0x0000:
--                      gxr_solid_fill(x, y, width, height, 0x0000);
--                      break;
--              case 0x00FF:
--                      gxr_solid_fill(x, y, width, height, 0xFFFF);
--                      break;
--              
--              /* REMAINING CASES REQUIRE DESTINATION DATA OR NOT SOLID COLOR */
--
--              default:
--                      
--                      /* DETERMINE BLT MODE VALUE */
--                      /* Still here for non-solid patterns without destination data. */
--
--                      blit_mode = GXRusesDstData ? BM_READ_DST_FB0 : 0;
--
--                      /* POLL UNTIL ABLE TO WRITE TO THE REGISTERS */
--                      /* Write the registers that do not change for each section. */
--
--                      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--                      WRITE_REG16(GP_HEIGHT, height);
--
--                      /* SINCE ONLY DESTINATION DATA, WE CAN USE BOTH BB0 AND BB1. */
--                      /* Therefore, width available = BLT buffer width * 2. */
--
--                      buffer_width = GXRbufferWidthPixels << 1;
--
--                      /* REPEAT UNTIL FINISHED WITH RECTANGLE */
--                      /* Perform BLT in vertical sections, as wide as the BLT buffer */
--                      /* allows.  Hardware does not split the operations, so */
--                      /* software must do it to avoid large scanlines that would */
--                      /* overflow the BLT buffers. */
--
--                      while(width > 0)
--                      {
--                              /* DETERMINE WIDTH OF SECTION */
--
--                              if (width > buffer_width) section = buffer_width;
--                              else section = width;
--
--                              /* POLL UNTIL ABLE TO WRITE TO THE REGISTERS */
--
--                              while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--                              WRITE_REG16(GP_DST_XCOOR, x);
--                              WRITE_REG16(GP_DST_YCOOR, y);
--                              WRITE_REG16(GP_WIDTH, section);
--                              WRITE_REG16(GP_BLIT_MODE, blit_mode);
--
--                              /* ADJUST PARAMETERS FOR NEXT SECTION */
--
--                              width -= section;
--                              x += section;
--                      }
--                      break;
--      }
--}    
--
--/*
--//----------------------------------------------------------------------------
--// SCREEN TO SCREEN BLT
--//
--// This routine should be used to perform a screen to screen BLT when the 
--// ROP does not require destination data.
--//
--//      SRCX            screen X position to copy from
--//      SRCY            screen Y position to copy from
--//      DSTX            screen X position to copy to
--//      DSTY            screen Y position to copy to
--//      WIDTH           width of rectangle, in pixels
--//      HEIGHT          height of rectangle, in scanlines
--//----------------------------------------------------------------------------
--*/
--
--void gxr_screen_to_screen_blt(unsigned short srcx, unsigned short srcy,
--      unsigned short dstx, unsigned short dsty, unsigned short width, 
--      unsigned short height)
--{
--      unsigned short section, buffer_width;
--      unsigned short blit_mode;
--
--      /* CHECK IF RASTER OPERATION REQUIRES DESTINATION DATA */
--
--      blit_mode = GXRusesDstData ? BM_READ_DST_FB1 | BM_READ_SRC_FB : 
--              BM_READ_SRC_FB;
--
--      /* CHECK Y DIRECTION */
--      /* Hardware has support for negative Y direction. */
--
--      if (dsty > srcy) 
--      {
--              blit_mode |= BM_REVERSE_Y;
--              srcy += height - 1;
--              dsty += height - 1;
--      }
--
--      /* CHECK X DIRECTION */
--      /* Hardware does not support negative X direction since at the time */ 
--      /* of development all supported resolutions could fit a scanline of */ 
--      /* data at once into the BLT buffers (using both BB0 and BB1).  This */
--      /* code is more generic to allow for any size BLT buffer. */
--
--      if (dstx > srcx)
--      {
--              srcx += width;
--              dstx += width;
--      }
--
--      /* POLL UNTIL ABLE TO WRITE TO THE REGISTERS */
--      /* Write the registers that do not change for each section. */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_HEIGHT, height);
--
--      /* CHECK AVAILABLE BLT BUFFER SIZE */
--      /* Can use both BLT buffers if no destination data is required. */
--
--      buffer_width = GXRusesDstData ? GXRbufferWidthPixels :
--              GXRbufferWidthPixels << 1;
--
--      /* REPEAT UNTIL FINISHED WITH RECTANGLE */
--      /* Perform BLT in vertical sections, as wide as the BLT buffer allows. */
--      /* Hardware does not split the operations, so software must do it to */ 
--      /* avoid large scanlines that would overflow the BLT buffers. */
--
--      while(width > 0)
--      {
--              /* CHECK WIDTH OF CURRENT SECTION */
--
--              if (width > buffer_width) section = buffer_width;
--              else section = width;
--
--              /* PROGRAM REGISTERS THAT ARE THE SAME FOR EITHER X DIRECTION */
--
--              while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--              WRITE_REG16(GP_SRC_YCOOR, srcy);
--              WRITE_REG16(GP_DST_YCOOR, dsty);
--              WRITE_REG16(GP_WIDTH, section);
--
--              /* CHECK X DIRECTION */
--
--              if (dstx > srcx)
--              {
--                      /* NEGATIVE X DIRECTION */
--                      /* Still positive X direction within the section. */
--
--                      srcx -= section;
--                      dstx -= section;
--                      WRITE_REG16(GP_SRC_XCOOR, srcx);
--                      WRITE_REG16(GP_DST_XCOOR, dstx);
--                      WRITE_REG16(GP_BLIT_MODE, blit_mode);
--              } 
--              else
--              {
--                      /* POSITIVE X DIRECTION */
--
--                      WRITE_REG16(GP_SRC_XCOOR, srcx);
--                      WRITE_REG16(GP_DST_XCOOR, dstx);
--                      WRITE_REG16(GP_BLIT_MODE, blit_mode);
--                      dstx += section;
--                      srcx += section;
--              }
--              width -= section;
--      }
--}    
--
--/*
--//----------------------------------------------------------------------------
--// SCREEN TO SCREEN TRANSPARENT BLT
--//
--// This routine should be used to perform a screen to screen BLT when a 
--// specified color should by transparent.  The only supported ROP is SRCCOPY.
--//
--//      SRCX            screen X position to copy from
--//      SRCY            screen Y position to copy from
--//      DSTX            screen X position to copy to
--//      DSTY            screen Y position to copy to
--//      WIDTH           width of rectangle, in pixels
--//      HEIGHT          height of rectangle, in scanlines
--//      COLOR           transparent color
--//----------------------------------------------------------------------------
--*/
--
--void gxr_screen_to_screen_xblt(unsigned short srcx, unsigned short srcy,
--      unsigned short dstx, unsigned short dsty, unsigned short width, 
--      unsigned short height, unsigned short color)
--{
--      unsigned short section, buffer_width;
--      unsigned short blit_mode = BM_READ_SRC_FB;
--      unsigned short i;
--
--      /* CHECK Y DIRECTION */
--      /* Hardware has support for negative Y direction. */
--
--      if (dsty > srcy) 
--      {
--              blit_mode |= BM_REVERSE_Y;
--              srcy += height - 1;
--              dsty += height - 1;
--      }
--
--      /* CHECK X DIRECTION */
--      /* Hardware does not support negative X direction since at the time */
--      /* of development all supported resolutions could fit a scanline of */ 
--      /* data at once into the BLT buffers (using both BB0 and BB1).  This */
--      /* code is more generic to allow for any size BLT buffer. */
--
--      if (dstx > srcx)
--      {
--              srcx += width;
--              dstx += width;
--      }
--
--      /* CALCULATE BLT BUFFER SIZE */
--      /* Need to use BB1 to store the BLT buffer data. */
--
--      buffer_width = GXRbufferWidthPixels;
--
--      /* WRITE TRANSPARENCY COLOR TO BLT BUFFER 1 */
--
--      if (!(READ_REG16(GP_BLIT_STATUS) & BC_16BPP))
--      {
--              color &= 0x00FF;
--              color |= (color << 8);
--      }
--
--      /* WAIT UNTIL PIPELINE IS NOT BUSY BEFORE LOADING DATA INTO BB1 */
--      /* Need to make sure any previous BLT using BB1 is complete. */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_PIPELINE_BUSY);
--      for (i = 0; i < 16; i+=2)
--      {
--              WRITE_REG16(GXRbb1Base+i, color);
--      }
--
--      /* DO BOGUS BLT TO LATCH DATA FROM BB1 */
--      /* Already know graphics pipeline is idle. */
--
--      WRITE_REG32(GP_DST_XCOOR, 0);
--      WRITE_REG32(GP_SRC_XCOOR, 0);
--      WRITE_REG16(GP_WIDTH, 16);
--      WRITE_REG16(GP_HEIGHT, 1);
--      WRITE_REG16(GP_RASTER_MODE, 0x00CC);
--      WRITE_REG16(GP_BLIT_MODE, BM_READ_SRC_FB | BM_READ_DST_BB1);
--      
--      /* WRITE REGISTERS FOR REAL SCREEN TO SCREEN BLT */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_HEIGHT, height);
--      WRITE_REG16(GP_RASTER_MODE, 0x10C6);
--      WRITE_REG32(GP_PAT_COLOR_0, 0xFFFFFFFF);
--
--      /* REPEAT UNTIL FINISHED WITH RECTANGLE */
--      /* Perform BLT in vertical sections, as wide as the BLT buffer allows. */
--      /* Hardware does not split the operations, so software must do it to */
--      /* avoid large scanlines that would overflow the BLT buffers. */
--
--      while(width > 0)
--      {
--              /* CHECK WIDTH OF CURRENT SECTION */
--
--              if (width > buffer_width) section = buffer_width;
--              else section = width;
--
--              /* PROGRAM REGISTERS THAT ARE THE SAME FOR EITHER X DIRECTION */
--
--              while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--              WRITE_REG16(GP_SRC_YCOOR, srcy);
--              WRITE_REG16(GP_DST_YCOOR, dsty);
--              WRITE_REG16(GP_WIDTH, section);
--
--              /* CHECK X DIRECTION */
--              /* Again, this must be done in software, and can be removed if the */
--              /* display driver knows that the BLT buffers will always be large */
--              /* enough to contain an entire scanline of a screen to screen BLT. */
--
--              if (dstx > srcx)
--              {
--                      /* NEGATIVE X DIRECTION */
--                      /* Still positive X direction within the section. */
--
--                      srcx -= section;
--                      dstx -= section;
--                      WRITE_REG16(GP_SRC_XCOOR, srcx);
--                      WRITE_REG16(GP_DST_XCOOR, dstx);
--                      WRITE_REG16(GP_BLIT_MODE, blit_mode);
--              } 
--              else
--              {
--                      /* POSITIVE X DIRECTION */
--
--                      WRITE_REG16(GP_SRC_XCOOR, srcx);
--                      WRITE_REG16(GP_DST_XCOOR, dstx);
--                      WRITE_REG16(GP_BLIT_MODE, blit_mode);
--                      dstx += section;
--                      srcx += section;
--              }
--              width -= section;
--      }
--}    
--
--/*
--//----------------------------------------------------------------------------
--// COLOR BITMAP TO SCREEN BLT
--//
--// This routine transfers color bitmap data to the screen.  For most cases,
--// when the ROP is SRCCOPY, it may be faster to write a separate routine that
--// copies the data to the frame buffer directly.  This routine should be 
--// used when the ROP requires destination data.
--//
--// Transparency is handled by another routine.
--//
--//      SRCX            X offset within source bitmap
--//      SRCY            Y offset within source bitmap
--//      DSTX            screen X position to render data
--//      DSTY            screen Y position to render data
--//      WIDTH           width of rectangle, in pixels
--//      HEIGHT          height of rectangle, in scanlines
--//      *DATA           pointer to bitmap data
--//      PITCH           pitch of bitmap data (bytes between scanlines)
--//      ROP             ternary raster operation (0x00-0xFF).
--//----------------------------------------------------------------------------
--*/
--
--void gxr_color_bitmap_to_screen_blt(unsigned short srcx, unsigned short srcy,
--      unsigned short dstx, unsigned short dsty, unsigned short width, 
--      unsigned short height, unsigned char *data, unsigned short pitch, 
--      unsigned char rop)
--{
--      unsigned short section, buffer_width;
--      unsigned short blit_mode = BM_READ_SRC_BB0;
--      unsigned short line_srcx, line_dstx, line_width;
--      unsigned short offset, i;
--
--      /* CHECK IF ROP REQUIRES DESTINATION DATA */
--      /* Even bits (0:2:4:6) do not equal corresponding odd bits (1:3:5:7). */
--
--      if ((rop & 0x55) ^ ((rop >> 1) & 0x55))
--              blit_mode |= BM_READ_DST_FB1;
--
--      /* CHECK SIZE OF BLT BUFFER */
--
--      buffer_width = GXRbufferWidthPixels;
--      
--      /* POLL UNTIL ABLE TO WRITE TO THE REGISTERS */
--      /* Write the registers that do not change for each section. */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_HEIGHT, 1);
--      WRITE_REG16(GP_RASTER_MODE, (unsigned short) rop & 0x00FF);
--
--      /* REPEAT FOR EACH SCANLINE */
--
--      offset = srcy * pitch;
--
--      while(height > 0)
--      {
--              line_width = width;
--              line_srcx = srcx;
--              line_dstx = dstx;
--
--              while(line_width > 0)
--              {
--                      /* CHECK WIDTH OF CURRENT SECTION */
--
--                      if (line_width > buffer_width) section = buffer_width;
--                      else section = line_width;
--
--                      /* TRANSFER SCANLINE OF BITMAP DATA TO BLT BUFFER 0 */
--                      /* Need to wait for BS_PIPELINE_BUSY to make sure that the */ 
--                      /* data in BB0 for the previous scanline is no longer used. */
--                      /* This can be heavily optimized to not do a byte at a time. */
--
--                      while(READ_REG16(GP_BLIT_STATUS) & BS_PIPELINE_BUSY);
--                      if (READ_REG16(GP_BLIT_STATUS) & BC_16BPP)
--                      {
--                              for (i = 0; i < section; i++)
--                              {
--                                      WRITE_REG16(GXRbb0Base+i, data[offset+((line_srcx+i)<<1)]);
--                              }
--                      }
--                      else
--                      {
--                              for (i = 0; i < section; i++)
--                              {
--                                      WRITE_REG8(GXRbb0Base+i, data[line_srcx+offset+i]);
--                              }
--                      }
--
--                      /* RENDER FROM BB0 TO FRAME BUFFER */
--
--                      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--                      WRITE_REG16(GP_DST_XCOOR, line_dstx);
--                      WRITE_REG16(GP_DST_YCOOR, dsty);
--                      WRITE_REG16(GP_WIDTH, section);
--                      WRITE_REG16(GP_BLIT_MODE, blit_mode);
--
--                      line_width -= section;
--                      line_dstx += section;
--                      line_srcx += section;
--              }
--              height--;
--              dsty++;
--              offset += pitch;
--      }
--}    
--
--/*
--//----------------------------------------------------------------------------
--// COLOR BITMAP TO SCREEN TRANSPARENT BLT
--//
--// This routine transfers color bitmap data to the screen with transparency.
--// The transparent color is specified.  The only supported ROP is SRCCOPY, 
--// meaning that transparency cannot be applied if the ROP requires 
--// destination data (this is a hardware restriction).
--//
--//      SRCX            X offset within source bitmap
--//      SRCY            Y offset within source bitmap
--//      DSTX            screen X position to render data
--//      DSTY            screen Y position to render data
--//      WIDTH           width of rectangle, in pixels
--//      HEIGHT          height of rectangle, in scanlines
--//      *DATA           pointer to bitmap data
--//      PITCH           pitch of bitmap data (bytes between scanlines)
--//      COLOR           transparent color
--//----------------------------------------------------------------------------
--*/
--
--void gxr_color_bitmap_to_screen_xblt(unsigned short srcx, unsigned short srcy,
--      unsigned short dstx, unsigned short dsty, unsigned short width, 
--      unsigned short height, unsigned char *data, unsigned short pitch, 
--      unsigned short color)
--{
--      unsigned short section, buffer_width;
--      unsigned short blit_mode = BM_READ_SRC_BB0;
--      unsigned short line_srcx, line_dstx, line_width;
--      unsigned short offset, i, first_blt = 1;
--
--      /* CHECK SIZE OF BLT BUFFER */
--
--      buffer_width = GXRbufferWidthPixels;
--      
--      /* POLL UNTIL ABLE TO WRITE TO THE REGISTERS */
--      /* Write the registers that do not change for each section. */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_HEIGHT, 1);
--      WRITE_REG16(GP_RASTER_MODE, 0x10C6);
--      WRITE_REG32(GP_PAT_COLOR_0, 0xFFFFFFFF);
--
--      /* CALCULATE OFFSET INTO BITMAP DATA */
--
--      offset = srcy * pitch;
--
--      /* REPEAT FOR EACH SCANLINE */
--
--      while(height > 0)
--      {
--              line_width = width;
--              line_srcx = srcx;
--              line_dstx = dstx;
--
--              while(line_width > 0)
--              {
--                      /* CHECK WIDTH OF CURRENT SECTION */
--
--                      if (line_width > buffer_width) section = buffer_width;
--                      else section = line_width;
--
--                      /* TRANSFER SCANLINE OF BITMAP DATA TO BLT BUFFER 0 */
--                      /* Need to wait for BS_PIPELINE_BUSY to make sure that the */ 
--                      /* data in BB0 for the previous scanline is no longer used. */
--                      /* This can be heavily optimized to not do a byte at a time. */
--
--                      while(READ_REG16(GP_BLIT_STATUS) & BS_PIPELINE_BUSY);
--                      if (READ_REG16(GP_BLIT_STATUS) & BC_16BPP)
--                      {
--                              for (i = 0; i < section; i++)
--                              {
--                                      WRITE_REG16(GXRbb0Base+i, data[offset+((line_srcx+i)<<1)]);
--                              }
--                      }
--                      else
--                      {
--                              for (i = 0; i < section; i++)
--                              {
--                                      WRITE_REG8(GXRbb0Base+i, data[line_srcx+offset+i]);
--                              }
--                      }
--
--                      /* RENDER FROM BB0 TO FRAME BUFFER */
--
--                      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--                      WRITE_REG16(GP_DST_XCOOR, line_dstx);
--                      WRITE_REG16(GP_DST_YCOOR, dsty);
--                      WRITE_REG16(GP_WIDTH, section);
--
--                      /* NEED TO DO EXTRA WORK FOR THE FIRST BLT */
--
--                      if (first_blt)
--                      {
--                              /* WRITE TRANSPARENCY COLOR TO BLT BUFFER 1 */
--                              /* This can be heavily optimized to not do 16-bits at a time. */
--
--                              if (READ_REG16(GP_BLIT_STATUS) & BC_16BPP)
--                              {
--                                      for (i = 0; i < section; i++)
--                                      {
--                                              WRITE_REG16(GXRbb1Base+i*2, color);
--                                      }
--                              }
--                              else
--                              {
--                                      for (i = 0; i < section; i++)
--                                      {
--                                              WRITE_REG8(GXRbb1Base+i, (unsigned char) color);
--                                      }
--                              }
--                              WRITE_REG16(GP_BLIT_MODE, BM_READ_SRC_BB0 | BM_READ_DST_BB1);
--                              first_blt = 0;
--                      }
--                      else
--                      {
--                              /* AFTER FIRST BLT, THE TRANSPARENCY DATA IS LATCHED */
--                              /* Save time by not reading data from BB1. */
--
--                              WRITE_REG16(GP_BLIT_MODE, BM_READ_SRC_BB0);
--                      }
--                      line_width -= section;
--                      line_dstx += section;
--                      line_srcx += section;
--              }
--              height--;
--              dsty++;
--              offset += pitch;
--      }
--}    
--
--/*
--//----------------------------------------------------------------------------
--// MONOCHROME BITMAP TO SCREEN BLT
--//
--// This routine transfers monochrome bitmap data to the screen.  
--//
--//      SRCX            X offset within source bitmap
--//      SRCY            Y offset within source bitmap
--//      DSTX            screen X position to render data
--//      DSTY            screen Y position to render data
--//      WIDTH           width of rectangle, in pixels
--//      HEIGHT          height of rectangle, in scanlines
--//      *DATA           pointer to bitmap data
--//      PITCH           pitch of bitmap data (bytes between scanlines)
--//      FGCOLOR         color for bits = 1
--//      BGCOLOR         color for bits = 0
--//      ROP             ternary raster operation (0x00-0xFF).
--//      TRANSPARENT     zero for opaque, otherwise transparent
--//----------------------------------------------------------------------------
--*/
--
--void gxr_mono_bitmap_to_screen_blt(unsigned short srcx, unsigned short srcy,
--      unsigned short dstx, unsigned short dsty, unsigned short width, 
--      unsigned short height, unsigned char *data, unsigned short pitch, 
--      unsigned short fgcolor, unsigned short bgcolor, unsigned char rop,
--      unsigned char transparent)
--{
--      unsigned short section, buffer_width;
--      unsigned short blit_mode = BM_READ_SRC_BB0 | BM_SOURCE_EXPAND;
--      unsigned short line_srcx, line_dstx, line_width;
--      unsigned short offset, i, bytes, raster_mode;
--
--      /* FORMAT 8BPP COLOR */
--    /* GX requires that 8BPP color data be duplicated into bits [15:8]. */
--
--      if (!(READ_REG16(GP_BLIT_STATUS) & BC_16BPP))
--      {
--              fgcolor &= 0x00FF;
--              fgcolor |= (fgcolor << 8);
--              bgcolor &= 0x00FF;
--              bgcolor |= (bgcolor << 8);
--      }
--
--      /* CHECK IF ROP REQUIRES DESTINATION DATA */
--      /* Even bits (0:2:4:6) do not equal corresponding odd bits (1:3:5:7). */
--
--      if ((rop & 0x55) ^ ((rop >> 1) & 0x55))
--              blit_mode |= BM_READ_DST_FB1;
--
--      /* CALCULATE RASTER MODE */
--      /* Set mono flag.  Transparency set based on input parameter. */
--
--      raster_mode = ((unsigned short) rop & 0x00FF);
--      if (transparent) raster_mode |= RM_SRC_TRANSPARENT;
--
--      /* CHECK SIZE OF BLT BUFFER */
--
--      buffer_width = GXRbufferWidthPixels;
--      
--      /* CALCULATE OFFSET INTO BITMAP DATA */
--
--      offset = srcy * pitch;
--
--      /* POLL UNTIL ABLE TO WRITE TO THE REGISTERS */
--      /* Write the registers that do not change for each section. */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_HEIGHT, 1);
--      WRITE_REG16(GP_RASTER_MODE, raster_mode);
--      WRITE_REG16(GP_SRC_COLOR_0, bgcolor);
--      WRITE_REG16(GP_SRC_COLOR_1, fgcolor);
--
--      /* REPEAT FOR EACH SCANLINE */
--
--      while(height > 0)
--      {
--              line_width = width;
--              line_srcx = srcx;
--              line_dstx = dstx;
--
--              while(line_width > 0)
--              {
--                      /* CHECK WIDTH OF CURRENT SECTION */
--                      /* Only divide into sections if reading destination data. */  
--                      /* Since the source data is monochrome, it will always fit. */
--
--                      section = line_width;
--                      if ((line_width > buffer_width) && (blit_mode & BM_READ_DST_FB1)) 
--                              section = buffer_width;
--
--                      /* BYTES TO TRANSFER */
--                      /* Add two bytes to handle truncating and alignment. */
--
--                      bytes = (section >> 3) + 2;
--
--                      /* TRANSFER SCANLINE OF BITMAP DATA TO BLT BUFFER 0 */
--                      /* Need to wait for BS_PIPELINE_BUSY to make sure that the */ 
--                      /* data in BB0 for the previous scanline is no longer used. */
--                      /* This can be heavily optimized to not do a byte at a time. */
--
--                      while(READ_REG16(GP_BLIT_STATUS) & BS_PIPELINE_BUSY);
--                      for (i = 0; i < bytes; i++)
--                      {
--                              WRITE_REG8(GXRbb0Base+i, data[(line_srcx >> 3)+offset+i]);
--                      }
--
--                      /* RENDER FROM BB0 TO FRAME BUFFER */
--
--                      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--                      WRITE_REG16(GP_DST_XCOOR, line_dstx);
--                      WRITE_REG16(GP_DST_YCOOR, dsty);
--                      WRITE_REG16(GP_SRC_XCOOR, line_srcx & 7);
--                      WRITE_REG16(GP_WIDTH, section);
--                      WRITE_REG16(GP_BLIT_MODE, blit_mode);
--
--                      line_width -= section;
--                      line_dstx += section;
--                      line_srcx += section;
--              }
--              height--;
--              dsty++;
--              offset += pitch;
--      }
--}    
--
--/*
--//----------------------------------------------------------------------------
--// TEXT GLYPH
--//
--// This routine draws a single character of text.  It can only be used for 
--// characters that are less than or equal to 64x64 in size, since it 
--// transfers the entire data into the BLT buffers at once.  Larger characters
--// should use the monochrome bitmap to screen routine.  The only supported 
--// ROP is SRCCOPY, again since the BLT buffer size is limited. 
--// 
--//      SRCX            X offset within source bitmap
--//      SRCY            Y offset within source bitmap
--//      DSTX            screen X position to render data
--//      DSTY            screen Y position to render data
--//      WIDTH           width of rectangle, in pixels
--//      HEIGHT          height of rectangle, in scanlines
--//      *DATA           pointer to bitmap data (NULL if already loaded)
--//      PITCH           pitch of bitmap data (bytes between scanlines)
--//
--// For the Xfree86 display driver, the OS is given a pointer to BB0.  
--// Therefore, the data is already loaded when the driver is called, so the
--// driver simply passes a NULL pointer to this routine.
--//
--// This same type of routine could be developed for "icons", or small 
--// color bitmaps that can fit entirely in the BLT buffer. 
--//----------------------------------------------------------------------------
--*/
--
--void gxr_text_glyph(unsigned short srcx, unsigned short srcy,
--      unsigned short dstx, unsigned short dsty, unsigned short width, 
--      unsigned short height, unsigned char *data, unsigned short pitch)
--{
--      unsigned short offset, i, j, buffer_offset, bytes, blit_mode;
--
--      blit_mode = BM_READ_SRC_BB0 | BM_SOURCE_EXPAND;
--      if (GXRusesDstData) blit_mode |= BM_READ_DST_FB1;
--
--      /* CHECK IF DATA NEEDS TO BE TRANSFERRED */
--
--      if (data != 0)
--      {
--              /* TRANSFER ENTIRE BITMAP DATA TO BLT BUFFER 0 */
--              /* Need to wait for BS_PIPELINE_BUSY to make sure that the */ 
--              /* data in BB0 for any previous BLT is no longer used. */
--              /* This data transfer has lots of room for performance optimization. */
--
--              buffer_offset = 0;
--              offset = srcy * pitch + (srcx >> 3);
--              bytes = ((width + (srcx & 7) + 7) >> 3);
--              while(READ_REG16(GP_BLIT_STATUS) & BS_PIPELINE_BUSY);
--              for (j = 0; j < height; j++)
--              {
--                      for (i = 0; i < bytes; i++)
--                      {
--                              WRITE_REG8(GXRbb0Base+buffer_offset, data[offset+i]);
--                              buffer_offset++;
--                      }
--                      offset += pitch;
--              }
--      }
--
--      /* RENDER FROM BB0 TO FRAME BUFFER */
--      /* Already know that the pipeline is idle from loading data. */
--
--      WRITE_REG16(GP_DST_XCOOR, dstx);
--      WRITE_REG16(GP_DST_YCOOR, dsty);
--      WRITE_REG16(GP_SRC_XCOOR, srcx & 7);
--      WRITE_REG16(GP_WIDTH, width);
--      WRITE_REG16(GP_HEIGHT, height);
--      WRITE_REG16(GP_BLIT_MODE, blit_mode);
--}    
--
--/*
--//----------------------------------------------------------------------------
--// BRESENHAM LINE
--//
--// This routine draws a vector using the specified Bresenham parameters.  
--// Currently this file does not support a routine that accepts the two 
--// endpoints of a vector and calculates the Bresenham parameters.  If it 
--// ever does, this routine is still required for vectors that have been 
--// clipped.
--//
--//      X               screen X position to start vector
--//      Y               screen Y position to start vector
--//      LENGTH          length of the vector, in pixels
--//      INITERR         Bresenham initial error term
--//      AXIALERR        Bresenham axial error term
--//      DIAGERR         Bresenham diagonal error term
--//      FLAGS           VM_YMAJOR, VM_MAJOR_INC, VM_MINOR_INC
--//----------------------------------------------------------------------------
--*/
--
--void gxr_bresenham_line(unsigned short x, unsigned short y, 
--              unsigned short length, unsigned short initerr, 
--              unsigned short axialerr, unsigned short diagerr, 
--              unsigned short flags)
--{
--      unsigned short vector_mode = flags;
--      if (GXRusesDstData) vector_mode |= VM_READ_DST_FB;
--
--      /* CHECK NULL LENGTH */
--
--      if (!length) return;
--
--      /* LOAD THE REGISTERS FOR THE VECTOR */
--
--      while(READ_REG16(GP_BLIT_STATUS) & BS_BLIT_PENDING);
--      WRITE_REG16(GP_DST_XCOOR, x);
--      WRITE_REG16(GP_DST_YCOOR, y);
--      WRITE_REG16(GP_VECTOR_LENGTH, length);
--      WRITE_REG16(GP_INIT_ERROR, initerr);
--      WRITE_REG16(GP_AXIAL_ERROR, axialerr);
--      WRITE_REG16(GP_DIAG_ERROR, diagerr);
--      WRITE_REG16(GP_VECTOR_MODE, vector_mode);
--}
--
--/* END OF FILE */
--
diff --git a/XFree86-Servers-fbdev-compile.patch b/XFree86-Servers-fbdev-compile.patch
deleted file mode 100644 (file)
index 8a644c7..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- xc/programs/Xserver/hw/xfree68/fbdev/fbdev.c.jj    Wed Jun  2 07:40:47 1999
-+++ xc/programs/Xserver/hw/xfree68/fbdev/fbdev.c       Mon Jun  5 17:13:55 2000
-@@ -27,6 +27,8 @@
- #define DIRECTCOLORHACK               /* hack for directcolor */
-+#include <stdlib.h>
-+#include <math.h>
- #include "X.h"
- #include "input.h"
- #include "scrnintstr.h"
-@@ -51,8 +53,6 @@
- #endif /* CONFIG_AFB */
- #include <linux/fb.h>
- #include <asm/page.h>
--#include <stdlib.h>
--#include <math.h>
- #include "colormapst.h"
- #include "resource.h"
diff --git a/XFree86-Servers-fix-01-r128.patch b/XFree86-Servers-fix-01-r128.patch
deleted file mode 100644 (file)
index 9114285..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-
-7 February 2000
-
-This patch fixes a text corruption problem that shows up with the
-Rage 128 driver in 3.3.6.  To use this patch you need either the
-XFree86 source tree or the LinkKit.  This patch cannot be used to
-patch binaries directly.  Updated binaries for most platforms should
-be available soon.
-
-To apply the patch to the XFree86 source tree, go the directory containing
-the main "xc" directory, and run:
-
-  patch -p0 -E < this-file
-
-
-
-Index: xc/programs/Xserver/hw/xfree86/vga256/drivers/r128/r128_accel.c
-===================================================================
-RCS file: /home/x-cvs/xc/programs/Xserver/hw/xfree86/vga256/drivers/r128/Attic/r128_accel.c,v
-retrieving revision 1.1.2.3
-diff -u -r1.1.2.3 r128_accel.c
---- r128_accel.c       1999/11/18 15:37:32     1.1.2.3
-+++ xc/programs/Xserver/hw/xfree86/vga256/drivers/r128/r128_accel.c    2000/01/28 03:23:14
-@@ -179,7 +179,7 @@
-     R128InfoPtr   info      = R128PTR();
-     unsigned char *R128MMIO = info->MMIO;
--    R128WaitForFifo(3);
-+    R128WaitForFifo(4);
-     OUTREG(R128_DP_GUI_MASTER_CNTL, (info->dp_gui_master_cntl
-                                    | R128_GMC_BRUSH_SOLID_COLOR
-                                    | R128_GMC_SRC_DATATYPE_COLOR
-@@ -188,6 +188,8 @@
-                                    | R128_AUX_CLIP_DIS));
-     OUTREG(R128_DP_BRUSH_FRGD_CLR,  color);
-     OUTREG(R128_DP_WRITE_MASK,      planemask);
-+    OUTREG(R128_DP_CNTL,            (R128_DST_X_LEFT_TO_RIGHT
-+                                   | R128_DST_Y_TOP_TO_BOTTOM));
- }
- /* Subsequent XAA FillRectSolid. */
-@@ -364,6 +366,9 @@
-     OUTREG(R128_DST_Y_X,            ((info->scanline_y++ << 16)
-                                    | info->scanline_x));
-     OUTREG(R128_DST_HEIGHT_WIDTH,   info->scanline_h_w);
-+
-+                              /* Correct for new XAA offset calculation */
-+    p += ((srcAddr/8-1)/4);
- #if R128_FAST_COLOR_EXPAND
-     while (left) {
-Index: xc/programs/Xserver/hw/xfree86/vga256/vga/vga.h
-===================================================================
-RCS file: /home/x-cvs/xc/programs/Xserver/hw/xfree86/vga256/vga/Attic/vga.h,v
-retrieving revision 3.23.2.7
-diff -u -r3.23.2.7 vga.h
---- vga.h      1998/07/30 06:24:18     3.23.2.7
-+++ xc/programs/Xserver/hw/xfree86/vga256/vga/vga.h    2000/02/05 19:31:53
-@@ -30,7 +30,7 @@
- #define VGA2_PATCHLEVEL "0"
- #define VGA16_PATCHLEVEL "0"
--#define SVGA_PATCHLEVEL "0"
-+#define SVGA_PATCHLEVEL "1"
- #include "X.h"
- #include "misc.h"
-
diff --git a/XFree86-Servers-fix-04-s3trio3d2x.patch b/XFree86-Servers-fix-04-s3trio3d2x.patch
deleted file mode 100644 (file)
index 9e128d8..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -u clean/xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.h xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.h
---- clean/xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.h       Tue Jan 11 20:01:01 2000
-+++ xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.h     Mon Mar 13 16:56:47 2000
-@@ -19,7 +19,7 @@
-    unsigned char CR40, CR41, CR42, CR43, CR45;
-    unsigned char CR51, CR53, CR54, CR55, CR58, CR5D, CR5E;
-    unsigned char CR63, CR65, CR66, CR67, CR68, CR69, CR6D; /* Video attrib. */
--   unsigned char CR86;
-+   unsigned char CR85, CR86;
-    unsigned char CR90, CR91;
-    unsigned char ColorStack[8]; /* S3 hw cursor color stack CR4A/CR4B */
-    unsigned int  STREAMS[22];   /* Streams regs */
-diff -u clean/xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.c xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.c
---- clean/xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.c       Tue Jan 11 20:01:01 2000
-+++ xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_driver.c     Tue Mar 14 01:05:09 2000
-@@ -471,6 +471,10 @@
-    outb(vgaCRIndex, 0x33);
-    outb(vgaCRReg, restore->CR33);
-+   if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
-+      outb(vgaCRIndex, 0x85);
-+      outb(vgaCRReg, restore->CR85);
-+   }
-    if (s3vPriv.chip == S3_ViRGE_DXGX) {
-       outb(vgaCRIndex, 0x86);
-       outb(vgaCRReg, restore->CR86);
-@@ -702,6 +706,10 @@
-    outb(vgaCRIndex, 0x33);             
-    save->CR33 = inb(vgaCRReg);
-+   if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
-+      outb(vgaCRIndex, 0x85);
-+      save->CR85 = inb(vgaCRReg);
-+   }
-    if (s3vPriv.chip == S3_ViRGE_DXGX) {
-       outb(vgaCRIndex, 0x86);
-       save->CR86 = inb(vgaCRReg);
-@@ -970,10 +978,12 @@
-       }
-       else if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
-          switch((config1 & 0xE0) >> 5) {
--         case 0:
--            vga256InfoRec.videoRam = 8 * 1024;
-+         case 0:  /* 8MB -- only 4MB usable for display/cursor */
-+            vga256InfoRec.videoRam = 4 * 1024;
-+            s3vPriv.MemOffScreen   = 4 * 1024;
-             break;
-          case 1:    /* 32 bit interface -- yuck */
-+          ErrorF("%s %s: found 32 bit interface for video memory -- yuck:(\n");
-          case 2:
-             vga256InfoRec.videoRam = 4 * 1024;
-             break;
-@@ -1071,6 +1081,12 @@
-       if (vga256InfoRec.dacSpeeds[2] <= 0) vga256InfoRec.dacSpeeds[2] = 135000;
-       if (vga256InfoRec.dacSpeeds[3] <= 0) vga256InfoRec.dacSpeeds[3] = 135000;
-    }
-+   else if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
-+      if (vga256InfoRec.dacSpeeds[0] <= 0) vga256InfoRec.dacSpeeds[0] = 230000;
-+      if (vga256InfoRec.dacSpeeds[1] <= 0) vga256InfoRec.dacSpeeds[1] = 230000;
-+      if (vga256InfoRec.dacSpeeds[2] <= 0) vga256InfoRec.dacSpeeds[2] = 135000;
-+      if (vga256InfoRec.dacSpeeds[3] <= 0) vga256InfoRec.dacSpeeds[3] = 135000;
-+   }
-    else if (s3vPriv.chip == S3_ViRGE_DXGX || S3_ViRGE_GX2_SERIES(s3vPriv.chip)) {
-       if (vga256InfoRec.dacSpeeds[0] <= 0) vga256InfoRec.dacSpeeds[0] = 170000;
-       if (vga256InfoRec.dacSpeeds[1] <= 0) vga256InfoRec.dacSpeeds[1] = 170000;
-@@ -1874,6 +1890,9 @@
-    new->CR33 = 0x20;
-    if ((s3vPriv.chip == S3_ViRGE_DXGX) || (S3_TRIO_3D_SERIES(s3vPriv.chip))) {
-       new->CR86 = 0x80;  /* disable DAC power saving to avoid bright left edge */
-+   }
-+   if (S3_TRIO_3D_2X_SERIES(s3vPriv.chip)) {
-+      new->CR85 = 0x1f;  /* avoid sreen flickering */
-    }
-    if (s3vPriv.chip == S3_ViRGE_DXGX || S3_ViRGE_GX2_SERIES(s3vPriv.chip) || 
-        S3_ViRGE_MX_SERIES(s3vPriv.chip) || S3_TRIO_3D_SERIES(s3vPriv.chip)) {
diff --git a/XFree86-Servers-fix-05-s3trio3d.patch b/XFree86-Servers-fix-05-s3trio3d.patch
deleted file mode 100644 (file)
index bce41c9..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -u orig/regs3v.h xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/regs3v.h
---- orig/regs3v.h      Thu Nov 18 16:57:17 1999
-+++ xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/regs3v.h Thu May 25 14:16:00 2000
-@@ -46,13 +46,15 @@
- #define VerticalRetraceWait() \
--{ \
-+{ unsigned char tmp; \
-+   tmp = inb(vgaCRIndex); \
-    outb(vgaCRIndex, 0x17); \
-    if ( inb(vgaCRReg) & 0x80 ) { \
-        while ((inb(vgaIOBase + 0x0A) & 0x08) == 0x00) ; \
-        while ((inb(vgaIOBase + 0x0A) & 0x08) == 0x08) ; \
-        while ((inb(vgaIOBase + 0x0A) & 0x08) == 0x00) ; \
-        }\
-+   outb(vgaCRIndex, tmp); \
- }
- #if 0 /* currently not used at all */
-diff -u orig/s3v_accel.c xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_accel.c
---- orig/s3v_accel.c   Mon May 10 18:51:13 1999
-+++ xc/programs/Xserver/hw/xfree86/vga256/drivers/s3v/s3v_accel.c      Thu May 25 14:17:54 2000
-@@ -321,7 +321,8 @@
- S3VGEReset(int from_timeout, int line, char *file)
- {
-     unsigned long gs1, gs2;   /* -- debug info for graphics state -- */
--    unsigned char tmp, sr1, resetidx;
-+    /* HK: resetidx doesn't work yet, use read-only register for fake */
-+    unsigned char tmp, sr1, resetidx=0x2e;  
-     int r;
-     int ge_was_on = 0;
-     int32  fifo_control, miu_control, streams_timeout, misc_timeout;
-@@ -411,6 +412,7 @@
-       if(tmp & 0x01) {
-         tmp &= ~0x01;
-+      outb(vgaCRIndex,resetidx);
-         outb(vgaCRReg, tmp);
-         ge_was_on = 1;
-         usleep(10000);
-@@ -421,6 +423,7 @@
-       usleep(10000);
-       VerticalRetraceWait();
-+      outb(vgaCRIndex,resetidx);
-       outb(vgaCRReg, (tmp & ~0x02));
-       usleep(10000);
diff --git a/XFree86-Servers-fixreleasedate.patch b/XFree86-Servers-fixreleasedate.patch
deleted file mode 100644 (file)
index 109f35e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/xf86Version.h.fixreleasedate  Wed Feb 23 18:18:02 2000
-+++ XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/xf86Version.h Wed Feb 23 18:18:22 2000
-@@ -19,6 +19,6 @@
-                       XF86_VERSION_BETA,                      \
-                       XF86_VERSION_ALPHA)
--#define XF86_DATE     "January 8 1999"
-+#define XF86_DATE     "January 8 2000"
- /* $XConsortium: xf86Version.h /main/78 1996/10/28 05:42:10 kaleb $ */
diff --git a/XFree86-Servers-joy.patch b/XFree86-Servers-joy.patch
deleted file mode 100644 (file)
index 2b82491..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- XFree86-3.3.3/xc/config/cf/xfree86.cf.joy  Mon Dec  7 15:50:14 1998
-+++ XFree86-3.3.3/xc/config/cf/xfree86.cf      Mon Dec  7 15:50:36 1998
-@@ -684,7 +684,7 @@
- #endif
- #endif
- #ifndef JoystickSupport
--#define JoystickSupport               NO
-+#define JoystickSupport               YES
- #endif
- /*
diff --git a/XFree86-Servers-morecyrix.patch b/XFree86-Servers-morecyrix.patch
deleted file mode 100644 (file)
index 91223b2..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-diff -ruN XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h  Wed Mar  1 16:31:43 2000
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h        Wed Mar  1 16:24:02 2000
-@@ -1,5 +1,5 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h,v 1.1.2.5 1998/11/06 09:47:02 hohndel Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix.h,v 1.1.2.6 1998/12/22 07:49:58 hohndel Exp $ */
- /* this code is partly based on the MediaGX sources from the GGI project
-    based on CYRIX example code (gxvideo.c) and included with CYRIX and
-@@ -88,9 +88,10 @@
- #define CYRIXsetVectorMode()                 \
-                      GX_REG(GP_VECTOR_MODE)  = (vectorMode)
--#define IfDest(xrop, val)   ((((xrop) & 0x5) ^ (((xrop) & 0xA) >> 1)) ? (val) : 0)
--
--
-+#define IfDest(rop, planemask, val)                                        \
-+                                 (( (((rop) & 0x5) ^ (((rop) & 0xA) >> 1)) \
-+                                 || (~((planemask) & 0xFF))                \
-+                                 ) ? (val) : 0)
- /* Generic MediaGX hardware register and value definitions */
-diff -ruN XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c    Wed Mar  1 16:31:43 2000
-+++ XFree86-3.3.3.1/xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c  Wed Mar  1 16:24:02 2000
-@@ -1,4 +1,4 @@
--/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c,v 1.1.2.3 1998/11/06 09:47:04 hohndel Exp $ */
-+/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/cyrix/cyrix_accel.c,v 1.1.2.5 1998/12/22 07:49:58 hohndel Exp $ */
- /*
-  * Copyright 1998 by Annius Groenink, Amsterdam.
-@@ -80,10 +80,12 @@
- {     /* General acceleration flags */
-       xf86AccelInfoRec.Flags = PIXMAP_CACHE
-                              | BACKGROUND_OPERATIONS
-+#if 0
-+                             | HARDWARE_PATTERN_MONO_TRANSPARENCY
-+#endif
-                              | HARDWARE_PATTERN_SCREEN_ORIGIN
-                              | HARDWARE_PATTERN_BIT_ORDER_MSBFIRST
--                             | HARDWARE_PATTERN_PROGRAMMED_BITS
--                             | HARDWARE_PATTERN_MONO_TRANSPARENCY;
-+                             | HARDWARE_PATTERN_PROGRAMMED_BITS;
-       /* Sync */
-       xf86AccelInfoRec.Sync = CYRIXAccelSync;
-@@ -93,19 +95,22 @@
-           CYRIXSetupForFillRectSolid;
-       xf86AccelInfoRec.SubsequentFillRectSolid = 
-           CYRIXSubsequentFillRectSolid;
--      xf86GCInfoRec.PolyFillRectSolidFlags = 0;
-+      xf86GCInfoRec.PolyFillRectSolidFlags = NO_PLANEMASK;
-       /* ScreenToScreen copies */
-       xf86AccelInfoRec.SetupForScreenToScreenCopy =
-           CYRIXSetupForScreenToScreenCopy;
-       xf86AccelInfoRec.SubsequentScreenToScreenCopy =
-           CYRIXSubsequentScreenToScreenCopy;
--      xf86GCInfoRec.CopyAreaFlags = TRANSPARENCY_GXCOPY;
--      /* Bresenham lines */
-+      xf86GCInfoRec.CopyAreaFlags = NO_PLANEMASK | GXCOPY_ONLY;
-+
-+#if 0
-+      /* Bresenham lines - disable because of minor display errors */
-       xf86AccelInfoRec.SubsequentBresenhamLine =
-           CYRIXSubsequentBresenhamLine;
-       xf86AccelInfoRec.ErrorTermBits = 15;
-+#endif
-       /* 8x8 color-expanded patterns */
-       xf86AccelInfoRec.SetupFor8x8PatternColorExpand =
-@@ -115,6 +120,8 @@
-       /* Color expansion */
-       xf86AccelInfoRec.ColorExpandFlags = BIT_ORDER_IN_BYTE_MSBFIRST |
-+                                          NO_PLANEMASK |
-+                                          TRANSPARENCY_GXCOPY |
-                                           SCANLINE_PAD_BYTE;
-       /* Use two blit buffers in a row for text expansion
-@@ -175,13 +182,18 @@
- CYRIXSetupForFillRectSolid(color, rop, planemask)
- int color, rop;
- unsigned int planemask;
--{     CYRIXsetupSync();
-+{     if (xf86GCInfoRec.PolyFillRectSolidFlags & NO_PLANEMASK)
-+              planemask = 0xFFFF;
-+      if (xf86GCInfoRec.PolyFillRectSolidFlags & GXCOPY_ONLY)
-+              rop = GXcopy;
-+
-+      CYRIXsetupSync();
-       CYRIXsetSourceColors01(color, color);
-       CYRIXsetPatColors01(planemask, 0);
-       CYRIXsetPatMode(rop, RM_PAT_DISABLE);
-       blitMode = BM_READ_SRC_NONE | BM_WRITE_FB | BM_SOURCE_EXPAND
--               | IfDest(rop, BM_READ_DST_FB0);
--      vectorMode = IfDest(rop, VM_READ_DST_FB);
-+               | IfDest(rop, planemask, BM_READ_DST_FB0);
-+      vectorMode = IfDest(rop, planemask, VM_READ_DST_FB);
- }
-     
-     
-@@ -209,7 +221,14 @@
- int rop;
- unsigned int planemask;
- int transparency_color;
--{     CYRIXsetupSync();
-+{     if (xf86GCInfoRec.CopyAreaFlags & NO_PLANEMASK)
-+              planemask = 0xFFFF;
-+      if (xf86GCInfoRec.CopyAreaFlags & GXCOPY_ONLY)
-+              rop = GXcopy;
-+      if (xf86GCInfoRec.CopyAreaFlags & NO_TRANSPARENCY)
-+              transparency_color = -1;
-+
-+      CYRIXsetupSync();
-       CYRIXsetPatColors01(planemask, 0);
-       if (transparency_color == -1)
-@@ -220,6 +239,9 @@
-       {       CYRIXsetPatModeTrans(RM_PAT_DISABLE);
-               transMode = 1;
-+              if (xf86GCInfoRec.CopyAreaFlags & TRANSPARENCY_GXCOPY)
-+                      rop = GXcopy;
-+
-               /* fill blit buffer 1 with the transparency color */
-               if (vgaBitsPerPixel == 16)
-               {       int              k   = CYRIXbltBufSize / 4;
-@@ -235,7 +257,7 @@
-       }
-       blitMode = BM_READ_SRC_FB | BM_WRITE_FB | BM_SOURCE_COLOR
--               | (transMode ? IfDest(rop, BM_READ_DST_FB1) : BM_READ_DST_NONE)
-+               | (transMode ? BM_READ_DST_NONE : IfDest(rop, planemask, BM_READ_DST_FB1))
-                | (ydir < 0 ? BM_REVERSE_Y : 0);
-       copyXdir = xdir;
-@@ -318,6 +340,11 @@
- unsigned int planemask;
- {     int trans = (bg == -1);
-+      if (xf86AccelInfoRec.ColorExpandFlags & NO_PLANEMASK)
-+              planemask = 0xFFFF;
-+      if (trans && (xf86AccelInfoRec.ColorExpandFlags & TRANSPARENCY_GXCOPY))
-+              rop = GXcopy;
-+
-       CYRIXsetupSync();
-       CYRIXsetSourceColors01(planemask, planemask);
-       CYRIXsetPatColors01(trans ? 0 : bg, fg);
-@@ -325,7 +352,7 @@
-       CYRIXsetPatModeX(rop, RM_PAT_MONO | (trans ? RM_PAT_TRANSPARENT : 0));
-       blitMode = BM_READ_SRC_NONE | BM_WRITE_FB | BM_SOURCE_EXPAND
--               | (trans ? IfDest(rop, BM_READ_DST_FB0) : BM_READ_DST_NONE);
-+               | (trans ? IfDest(rop, planemask, BM_READ_DST_FB0) : BM_READ_DST_NONE);
- }
- void CYRIXSubsequent8x8PatternColorExpand(patternx, patterny, x, y, w, h)
-@@ -341,6 +368,9 @@
- unsigned int planemask;
- {     int trans = (bg == -1);
-+      if (trans && (xf86AccelInfoRec.ColorExpandFlags & TRANSPARENCY_GXCOPY))
-+              rop = GXcopy;
-+
-       CYRIXsetupSync();
-       CYRIXsetSourceColors01(trans ? 0 : bg, fg);
-       CYRIXsetPatColors01(planemask, 0);
-@@ -352,7 +382,7 @@
-          used.  So far, this problem has not manifested itself in
-          practice. */
-       blitMode = BM_READ_SRC_BB0 | BM_WRITE_FB | BM_SOURCE_EXPAND
--               | (trans ? IfDest(rop, BM_READ_DST_FB1) : BM_READ_DST_NONE);
-+               | (trans ? IfDest(rop, planemask, BM_READ_DST_FB1) : BM_READ_DST_NONE);
- }
- void CYRIXSubsequentCPUToScreenColorExpand(x, y, w, h, skipleft)
diff --git a/XFree86-Servers-new-i810.patch b/XFree86-Servers-new-i810.patch
deleted file mode 100644 (file)
index ade32ec..0000000
+++ /dev/null
@@ -1,650 +0,0 @@
---- XFree86-3.3.6/xc/config/cf/xfree86.cf.810  Tue Mar 14 23:08:19 2000
-+++ XFree86-3.3.6/xc/config/cf/xfree86.cf      Tue Mar 14 23:08:19 2000
-@@ -437,7 +437,7 @@ XCOMM $XConsortium: xfree86.cf /main/34 
-                               cirrus ncr77c22 compaq mga oak al2101 \
-                               ali cl64xx video7 ark mx realtek s3_savage s3v apm \
-                               s3_svga neo chips cyrix rendition p9x00 \
--                              spc8110 i740 tdfx smi generic
-+                              spc8110 i740 tdfx i810 smi generic
- #  else
- #   define XF86SvgaDrivers    nv et4000 et3000 pvga1 gvga r128 ati sis tvga8900 \
-                               cirrus ncr77c22 compaq mga oak al2101 \
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/doc/Imakefile.810     Fri Dec  3 01:42:28 1999
-+++ XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/doc/Imakefile Tue Mar 14 23:08:19 2000
-@@ -90,7 +90,7 @@ HWREADME =  README.ati README.trident RE
-             README.I128 README.Mach32 \
-             README.Mach64 README.ark README.MGA README.NVIDIA README.mouse \
-           README.neo README.rendition README.3DLabs README.cyrix \
--          README.i740 README.r128
-+          README.i740 README.r128 README.i810
- MAINDOCS = COPYRIGHT README README.Config BUILD RELNOTES
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810_memory.c.810 Thu Nov 18 11:22:48 1999
-+++ XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810_memory.c     Wed Mar 15 10:16:12 2000
-@@ -54,343 +54,192 @@ extern vgaPCIInformation *vgaPCIInfo;
- #include "i810.h"
- #include "i810_reg.h"
--#include <agpgart.h>
-+#include <linux/agpgart.h>
- /* DcachePtr will be set up, but not used. 
-  */
- I810MemRange I810DcacheMem = { 0, 0, 0 };
- I810MemRange I810SysMem = { 0, 0, 0 };
--I810MemRange *I810DisplayPtr = &I810SysMem;
--
--
--#define gtt_None         0
--#define gtt_Local        1
--#define gtt_Kernel       2
--
--
--/* Used in fallback GTT:
-- */
--static int I810GttType = 0;
--static unsigned long I810Physical = 0;
--static unsigned long I810GttSize = 0;
--static unsigned long I810GttPhysical = 0;
--static unsigned long I810ScratchPageLocal = 0;
-+unsigned long I810TopOfMem = 0;
- /* Used to determine which watermarks to use:
-  */
- int I810LmFreqSel = 0;
--
--/* Communications with the kernel module:
-+/* Work out the real top of physical memory (not just what it says in
-+ * /proc/meminfo).  Figure out the position and size of the
-+ * preallocated (stolen) video ram segment.  For now, this is all the
-+ * memory we will use.
-  */
--static int    gartfd;
--static struct gart_info gartinf;
--static struct gart_pge_info gart_pg_inf;
--
--static int I810AllocateGARTMemory( void ) 
-+Bool I810CharacterizeSystemRam( pciConfigPtr pcr )
- {
--   int size = 4 * 1024 * 1024;
--   int i, j, pages = size / 4096; 
--   struct stat sb;
--
--   /* We can only fallback if there is no agpgart module active -
--    * otherwise the fallback to system ram screws up the other gart
--    * client(s). 
-+   pciTagRec tag = pcibusTag(pcr->_bus, pcr->_cardnum, pcr->_func);
-+   unsigned long whtcfg_pamr_drp;
-+   int pages = 4 * 1024 * 1024 / 4096; 
-+
-+   /* Communications with the kernel module:
-     */
--   if (stat("/dev/agpgart", &sb) != 0) {
--      ErrorF("%s %s: Stat failed on /dev/agpgart: %s\n", 
--           XCONFIG_PROBED, vga256InfoRec.name, 
--           sys_errlist[errno]);
-+   int gartfd;
-+   agp_info agpinf;
-+   agp_bind bind;
-+   agp_allocate alloc;
-+
-+   /* Physical page reserved for hardware curcor. It is at the top of
-+      the frame buffer. */
-+   int hw_cursor_page;
--      /* Fallback - we'll manage the GTT ourselves.
--       */
--      return -1;
--   }
-+   /* Need to do read longs, because read word returns rubbish...
-+    */
-+   whtcfg_pamr_drp = pciReadLong( tag, WHTCFG_PAMR_DRP );
-+
-+   /* Need this for choosing watermarks.
-+    */
-+   if ((whtcfg_pamr_drp & LM_FREQ_MASK) == LM_FREQ_133)
-+      I810LmFreqSel = 133;
-+   else
-+      I810LmFreqSel = 100;
-    gartfd = open("/dev/agpgart", O_RDWR);
-    if (gartfd == -1) {        
-       ErrorF("%s %s: unable to open /dev/agpgart: %s\n", 
--           XCONFIG_PROBED, vga256InfoRec.name, 
-+           XCONFIG_PROBED, vga256InfoRec.name,
-            sys_errlist[errno]);
-       FatalError("Aborting");
-    }
--   if (ioctl(gartfd, GARTIOCINFO, &gartinf) != 0) {
--      ErrorF("%s %s: error doing ioctl(GARTIOCINFO): %s\n", 
--           XCONFIG_PROBED, vga256InfoRec.name, 
-+   if (ioctl(gartfd, AGPIOC_ACQUIRE) != 0) {
-+      ErrorF("%s %s: error doing ioctl(AGPIOC_ACQUIRE): %s\n", 
-+           XCONFIG_PROBED, vga256InfoRec.name,
-            sys_errlist[errno]);
-       FatalError("Aborting");
-    }
-+   if (ioctl(gartfd, AGPIOC_INFO, &agpinf) != 0) {
-+      ErrorF("%s %s: error doing ioctl(AGPIOC_INFO): %s\n", 
-+           XCONFIG_PROBED, vga256InfoRec.name,
-+           sys_errlist[errno]);
-+      FatalError("Aborting");
-+   }
--   /* Dcache - half the speed of normal ram, so not really useful for
--    * a 2d server.  Don't bother reporting its presence.  
--    */
--   if (gartinf.num_dcache_slots) {
--      I810DcacheMem.Start = gartinf.num_of_slots * 4096;
--      I810DcacheMem.Size = gartinf.num_dcache_slots * 4096;
--      I810DcacheMem.End = I810DcacheMem.Start + I810DcacheMem.Size;
-+   if (agpinf.version.major != 0 ||
-+       agpinf.version.minor != 99) {
-+      ErrorF("%s %s: Agp kernel driver version not correct\n", 
-+           XCONFIG_PROBED, vga256InfoRec.name);
-+      FatalError("Aborting");
-    }
--   
-+
-+   /* Reserve a page for hardware cursor. */
-+   hw_cursor_page = OFLG_ISSET(OPTION_SW_CURSOR, &vga256InfoRec.options)
-+      ? 0 : 1;
-    /* Treat the gart like video memory - we assume we own all that is
-     * there, so ignore EBUSY errors.  Don't try to remove it on
-     * failure, either.
-     */
--   for (i = 0; i < pages; i++) 
--      if (ioctl(gartfd, GARTIOCINSERT, &i) != 0) {
--       if (errno != EBUSY) 
--       {      
--          perror("gart insert");
--          ErrorF("%s %s: GART: allocation of %d pages failed at page %d\n", 
--                 XCONFIG_PROBED, vga256InfoRec.name, pages, i);
--          FatalError("Aborting");
--       }      
--      } 
-+   alloc.pg_count = pages - hw_cursor_page;
-+   alloc.type = 0;
--   ErrorF("%s %s: GART: allocated %dK system ram\n",
--        XCONFIG_PROBED, vga256InfoRec.name, pages * 4);
--   
--   I810SysMem.Start = 0;
--   I810SysMem.End = pages * 4096;
--   I810SysMem.Size = pages * 4096;
--   I810GttType = gtt_Kernel;
--
--   vga256InfoRec.videoRam = I810SysMem.Size / 1024;
-+   if (ioctl(gartfd, AGPIOC_ALLOCATE, &alloc) && errno != EBUSY) {
-+      ErrorF("%s %s: GART: allocation of %d pages: %s\n", 
-+           XCONFIG_PROBED, vga256InfoRec.name, alloc.pg_count,
-+           sys_errlist[errno]);
-+      FatalError("Aborting");
-+   } 
--   return 0;
--}
-+   bind.pg_start = I810TopOfMem / 4096;
-+   bind.key = alloc.key;
-+   if (ioctl(gartfd, AGPIOC_BIND, &bind) && errno != EBUSY) {
-+      ErrorF("%s %s: GART: bind of %d pages: %s\n", 
-+           XCONFIG_PROBED, vga256InfoRec.name, alloc.pg_count,
-+           sys_errlist[errno]);
-+      FatalError("Aborting");
-+   }
-+   I810SysMem.Start = I810TopOfMem;
-+   I810SysMem.End = alloc.pg_count * 4096;
-+   I810SysMem.Size = I810SysMem.End - I810SysMem.Start;
-+   I810TopOfMem = I810SysMem.End;
--static void I810SetupFallbackGTT()
--{
--   unsigned int off, pte;
-+   if (hw_cursor_page) {
-+      /* Mouse cursor -- The i810 (crazy) needs a physical address in
-+       * system memory from which to upload the cursor.  We get this
-+       * from the agpgart module using a special memory type.
-+       */
-+      alloc.pg_count = hw_cursor_page;
-+      alloc.type = 2;
--   OUTREG(PGETBL_CTL, (I810GttPhysical | PGETBL_ENABLED));
-+      if (ioctl(gartfd, AGPIOC_ALLOCATE, &alloc) != 0) {
-+       ErrorF("%s %s: GART: allocation of %d pages for mouse: %s\n", 
-+              XCONFIG_PROBED, vga256InfoRec.name, alloc.pg_count,
-+              sys_errlist[errno]);
-+      }
-+      else {
-+       bind.pg_start = I810TopOfMem / 4096;
-+       bind.key = alloc.key;
-+
-+       if (ioctl(gartfd, AGPIOC_BIND, &bind) != 0) {
-+          ErrorF("%s %s: GART: bind of %d pages for mouse: %s\n", 
-+                 XCONFIG_PROBED, vga256InfoRec.name, alloc.pg_count,
-+                 sys_errlist[errno]);
-+          ioctl(gartfd, AGPIOC_DEALLOCATE, &alloc);
-+       }
-+       else {
-+          I810CursorPhysical = alloc.physical;
-+          I810CursorStart = I810TopOfMem;
--   /* - load GTT entries via the MMIO aperture 
--    * - Use a dedicated scratch page.
--    */
--   for (off = 0, pte = 0 ; 
--      pte < (I810GttSize * 1024) ;
--      off += 4096, pte += 4) 
--   {
--      if (off < I810DcacheMem.End) {
--       OUTREG_(PTE_BASE + pte, off | PTE_LOCAL | PTE_VALID);
--      } else if (off < I810SysMem.End) {
--       OUTREG_(PTE_BASE + pte,
--               (I810Physical + off - I810DcacheMem.End)
--               | PTE_MAIN_UNCACHED | PTE_VALID);
--      } else {
--       OUTREG_(PTE_BASE + pte,
--               (I810Physical + I810ScratchPageLocal)
--               | PTE_MAIN_UNCACHED | PTE_VALID);
-+          I810TopOfMem += alloc.pg_count * 4096;
-+       }
-       }
-    }
--}
--
--/* Work out the real top of physical memory (not just what it says in
-- * /proc/meminfo).  Figure out the position and size of the
-- * preallocated (stolen) video ram segment.  For now, this is all the
-- * memory we will use.
-- */
--Bool I810CharacterizeSystemRam( pciConfigPtr pcr )
--{
--   pciTagRec tag = pcibusTag(pcr->_bus, pcr->_cardnum, pcr->_func);
--   unsigned long mb = 0;
--   unsigned long foo;
--   unsigned long whtcfg_pamr_drp;
--   unsigned long smram_miscc;
--   int i;
--
--   /* Need to do read longs, because read word returns rubbish...
--    */
--   whtcfg_pamr_drp = pciReadLong( tag, WHTCFG_PAMR_DRP );
--   smram_miscc = pciReadLong( tag, SMRAM_MISCC );
--
--   /* Need this for choosing watermarks.
-+   /* Dcache - half the speed of normal ram, so not really useful for
-+    * a 2d server.  Don't bother reporting its presence.  This is
-+    * mapped in addition to the requested amount of system ram.
-     */
--   if ((whtcfg_pamr_drp & LM_FREQ_MASK) == LM_FREQ_133)
--      I810LmFreqSel = 133;
--   else
--      I810LmFreqSel = 100;
--
--
--   if (I810AllocateGARTMemory() == 0) 
--      return TRUE;
--   else if (getenv("I810_UNSUPPORTED_GTT_FALLBACK"))
--      ErrorF("%s %s: No kernel GTT support detected - trying to fall back\n",
--           XCONFIG_PROBED, vga256InfoRec.name);
--   else
--      FatalError("Couldn't get memory from gart module,\n"
--               "and I810_UNSUPPORTED_GTT_FALLBACK not set.");
--
-+   alloc.pg_count = 1024;
-+   alloc.type = 1;
--   /* Fallback is useful for debugging, or if someone is unable to
--    * compile the kernel module (eg. a 1.2.x kernel, or a non-linux
--    * operating system).  However there are real drawbacks - there has
--    * been little thought given to synchronization between two X
--    * servers running on the same hardware, non-X users of the gart
--    * (eg svga, fbdev, ggi), and when direct-rendering 3d clients
--    * become available the same problems will arise there, too.
--    *
--    * Additionally, the X server is unable to allocate system memory,
--    * so must cram everything into whatever 'stolen' memory was
--    * reserved by the chipset at startup.  This is sneaky - the memory
--    * isn't guarenteed to be present, and is not guarenteed to be
--    * stable, either.
--    *
--    * Thus this should never be considered anything but a stopgap
--    * measure, or tool for special circumstances where a kernel module
--    * is unavailable.  
-+   /* Keep it 512K aligned for the sake of tiled regions.
-     */
--   if ((smram_miscc & GFX_MEM_WIN_SIZE) == GFX_MEM_WIN_32M) 
--      I810GttSize = 32;
--   else
--      I810GttSize = 64;
-+   I810TopOfMem += 0x7ffff;
-+   I810TopOfMem &= ~0x7ffff;
--   ErrorF("%s %s: GTT window size: %ld mb\n", 
--        XCONFIG_PROBED, vga256InfoRec.name, I810GttSize);
--   
--   for ( i = 0 ; i < 2 ; i++ ) {
--      char drp;
--      int row = 0;
--
--      switch (i) {
--      case 0: drp = whtcfg_pamr_drp >> SYS_DRAM_ROW_0_SHIFT; break;
--      case 1: drp = whtcfg_pamr_drp >> SYS_DRAM_ROW_1_SHIFT; break;
-+   if (ioctl(gartfd, AGPIOC_ALLOCATE, &alloc) != 0) {
-+      ErrorF("%s %s: GART: %d pages for DCACHE: %s\n", 
-+              XCONFIG_PROBED, vga256InfoRec.name, alloc.pg_count,
-+              sys_errlist[errno]);
-+   }
-+   else {
-+      bind.pg_start = I810TopOfMem / 4096;
-+      bind.key = alloc.key;
-+
-+      if (ioctl(gartfd, AGPIOC_BIND, &bind) != 0) {
-+       ErrorF("%s %s: GART: bind of %d pages for DCACHE: %s\n", 
-+              XCONFIG_PROBED, vga256InfoRec.name, alloc.pg_count,
-+              sys_errlist[errno]);
-+       ioctl(gartfd, AGPIOC_DEALLOCATE, &alloc);
-       }
--
--      switch (drp & DRAM_MASK) {
--      case 0x0: row = DRAM_VALUE_0; break;
--      case 0x1: row = DRAM_VALUE_1; break;
--       /* no 0x2 value defined  */
--      case 0x3: row = DRAM_VALUE_3; break;
--      case 0x4: row = DRAM_VALUE_4; break;
--      case 0x5: row = DRAM_VALUE_5; break;
--      case 0x6: row = DRAM_VALUE_6; break;
--      case 0x7: row = DRAM_VALUE_7; break;
--      case 0x8: row = DRAM_VALUE_8; break;
--      case 0x9: row = DRAM_VALUE_9; break;
--      case 0xa: row = DRAM_VALUE_A; break;
--      case 0xb: row = DRAM_VALUE_B; break;
--      case 0xc: row = DRAM_VALUE_C; break;
--      case 0xd: row = DRAM_VALUE_D; break;
--      case 0xe: row = DRAM_VALUE_E; break;
--      case 0xf: row = DRAM_VALUE_F; break;
--      default:
--       FatalError("%s %s: Unrecognized system dram row size\n",
--                  XCONFIG_PROBED, vga256InfoRec.name);
--       break;
-+      else {
-+       I810DcacheMem.Start = I810TopOfMem;
-+       I810DcacheMem.Size = alloc.pg_count * 4096;
-+       I810DcacheMem.End = I810DcacheMem.Start + I810DcacheMem.Size;
-+       I810TopOfMem = I810DcacheMem.End;
-       }
--
--      mb += row;
--
--      ErrorF("%s %s: System dram row %d, size %d mb\n", 
--           XCONFIG_PROBED, vga256InfoRec.name, i, row );
--   }
--
--   ErrorF("%s %s: Installed mainboard ram: %d mb\n", 
--        XCONFIG_PROBED, vga256InfoRec.name, mb);
--
--   mb *= 1024*1024;
--
--   /* Take into account memory reserved for TSEG, whatever that is.
--    */
--   switch (smram_miscc & USMM) {
--   case USMM_TSEG_512K: mb -= 512 * 1024; break;
--   case USMM_TSEG_1M: mb -= 1024 * 1024; break;
--   default: break;
--   }
--
--   switch (smram_miscc & GMS) {
--   case GMS_DISABLE: 
--      ErrorF("i810 is disabled\n");
--      return 0;
--   case GMS_ENABLE_BARE:
--      ErrorF("\nNo system ram reserved for i810, and no kernel GTT\n");
--      return 0;
--   case GMS_ENABLE_512K:
--      I810SysMem.End = 512 * 1024;
--      I810Physical = mb - 512 * 1024;
--      ErrorF("%s %s: Only 512k system ram available for i810\n",
--           XCONFIG_PROBED, vga256InfoRec.name);
--      break;
--   case GMS_ENABLE_1M:
--      I810SysMem.End = 1024 * 1024;
--      I810Physical = mb - 1024 * 1024;
--      ErrorF("%s %s: Only 1024k system ram available for i810\n",
--           XCONFIG_PROBED, vga256InfoRec.name);
--      break;
-    }
--   /* Reserve space for the GTT and scratch page.
--    */
--   I810SysMem.End -= I810GttSize * 1024;
--   I810GttPhysical = I810Physical + I810SysMem.End;
--   I810SysMem.End -= 4096;
--   I810ScratchPageLocal = I810SysMem.End;
--   I810SysMem.Size = I810SysMem.End - I810SysMem.Start;
--
--
--   /* Breifly map IO registers to virtual address space. */
--   I810MMIOBase = xf86MapVidMem(vga256InfoRec.scrnIndex, MMIO_REGION,
--                              (pointer)(I810MMIOAddr), 0x80000);
--
--   if (!I810MMIOBase) 
--      FatalError("Couldn't map MMIO region");
--
--   /* Dcache is too slow for normal use, but it's a way to get a
--    * fullsized framebuffer in the fallback mode.  
--    */
--   if ((INREG8(DRAM_ROW_TYPE) & DRAM_ROW_0) == DRAM_ROW_0_SDRAM)
--   {
--      ErrorF("%s %s: Detected 4MB dedicated video ram\n",
--           XCONFIG_PROBED, vga256InfoRec.name);
--
--      I810DcacheMem.Start = 0;
--      I810DcacheMem.End = 4 * 1024 * 1024;
--      I810DcacheMem.Size = I810DcacheMem.End;      
--      I810SysMem.Start += I810DcacheMem.Size;
--      I810SysMem.End += I810DcacheMem.Size;          
--      I810DisplayPtr = &I810DcacheMem;
-+   if (ioctl(gartfd, AGPIOC_RELEASE) != 0) {
-+      ErrorF("%s %s: error doing ioctl(AGPIOC_RELEASE): %s\n", 
-+           XCONFIG_PROBED, vga256InfoRec.name,
-+           sys_errlist[errno]);
-    }
--   vga256InfoRec.videoRam = (I810SysMem.End - I810DcacheMem.Start) / 1024;
--   I810GttType = gtt_Local;
-+   ErrorF("%s %s: GART: allocated %dK system ram\n",
-+        XCONFIG_PROBED, vga256InfoRec.name, pages * 4);
-    
--   I810SetupFallbackGTT();
-+   vga256InfoRec.videoRam = (pages * 4096) / 1024;
--   /* Unmap them again. */
--   xf86UnMapVidMem(vga256InfoRec.scrnIndex, MMIO_REGION,
--                 (pointer)(I810MMIOAddr), 0x80000);
-    return TRUE;
--}
--
--
--unsigned long I810LocalToPhysical( unsigned long local )
--{
--   switch (I810GttType) {
--   case gtt_Local:
--      if (I810DisplayPtr == &I810SysMem)
--       return I810Physical + local;
--      else
--       return I810Physical + local - 4 * 1024 * 1024;
--      break;
--   case gtt_Kernel:
--      gart_pg_inf.index = (local + 4095) / 4096;
--      if (ioctl(gartfd, GARTIOCPGINFO, &gart_pg_inf) != 0) {
--       ErrorF("%s %s: error doing ioctl(GARTIOCINFO, %x): %s\n", 
--              XCONFIG_PROBED, vga256InfoRec.name, gart_pg_inf.index,
--              sys_errlist[errno]);
--       return 0;
--      }
--      return gart_pg_inf.physical + (local & 4095);
--   default:
--      return 0;
--   }
- }
- int I810AllocLow( I810MemRange *result, I810MemRange *pool, int size )
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810_driver.c.810 Thu Nov 18 11:22:48 1999
-+++ XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810_driver.c     Wed Mar 15 08:36:05 2000
-@@ -126,6 +126,7 @@ int I810LinearAddr = 0;
- int I810MMIOAddr = 0;
- unsigned long I810CursorPhysical = 0;
-+unsigned long I810CursorStart = 0;
- int I810CursorOffset = 0;
- I810RingBuffer I810LpRing;
-@@ -196,13 +197,13 @@ vgaVideoChipRec I810 = {
-     (void (*)())NoopDDA,      /* I810SetWrite, */
-     (void (*)())NoopDDA,      /* I810SetReadWrite, */
--    0x10000,                  /* banked mode stuff */
--    0x10000,                  /*  */
--    16,                               /*  */
--    0xFFFF,                   /*  */
--    0x00000, 0x10000,         /*  */
--    0x00000, 0x10000,         /*  */
--    FALSE,                    /* banked mode stuff */
-+    0x10000,                  /* ChipMapSize */
-+    0x10000,                  /* ChipSegmentSize */
-+    16,                               /* ChipSegmentShift */
-+    0xFFFF,                   /* ChipSegmentMask */
-+    0x00000, 0x10000,         /* ChipReadBottom, ChipReadTop */
-+    0x00000, 0x10000,         /* ChipUse2Banks, ChipWriteTop */
-+    FALSE,                    /* ChipUse2Banks */
-     VGA_NO_DIVIDE_VERT,
-     {0,},
-     8,                                /* scanline padding - replace pitchadjust? */
-@@ -1304,7 +1305,7 @@ I810FbInit()
-    /* Allocate the framebuffer.
-     */
-    if (!I810AllocLow( &I810FrameBuffer, 
--                    I810DisplayPtr,
-+                    &I810SysMem,
-                     (vga256InfoRec.virtualY *
-                      vga256InfoRec.displayWidth *
-                      vgaBytesPerPixel) ))
-@@ -1318,26 +1319,15 @@ I810FbInit()
-    if (!OFLG_ISSET(OPTION_SW_CURSOR, &vga256InfoRec.options)) 
-    {
--      if (!I810AllocHigh( &I810Cursor, &I810SysMem, 4096 )) {
--       ErrorF("%s %s: %s: Warning: "
--              "Cannot allocate memory in framebuffer for cursor image\n",
--              (OFLG_ISSET(OPTION_HW_CURSOR, &vga256InfoRec.options) ?
--               XCONFIG_GIVEN : XCONFIG_PROBED),
--              vga256InfoRec.name,
--              vga256InfoRec.chipset);
--      }
--      else {
--       /* Translate to a physical system memory address - this is the
--        * only thing for which the hardware will not use the GTT...  
--        */
--       I810CursorPhysical = I810LocalToPhysical( I810Cursor.Start ); 
--
--       if (I810_DEBUG & DEBUG_VERBOSE_MEMORY)
--          fprintf(stderr, "cursor local %x phys %x\n", 
--                  I810Cursor.Start, I810CursorPhysical);
--
--       if (I810CursorPhysical) 
--          I810CursorInit(); 
-+      if (I810_DEBUG & DEBUG_VERBOSE_MEMORY)
-+       fprintf(stderr, "cursor local %x phys %x\n", 
-+               I810CursorStart, I810CursorPhysical);
-+
-+      if (I810CursorPhysical)  {
-+       I810Cursor.Start = I810CursorStart;
-+       I810Cursor.Size = 4096;
-+       I810Cursor.End = I810Cursor.Start + I810Cursor.Size;
-+       I810CursorInit(); 
-       }
-    }
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810.h.810        Thu Nov 18 11:22:47 1999
-+++ XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810.h    Tue Mar 14 23:08:19 2000
-@@ -47,6 +47,7 @@ extern Bool           I810CharacterizeSy
- /* Globals */
- extern unsigned char *I810MMIOBase;
- extern unsigned long  I810CursorPhysical;
-+extern unsigned long  I810CursorStart;
- extern int            I810CursorOffset;
- extern int            I810Chipset;
-@@ -61,8 +62,6 @@ typedef struct {
- extern int I810AllocHigh( I810MemRange *result, I810MemRange *pool, int size );
- extern int I810AllocLow( I810MemRange *result, I810MemRange *pool, int size );
--extern unsigned long I810LocalToPhysical( unsigned long local );
--
- /* 
-  */
- typedef struct {
-@@ -80,7 +79,7 @@ extern I810RingBuffer I810LpRing;
- extern int I810FrameBufferLocked;
- extern int I810LmFreqSel;
--extern I810MemRange I810SysMem, I810DcacheMem, *I810DisplayPtr;
-+extern I810MemRange I810SysMem, I810DcacheMem;
- extern I810MemRange I810Mprotect;
- extern I810MemRange I810Cursor;
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810_wmark.c.810  Thu Nov 18 11:22:48 1999
-+++ XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810_wmark.c      Tue Mar 14 23:08:19 2000
-@@ -320,19 +320,5 @@ unsigned int I810CalcWatermark( double f
-    ErrorF("%s %s: chose watermark 0x%x: (tab.freq %.1f)\n",
-         XCONFIG_PROBED, vga256InfoRec.name, tab[i].wm, tab[i].freq);
--   /* None of these values (sourced from intel) have watermarks for
--    * the dcache memory.  Fake it for now by using the same watermark
--    * for both...  
--    *
--    * Update: this is probably because dcache isn't real useful as
--    * framebuffer memory, so intel's drivers don't need watermarks
--    * for that memory because they never use it to feed the ramdacs.
--    * We do use it in the fallback mode, so keep the watermarks for
--    * now.
--    */
--   if (I810DisplayPtr == &I810DcacheMem)
--      return (tab[i].wm & ~0xffffff) | ((tab[i].wm>>12) & 0xfff);
--   else
--      return tab[i].wm;
-+   return tab[i].wm;
- }
--
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810_accel.c.810  Thu Nov 18 11:22:48 1999
-+++ XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/vga256/drivers/i810/i810_accel.c      Tue Mar 14 23:08:19 2000
-@@ -257,7 +257,7 @@ I810AccelInit() 
-     if (pix_cache.Size > I810SysMem.Size)
-        pix_cache.Size = I810SysMem.Size;
-     
--    if (I810AllocLow( &pix_cache, I810DisplayPtr, pix_cache.Size ))
-+    if (I810AllocLow( &pix_cache, &I810SysMem, pix_cache.Size ))
-     {
-        xf86AccelInfoRec.PixmapCacheMemoryStart = pix_cache.Start;
-        xf86AccelInfoRec.PixmapCacheMemoryEnd = pix_cache.End;
---- XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/xf86config/Cards.810  Tue Mar 14 23:08:19 2000
-+++ XFree86-3.3.6/xc/programs/Xserver/hw/xfree86/xf86config/Cards      Tue Mar 14 23:08:19 2000
-@@ -3093,6 +3093,11 @@ SEE Intel 740 (generic)
- NAME Winfast S900 i740 AGP 8MB
- SEE Intel 740 (generic)
-+NAME Intel 810
-+CHIPSET Intel 810
-+SERVER SVGA
-+NOCLOCKPROBE
-+
- NAME Voodoo Banshee (generic)
- CHIPSET Voodoo Banshee
- SERVER SVGA
diff --git a/XFree86-Servers-parallelmake.patch b/XFree86-Servers-parallelmake.patch
deleted file mode 100644 (file)
index 5c9606b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
---- XFree86-3.3.6/xc/programs/Xserver/Imakefile.parallel       Thu Jan 20 12:52:48 2000
-+++ XFree86-3.3.6/xc/programs/Xserver/Imakefile        Thu Jan 20 12:59:14 2000
-@@ -803,6 +803,10 @@ XF86S3SYSLIBS = $(SYSLIBS)
- #if HasParallelMake
- MakeMutex($(XF86S3SUBDIRS) $(XF86S3OBJS) $(XF86S3LIBS) $(XF86S3SYSLIBS))
- #endif
-+#if HasGnuMake
-+$(XF86S3OBJS) $(XF86S3LIBS) $(XF86S3SYSLIBS):: $(XF86S3SUBDIRS)
-+      @if [ -f $@ ]; then touch $@; fi
-+#endif
- SetUIDServerTarget(XF86_S3,$(XF86S3SUBDIRS),$(XF86S3OBJS),$(XF86S3LIBS),$(XF86S3SYSLIBS))
- #ifndef ServerToInstall
- #define ServerToInstall XF86_S3
-@@ -1802,6 +1806,10 @@ CFB16DIR = cfb16
- CFB32DIR = cfb32
- #if HasParallelMake
- MakeMutex($(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DEPDIRS))
-+#endif
-+#if HasGnuMake
-+$(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DEPDIRS):: $(STDDIRS)
-+      @if [ -f $@ ]; then touch $@; fi
- #endif
- Xnon: $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DEPDIRS)
- #endif /* XnonServer */
---- XFree86-3.3.6/xc/Makefile.parallel Wed Jun 23 23:00:33 1999
-+++ XFree86-3.3.6/xc/Makefile  Thu Jan 20 08:58:18 2000
-@@ -88,7 +88,7 @@ $(DEPENDSRC)/Makefile.proto: imake.proto
- depend.bootstrap: $(DEPENDSRC)/Makefile.proto
-       cd $(DEPENDSRC) && $(RM) -r Makefile Makefile.dep makedepend *.o bootstrap
--      cd $(DEPENDSRC) && $(MAKE) -f Makefile.proto bootstrap
-+      cd $(DEPENDSRC) && $(MAKE) -f Makefile.proto makedepend
- $(IMAKESRC)/Makefile.proto: depend.bootstrap
-       $(IMAKE_CMD) -s $(IMAKESRC)/Makefile.proto -f $(IMAKESRC)/Imakefile -DTOPDIR=$(IMAKETOP) -DCURDIR=$(IMAKESRC)
diff --git a/XFree86-Servers-ragemobility.patch b/XFree86-Servers-ragemobility.patch
deleted file mode 100644 (file)
index 515529f..0000000
+++ /dev/null
@@ -1,705 +0,0 @@
-diff -cENRr -x CVS -x test base/xc/programs/Xserver/hw/xfree86/accel/mach64/ativga.c devel/xc/programs/Xserver/hw/xfree86/accel/mach64/ativga.c
-*** base/xc/programs/Xserver/hw/xfree86/accel/mach64/ativga.c  Wed Feb  9 20:05:48 2000
---- devel/xc/programs/Xserver/hw/xfree86/accel/mach64/ativga.c Fri Feb  4 09:13:42 2000
-***************
-*** 1,4 ****
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/ativga.c,v 3.7.2.1 1998/10/18 20:42:04 hohndel Exp $ */
-  /***************************************************************************
-   * Start of VGA font saving and restoration code.
-   * Created: Sun Jun 27 12:50:09 1993 by faith@cs.unc.edu
---- 1,4 ----
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/ativga.c,v 3.7.2.1tsi Exp $ */
-  /***************************************************************************
-   * Start of VGA font saving and restoration code.
-   * Created: Sun Jun 27 12:50:09 1993 by faith@cs.unc.edu
-***************
-*** 55,60 ****
---- 55,61 ----
-  
-  typedef struct {
-     vgaHWRec std;
-+    unsigned char shadow_crtc[25];
-     unsigned char ATIExtRegBank[11]; /* ATI Registers B0,B1,B2,B3,
-                                      B5, B6,B8,B9, BE,A6,A7 */
-  } SaveBlock;
-***************
-*** 104,111 ****
---- 105,114 ----
-  void mach64SaveVGAInfo(screen_idx)
-       int screen_idx;
-  {
-+    unsigned long saved_lcd_gen_ctrl = 0, lcd_gen_ctrl = 0;
-     unsigned char b2_save;
-     unsigned char b8_save;
-+    int i;
-  
-     if (!vgaBase) {
-        vgaBase = xf86MapVidMem(screen_idx, VGA_REGION, (pointer)0xa0000,
-***************
-*** 114,123 ****
-  
-     vgaIOBase = (inb(0x3cc) & 0x01) ? 0x3D0 : 0x3B0;
-     
--    /* This part is copied from ATISave() in
--     * xf86/vga256/drivers/ati/driver.c
--     */
-- 
-     if (!mach64IntegratedController) {
-       /* Unlock ATI specials */
-       outw(ATIExtReg, (((b8_save = inATI(0xb8)) & 0xC0) << 8) | 0xb8);
---- 117,122 ----
-***************
-*** 126,132 ****
---- 125,172 ----
-       outw(ATIExtReg, 0x00b2);        /* segment select 0 */
-     }
-  
-+    if (mach64LCDPanelID >= 0) {
-+       if (mach64ChipType == MACH64_LG_ID) {
-+       saved_lcd_gen_ctrl = regr(LCD_GEN_CTRL);
-+       lcd_gen_ctrl = saved_lcd_gen_ctrl &
-+          ~(CRTC_RW_SELECT | SHADOW_EN | SHADOW_RW_EN);
-+       regw(LCD_GEN_CTRL, lcd_gen_ctrl);
-+       } else {
-+       outb(ioLCD_INDEX, LCD_GEN_CNTL);
-+       saved_lcd_gen_ctrl = inl(ioLCD_DATA);
-+       lcd_gen_ctrl = saved_lcd_gen_ctrl &
-+          ~(CRTC_RW_SELECT | SHADOW_EN | SHADOW_RW_EN);
-+       outl(ioLCD_DATA, lcd_gen_ctrl);
-+       }
-+    }
-+ 
-     vgaNewVideoState = vgaHWSave(vgaNewVideoState, sizeof(SaveBlock));
-+    /* Unlock VGA CRTC */
-+    outw(vgaIOBase + 4, ((save->std.CRTC[17] & 0x7F) << 8) | 17);
-+ 
-+    if (mach64LCDPanelID >= 0) {
-+       lcd_gen_ctrl |= SHADOW_EN | SHADOW_RW_EN;
-+       if (mach64ChipType == MACH64_LG_ID) {
-+       regw(LCD_GEN_CTRL, lcd_gen_ctrl);
-+       } else {
-+       outb(ioLCD_INDEX, LCD_GEN_CNTL);
-+       outl(ioLCD_DATA, lcd_gen_ctrl);
-+       }
-+ 
-+       for (i=0; i<25; i++) {
-+       outb(vgaIOBase + 4, i);
-+       save->shadow_crtc[i] = inb(vgaIOBase + 5);
-+       }
-+       /* Unlock shadow VGA CRTC */
-+       outw(vgaIOBase + 4, ((save->shadow_crtc[17] & 0x7F) << 8) | 17);
-+ 
-+       if (mach64ChipType == MACH64_LG_ID) {
-+       regw(LCD_GEN_CTRL, saved_lcd_gen_ctrl);
-+       } else {
-+       outb(ioLCD_INDEX, LCD_GEN_CNTL);
-+       outl(ioLCD_DATA, saved_lcd_gen_ctrl);
-+       }
-+    }
-  
-     if (!mach64IntegratedController) {
-       save->ATIReg0  = inATI(0xb0);
-***************
-*** 155,163 ****
-  
-  void mach64RestoreVGAInfo()
-  {
-!    /* This routine is mostly from ATIRestore() in
-!     * xf86/vga256/drivers/ati/driver.c
-!     */
-  
-     if (!mach64IntegratedController) {
-       /* Unlock ATI specials */
---- 195,202 ----
-  
-  void mach64RestoreVGAInfo()
-  {
-!    unsigned long saved_lcd_gen_ctrl = 0, lcd_gen_ctrl = 0;
-!    int i;
-  
-     if (!mach64IntegratedController) {
-       /* Unlock ATI specials */
-***************
-*** 182,191 ****
---- 221,265 ----
-       outw(ATIExtReg, (save->ATIReg8 << 8) | 0xb8);
-     }
-  
-+    if (mach64LCDPanelID >= 0) {
-+       if (mach64ChipType == MACH64_LG_ID) {
-+       saved_lcd_gen_ctrl = regr(LCD_GEN_CTRL);
-+       lcd_gen_ctrl = saved_lcd_gen_ctrl &
-+          ~(CRTC_RW_SELECT | SHADOW_EN | SHADOW_RW_EN);
-+       regw(LCD_GEN_CTRL, lcd_gen_ctrl);
-+       } else {
-+       outb(ioLCD_INDEX, LCD_GEN_CNTL);
-+       saved_lcd_gen_ctrl = inl(ioLCD_DATA);
-+       lcd_gen_ctrl = saved_lcd_gen_ctrl &
-+          ~(CRTC_RW_SELECT | SHADOW_EN | SHADOW_RW_EN);
-+       outl(ioLCD_DATA, lcd_gen_ctrl);
-+       }
-+    }
-+ 
-     /*
-      * Restore the generic vga registers
-      */
-     vgaHWRestore((vgaHWPtr)save);
-+ 
-+    if (mach64LCDPanelID >= 0) {
-+       lcd_gen_ctrl |= SHADOW_EN | SHADOW_RW_EN;
-+       if (mach64ChipType == MACH64_LG_ID) {
-+       regw(LCD_GEN_CTRL, lcd_gen_ctrl);
-+       } else {
-+       outb(ioLCD_INDEX, LCD_GEN_CNTL);
-+       outl(ioLCD_DATA, lcd_gen_ctrl);
-+       }
-+ 
-+       outw(vgaIOBase + 4, ((save->shadow_crtc[17] & 0x7F) << 8) | 17);
-+       for (i=0; i<25; i++) outw(vgaIOBase + 4, (save->shadow_crtc[i] << 8) | i);
-+ 
-+       if (mach64ChipType == MACH64_LG_ID) {
-+       regw(LCD_GEN_CTRL, saved_lcd_gen_ctrl);
-+       } else {
-+       outb(ioLCD_INDEX, LCD_GEN_CNTL);
-+       outl(ioLCD_DATA, saved_lcd_gen_ctrl);
-+       }
-+    }
-  }
-  
-  /*
-diff -cENRr -x CVS -x test base/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.c devel/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.c
-*** base/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.c  Wed Feb  9 20:05:49 2000
---- devel/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.c Mon Feb 14 09:27:30 2000
-***************
-*** 1,4 ****
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.c,v 3.62.2.20 1999/10/12 17:18:42 hohndel Exp $ */
-  /*
-   * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
-   * Copyright 1993,1994,1995,1996,1997 by Kevin E. Martin, Chapel Hill, North Carolina.
---- 1,4 ----
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.c,v 3.62.2.20tsi Exp $ */
-  /*
-   * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
-   * Copyright 1993,1994,1995,1996,1997 by Kevin E. Martin, Chapel Hill, North Carolina.
-***************
-*** 417,422 ****
---- 417,423 ----
-  int  mach64MemClk;
-  int  mach64DRAMMemClk;
-  int  mach64VRAMMemClk;
-+ int  mach64XCLK;
-  int  mach64MemCycle;
-  Bool mach64IntegratedController;
-  Bool mach64HasDSP;
-***************
-*** 1540,1545 ****
---- 1541,1565 ----
-       mach64CXClk = 7;  /* Use IBM RGB514 PLL */
-      else
-       mach64CXClk = info->CXClk;
-+     if (mach64HasDSP) {
-+      /* Calculate XCLK */
-+      outb(ioCLOCK_CNTL + 1, MCLK_FB_DIV << 2);
-+      mach64XCLK =
-+          inb(ioCLOCK_CNTL + 2) * 4 * mach64RefFreq / mach64RefDivider;
-+      outb(ioCLOCK_CNTL + 1, PLL_XCLK_CNTL << 2);
-+      i = inb(ioCLOCK_CNTL + 2);
-+      if (!(i & MFB_TIMES_4_2))
-+          mach64XCLK >>= 1;
-+      i = i & XCLK_SRC_SEL;
-+      switch (i) {
-+      case 0:                                       break;
-+      case 1:  case 2:  case 3:  mach64XCLK >>= i;  break;
-+      case 4:                    mach64XCLK /= 3;   break;
-+      default:
-+          ErrorF("Unsupported XCLK source:  %d!\n", i);
-+          return FALSE;
-+      }
-+     }
-  
-  #ifdef DEBUG
-      ErrorF("MinFreq = %d, MaxFreq = %d, RefFreq = %d, RefDivider = %d\n",
-***************
-*** 1561,1567 ****
-  
-       mach64LCDHorizontal = info->LCDHorizontal;
-       mach64LCDVertical = info->LCDVertical;
-!      mach64LCDClock = mach64GetCTClock(0);
-       ErrorF("%s %s: %dx%d panel (ID %d) detected;  clock %.2f MHz\n",
-               XCONFIG_PROBED, mach64InfoRec.name,
-               mach64LCDHorizontal, mach64LCDVertical, mach64LCDPanelID,
---- 1581,1587 ----
-  
-       mach64LCDHorizontal = info->LCDHorizontal;
-       mach64LCDVertical = info->LCDVertical;
-!      mach64LCDClock = mach64GetCTClock((inb(0x3cc) >> 2) & 3);
-       ErrorF("%s %s: %dx%d panel (ID %d) detected;  clock %.2f MHz\n",
-               XCONFIG_PROBED, mach64InfoRec.name,
-               mach64LCDHorizontal, mach64LCDVertical, mach64LCDPanelID,
-diff -cENRr -x CVS -x test base/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.h devel/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.h
-*** base/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.h  Wed Feb  9 20:05:49 2000
---- devel/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.h Mon Feb 14 08:52:16 2000
-***************
-*** 1,4 ****
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.h,v 3.14.2.6 1999/07/23 13:22:36 hohndel Exp $ */
-  /*
-   * Copyright 1992,1993,1994,1995,1996,1997 by Kevin E. Martin, Chapel Hill, North Carolina.
-   *
---- 1,4 ----
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/mach64.h,v 3.14.2.6tsi Exp $ */
-  /*
-   * Copyright 1992,1993,1994,1995,1996,1997 by Kevin E. Martin, Chapel Hill, North Carolina.
-   *
-***************
-*** 29,35 ****
-  #ifndef MACH64_H
-  #define MACH64_H
-  
-! #define MACH64_PATCHLEVEL "0"
-  
-  #define MACH64_CURSBYTES     1024
-  #define MACH64_CURSMAX               64
---- 29,35 ----
-  #ifndef MACH64_H
-  #define MACH64_H
-  
-! #define MACH64_PATCHLEVEL "1"
-  
-  #define MACH64_CURSBYTES     1024
-  #define MACH64_CURSMAX               64
-***************
-*** 85,90 ****
---- 85,91 ----
-  extern int mach64MemClk;
-  extern int mach64DRAMMemClk;
-  extern int mach64VRAMMemClk;
-+ extern int mach64XCLK;
-  extern int mach64MemCycle;
-  
-  extern int mach64LCDPanelID;
-diff -cENRr -x CVS -x test base/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64init.c devel/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64init.c
-*** base/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64init.c      Wed Feb  9 20:05:53 2000
---- devel/xc/programs/Xserver/hw/xfree86/accel/mach64/mach64init.c     Mon Feb 14 09:25:05 2000
-***************
-*** 1,4 ****
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/mach64init.c,v 3.24.2.11 1999/10/12 17:18:43 hohndel Exp $ */
-  /*
-   * Written by Jake Richter
-   * Copyright (c) 1989, 1990 Panacea Inc., Londonderry, NH - All Rights Reserved
---- 1,4 ----
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/mach64init.c,v 3.24.2.11tsi Exp $ */
-  /*
-   * Written by Jake Richter
-   * Copyright (c) 1989, 1990 Panacea Inc., Londonderry, NH - All Rights Reserved
-***************
-*** 1120,1126 ****
-      default:                   bpp =  4; break;
-      }
-  
-!     x = ((double)mach64VRAMMemClk * 64.0) / (current_dot_clock * (double)bpp);
-      if (mach64LCDPanelID >= 0)       /* Compensate for horizontal stretching */
-       x *= (double)mach64LCDHorizontal / (double)current_hdisplay;
-      bx = ceil(log(floor(x))/log(2));
---- 1120,1126 ----
-      default:                   bpp =  4; break;
-      }
-  
-!     x = ((double)mach64XCLK * 64.0) / (current_dot_clock * (double)bpp);
-      if (mach64LCDPanelID >= 0)       /* Compensate for horizontal stretching */
-       x *= (double)mach64LCDHorizontal / (double)current_hdisplay;
-      bx = ceil(log(floor(x))/log(2));
-***************
-*** 1275,1281 ****
-      ErrorF("dsp_on  = %d, ron  = %d, rloop = %d\n", dsp_on, ron, rloop);
-      ErrorF("dsp_off = %d, roff = %d\n", dsp_off, roff);
-      ErrorF("dsp_xclks_per_qw = %d\n", dsp_xclks_per_qw);
-!     ErrorF("mach64VRAMMemClk = %d, ", mach64VRAMMemClk);
-      ErrorF("dot_clock = %.3lf, ", current_dot_clock);
-      ErrorF("bpp = %d\n", bpp);
-      ErrorF("trp = %d, ", trp);
---- 1275,1281 ----
-      ErrorF("dsp_on  = %d, ron  = %d, rloop = %d\n", dsp_on, ron, rloop);
-      ErrorF("dsp_off = %d, roff = %d\n", dsp_off, roff);
-      ErrorF("dsp_xclks_per_qw = %d\n", dsp_xclks_per_qw);
-!     ErrorF("mach64XCLK = %d, ", mach64XCLK);
-      ErrorF("dot_clock = %.3lf, ", current_dot_clock);
-      ErrorF("bpp = %d\n", bpp);
-      ErrorF("trp = %d, ", trp);
-***************
-*** 2899,2906 ****
-               outl(ioLCD_DATA, old_POWER_MANAGEMENT);
-               if ((mach64ChipType != MACH64_LB_ID) &&
-                   (mach64ChipType != MACH64_LD_ID) &&
-!                  (mach64ChipType != MACH64_LR_ID) &&
-!                  (mach64ChipType != MACH64_LS_ID)) {
-                   outb(ioLCD_INDEX, LCD_POWER_MANAGEMENT_2);
-                   outl(ioLCD_DATA, old_POWER_MANAGEMENT_2);
-               }
---- 2899,2906 ----
-               outl(ioLCD_DATA, old_POWER_MANAGEMENT);
-               if ((mach64ChipType != MACH64_LB_ID) &&
-                   (mach64ChipType != MACH64_LD_ID) &&
-!                  (mach64ChipType != MACH64_LI_ID) &&
-!                  (mach64ChipType != MACH64_LP_ID)) {
-                   outb(ioLCD_INDEX, LCD_POWER_MANAGEMENT_2);
-                   outl(ioLCD_DATA, old_POWER_MANAGEMENT_2);
-               }
-diff -cENRr -x CVS -x test base/xc/programs/Xserver/hw/xfree86/accel/mach64/regmach64.h devel/xc/programs/Xserver/hw/xfree86/accel/mach64/regmach64.h
-*** base/xc/programs/Xserver/hw/xfree86/accel/mach64/regmach64.h       Wed Feb  9 20:05:54 2000
---- devel/xc/programs/Xserver/hw/xfree86/accel/mach64/regmach64.h      Mon Feb 14 09:16:35 2000
-***************
-*** 1,4 ****
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/regmach64.h,v 3.15.2.8 1999/10/12 17:18:44 hohndel Exp $ */
-  /*
-   * Copyright 1992,1993,1994,1995,1996,1997 by Kevin E. Martin, Chapel Hill, North Carolina.
-   *
---- 1,4 ----
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/accel/mach64/regmach64.h,v 3.15.2.8tsi Exp $ */
-  /*
-   * Copyright 1992,1993,1994,1995,1996,1997 by Kevin E. Martin, Chapel Hill, North Carolina.
-   *
-***************
-*** 353,358 ****
---- 353,360 ----
-  #define VCLK1_POST           0x0C
-  #define VCLK2_POST           0x30
-  #define VCLK3_POST           0xC0
-+ #define XCLK_SRC_SEL         0x07
-+ #define MFB_TIMES_4_2                0x08
-  
-  /* LCD_INDEX register mapping */
-  #define LCD_REG_INDEX                0x0000000f
-diff -cENRr -x CVS -x test base/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticlock.c devel/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticlock.c
-*** base/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticlock.c  Wed Feb  9 20:09:29 2000
---- devel/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticlock.c Wed Feb  2 09:56:02 2000
-***************
-*** 1,4 ****
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticlock.c,v 1.1.2.3 1999/10/12 17:18:52 hohndel Exp $ */
-  /*
-   * Copyright 1997 through 1999 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
-   *
---- 1,4 ----
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticlock.c,v 1.1.2.3tsi Exp $ */
-  /*
-   * Copyright 1997 through 1999 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
-   *
-***************
-*** 534,539 ****
---- 534,544 ----
-      for (;  Clock_Line[++Clock_Chip_Index];  )
-      {
-          int Maximum_Gap = 0, Clock_Count = 0, Clock_Index = 0;
-+ 
-+         /* Only Mach64's and Rage128's can have programmable clocks */
-+         if ((Clock_Chip_Index >= ATI_CLOCK_MACH64A) &&
-+             (ATIAdapter < ATI_ADAPTER_MACH64))
-+             break;
-  
-          for (;  Clock_Index < Number_Of_Clocks;  Clock_Index++)
-          {
-diff -cENRr -x CVS -x test base/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticonsole.c devel/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticonsole.c
-*** base/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticonsole.c        Wed Feb  9 20:09:29 2000
---- devel/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticonsole.c       Wed Feb  2 19:20:42 2000
-***************
-*** 1,4 ****
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticonsole.c,v 1.1.2.2 1999/10/12 17:18:52 hohndel Exp $ */
-  /*
-   * Copyright 1997 through 1999 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
-   *
---- 1,4 ----
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/aticonsole.c,v 1.1.2.2tsi Exp $ */
-  /*
-   * Copyright 1997 through 1999 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
-   *
-***************
-*** 54,60 ****
-          saved_crtc_int_cntl, saved_lcd_index;
-  
-      static Bool entered = LEAVE;
-!     CARD32 tmp;
-  
-  #   ifdef XFreeXDGA
-          if ((enter == LEAVE) && !ATIUsing1bppModes &&
---- 54,60 ----
-          saved_crtc_int_cntl, saved_lcd_index;
-  
-      static Bool entered = LEAVE;
-!     CARD32 tmp, lcd_gen_ctrl = 0, saved_lcd_gen_ctrl = 0;
-  
-  #   ifdef XFreeXDGA
-          if ((enter == LEAVE) && !ATIUsing1bppModes &&
-***************
-*** 139,149 ****
-              outl(ATIIOPortCRTC_GEN_CNTL, tmp | CRTC_EN);
-              outl(ATIIOPortCRTC_GEN_CNTL, tmp);
-              outl(ATIIOPortCRTC_GEN_CNTL, tmp | CRTC_EN);
-!             if (ATIChip >= ATI_CHIP_264XL)
-              {
-                  saved_lcd_index = inl(ATIIOPortLCD_INDEX);
-!                 outl(ATIIOPortLCD_INDEX,
-!                     saved_lcd_index & ~(LCD_MONDET_INT_EN | LCD_MONDET_INT));
-              }
-  
-              /* Ensure VGA aperture is enabled */
---- 139,150 ----
-              outl(ATIIOPortCRTC_GEN_CNTL, tmp | CRTC_EN);
-              outl(ATIIOPortCRTC_GEN_CNTL, tmp);
-              outl(ATIIOPortCRTC_GEN_CNTL, tmp | CRTC_EN);
-!             if (ATILCDPanelID >= 0)
-              {
-                  saved_lcd_index = inl(ATIIOPortLCD_INDEX);
-!                 if (ATIChip >= ATI_CHIP_264XL)
-!                     outl(ATIIOPortLCD_INDEX, saved_lcd_index &
-!                         ~(LCD_MONDET_INT_EN | LCD_MONDET_INT));
-              }
-  
-              /* Ensure VGA aperture is enabled */
-***************
-*** 191,196 ****
---- 192,222 ----
-                  }
-              }
-  
-+             if (ATILCDPanelID >= 0)
-+             {
-+                 if (ATIChip == ATI_CHIP_264LT)
-+                 {
-+                     saved_lcd_gen_ctrl = inl(ATIIOPortLCD_GEN_CTRL);
-+ 
-+                     /* Setup to unlock non-shadow registers */
-+                     lcd_gen_ctrl = saved_lcd_gen_ctrl &
-+                         ~(CRTC_RW_SELECT | SHADOW_EN | SHADOW_RW_EN);
-+                     outl(ATIIOPortLCD_GEN_CTRL, lcd_gen_ctrl);
-+                 }
-+                 else /* if ((ATIChip == ATI_CHIP_264LTPRO) ||
-+                             (ATIChip == ATI_CHIP_264XL) ||
-+                             (ATIChip == ATI_CHIP_MOBILITY)) */
-+                 {
-+                     saved_lcd_gen_ctrl = ATIGetLTProLCDReg(LCD_GEN_CNTL);
-+ 
-+                     /* Setup to unlock shadow registers */
-+                     lcd_gen_ctrl = saved_lcd_gen_ctrl &
-+                         ~(CRTC_RW_SELECT | SHADOW_EN | SHADOW_RW_EN);
-+                     ATIPutLTProLCDReg(LCD_GEN_CNTL, lcd_gen_ctrl);
-+                 }
-+             }
-+ 
-+         UnlockShadowVGA:
-              ATISetVGAIOBase(inb(R_GENMO));
-  
-              /*
-***************
-*** 241,258 ****
---- 267,371 ----
-                      VSyncEnd = VBlankEnd - 1;
-                  PutReg(CRTX(vgaIOBase), 0x11U, (VSyncEnd & 0x0FU) | 0x20U);
-              }
-+ 
-+             if (ATILCDPanelID >= 0)
-+             {
-+                 Bool DoShadow = TRUE;
-+ 
-+                 lcd_gen_ctrl ^= (SHADOW_EN | SHADOW_RW_EN);
-+                 if (!(lcd_gen_ctrl & (SHADOW_EN | SHADOW_RW_EN)))
-+                 {
-+                     DoShadow = FALSE;
-+                     lcd_gen_ctrl = saved_lcd_gen_ctrl;
-+                 }
-+ 
-+                 /*
-+                  * Setup to unlock shadow registers or restore previous
-+                  * selection.
-+                  */
-+                 if (ATIChip == ATI_CHIP_264LT)
-+                     outl(ATIIOPortLCD_GEN_CTRL, lcd_gen_ctrl);
-+                 else /* if ((ATIChip == ATI_CHIP_264LTPRO) ||
-+                             (ATIChip == ATI_CHIP_264XL) ||
-+                             (ATIChip == ATI_CHIP_MOBILITY)) */
-+                 {
-+                     ATIPutLTProLCDReg(LCD_GEN_CNTL, lcd_gen_ctrl);
-+ 
-+                     /* Restore LCD index */
-+                     outb(ATIIOPortLCD_INDEX, GetByte(saved_lcd_index, 0));
-+                 }
-+ 
-+                 if (DoShadow)
-+                     goto UnlockShadowVGA;       /* Unlock shadow registers */
-+             }
-          }
-      }
-      else
-      {
-          if (ATIVGAAdapter != ATI_ADAPTER_NONE)
-          {
-+             if (ATILCDPanelID >= 0)
-+             {
-+                 if (ATIChip == ATI_CHIP_264LT)
-+                 {
-+                     saved_lcd_gen_ctrl = inl(ATIIOPortLCD_GEN_CTRL);
-+ 
-+                     /* Setup to lock non-shadow registers */
-+                     lcd_gen_ctrl = saved_lcd_gen_ctrl &
-+                         ~(CRTC_RW_SELECT | SHADOW_EN | SHADOW_RW_EN);
-+                     outl(ATIIOPortLCD_GEN_CTRL, lcd_gen_ctrl);
-+                 }
-+                 else /* if ((ATIChip == ATI_CHIP_264LTPRO) ||
-+                             (ATIChip == ATI_CHIP_264XL) ||
-+                             (ATIChip == ATI_CHIP_MOBILITY)) */
-+                 {
-+                     saved_lcd_gen_ctrl = ATIGetLTProLCDReg(LCD_GEN_CNTL);
-+ 
-+                     /* Setup to lock shadow registers */
-+                     lcd_gen_ctrl = saved_lcd_gen_ctrl &
-+                         ~(CRTC_RW_SELECT | SHADOW_EN | SHADOW_RW_EN);
-+                     ATIPutLTProLCDReg(LCD_GEN_CNTL, lcd_gen_ctrl);
-+                 }
-+             }
-+ 
-+         LockShadowVGA:
-              ATISetVGAIOBase(inb(R_GENMO));
-  
-              /* Protect CRTC[0-7] */
-              tmp = GetReg(CRTX(vgaIOBase), 0x11U);
-              outb(CRTD(vgaIOBase), tmp | 0x80U);
-  
-+             if (ATILCDPanelID >= 0)
-+             {
-+                 Bool DoShadow = TRUE;
-+ 
-+                 lcd_gen_ctrl ^= (SHADOW_EN | SHADOW_RW_EN);
-+                 if (!(lcd_gen_ctrl & (SHADOW_EN | SHADOW_RW_EN)))
-+                 {
-+                     DoShadow = FALSE;
-+                     lcd_gen_ctrl = saved_lcd_gen_ctrl;
-+                 }
-+ 
-+                 /*
-+                  * Setup to lock shadow registers or restore previous
-+                  * selection.
-+                  */
-+                 if (ATIChip == ATI_CHIP_264LT)
-+                     outl(ATIIOPortLCD_GEN_CTRL, lcd_gen_ctrl);
-+                 else /* if ((ATIChip == ATI_CHIP_264LTPRO) ||
-+                             (ATIChip == ATI_CHIP_264XL) ||
-+                             (ATIChip == ATI_CHIP_MOBILITY)) */
-+                 {
-+                     ATIPutLTProLCDReg(LCD_GEN_CNTL, lcd_gen_ctrl);
-+ 
-+                     /* Restore LCD index */
-+                     outb(ATIIOPortLCD_INDEX, GetByte(saved_lcd_index, 0));
-+                 }
-+ 
-+                 if (DoShadow)
-+                     goto LockShadowVGA;       /* Lock shadow registers */
-+             }
-+ 
-              if (ATIChipHasVGAWonder)
-              {
-                  /*
-***************
-*** 315,321 ****
-              outl(ATIIOPortDAC_CNTL, saved_dac_cntl);
-              if (ATIChip < ATI_CHIP_264CT)
-                  outl(ATIIOPortMEM_INFO, saved_mem_info);
-!             else if (ATIChip >= ATI_CHIP_264XL)
-                  outl(ATIIOPortLCD_INDEX, saved_lcd_index);
-          }
-  
---- 428,434 ----
-              outl(ATIIOPortDAC_CNTL, saved_dac_cntl);
-              if (ATIChip < ATI_CHIP_264CT)
-                  outl(ATIIOPortMEM_INFO, saved_mem_info);
-!             else if (ATILCDPanelID >= 0)
-                  outl(ATIIOPortLCD_INDEX, saved_lcd_index);
-          }
-  
-diff -cENRr -x CVS -x test base/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprobe.c devel/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprobe.c
-*** base/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprobe.c  Wed Feb  9 20:09:32 2000
---- devel/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprobe.c Tue Feb  1 10:27:18 2000
-***************
-*** 1,4 ****
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprobe.c,v 1.1.2.8 1999/10/13 14:32:32 hohndel Exp $ */
-  /*
-   * Copyright 1997 through 1999 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
-   *
---- 1,4 ----
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/atiprobe.c,v 1.1.2.8tsi Exp $ */
-  /*
-   * Copyright 1997 through 1999 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
-   *
-***************
-*** 1184,1200 ****
-                  ATILCDHorizontal = BIOSWord(LCDPanelInfo + 0x19U);
-                  ATILCDVertical = BIOSWord(LCDPanelInfo + 0x1BU);
-  
-!                 /* Assume clock 0 */
-!                 ATILCDClock = 2 * ATIGetMach64PLLReg(PLL_VCLK0_FB_DIV);
-                  ATILCDClock *= ATIReferenceNumerator;
-                  ATILCDClock /= ATIClockDescriptor->MinM;
-                  ATILCDClock /= ATIReferenceDenominator;
-!                 Index =
-!                     GetBits(ATIGetMach64PLLReg(PLL_XCLK_CNTL), PLL_VCLK0_XDIV);
-!                 Index *= MaxBits(PLL_VCLK0_POST_DIV) + 1;
-!                 Index |= GetBits(ATIGetMach64PLLReg(PLL_VCLK_POST_DIV),
-!                     PLL_VCLK0_POST_DIV);
-!                 ATILCDClock /= ATIClockDescriptor->PostDividers[Index];
-              }
-          }
-  
---- 1184,1202 ----
-                  ATILCDHorizontal = BIOSWord(LCDPanelInfo + 0x19U);
-                  ATILCDVertical = BIOSWord(LCDPanelInfo + 0x1BU);
-  
-!                 /* Compute panel clock */
-!                 Index = GetBits(inb(R_GENMO), 0x0C);
-!                 ATILCDClock = 2 * ATIGetMach64PLLReg(PLL_VCLK0_FB_DIV + Index);
-                  ATILCDClock *= ATIReferenceNumerator;
-                  ATILCDClock /= ATIClockDescriptor->MinM;
-                  ATILCDClock /= ATIReferenceDenominator;
-!                 Index2 =
-!                     GetBits(ATIGetMach64PLLReg(PLL_XCLK_CNTL),
-!                         PLL_VCLK0_XDIV << Index);
-!                 Index2 *= MaxBits(PLL_VCLK0_POST_DIV) + 1;
-!                 Index2 |= GetBits(ATIGetMach64PLLReg(PLL_VCLK_POST_DIV),
-!                     PLL_VCLK0_POST_DIV << (2 * Index));
-!                 ATILCDClock /= ATIClockDescriptor->PostDividers[Index2];
-              }
-          }
-  
-diff -cENRr -x CVS -x test base/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativersion.h devel/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativersion.h
-*** base/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativersion.h        Wed Feb  9 20:09:34 2000
---- devel/xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativersion.h       Wed Feb  9 11:01:02 2000
-***************
-*** 1,4 ****
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativersion.h,v 1.1.2.5 1999/10/12 17:18:57 hohndel Exp $ */
-  /*
-   * Copyright 1997 through 1999 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
-   *
---- 1,4 ----
-! /* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/ati/ativersion.h,v 1.1.2.5tsi Exp $ */
-  /*
-   * Copyright 1997 through 1999 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
-   *
-***************
-*** 24,33 ****
-  #ifndef ___ATIVERSION_H___
-  #define ___ATIVERSION_H___ 1
-  
-! #define ATI_VERSION_NAME "4.6"
-  
-  #define ATI_VERSION_MAJOR 4
-! #define ATI_VERSION_MINOR 6
-  
-  #define ATI_VERSION_CURRENT ((ATI_VERSION_MAJOR << 16) | ATI_VERSION_MINOR)
-  
---- 24,33 ----
-  #ifndef ___ATIVERSION_H___
-  #define ___ATIVERSION_H___ 1
-  
-! #define ATI_VERSION_NAME "4.7"
-  
-  #define ATI_VERSION_MAJOR 4
-! #define ATI_VERSION_MINOR 7
-  
-  #define ATI_VERSION_CURRENT ((ATI_VERSION_MAJOR << 16) | ATI_VERSION_MINOR)
-  
diff --git a/XFree86-Servers-rh.patch b/XFree86-Servers-rh.patch
deleted file mode 100644 (file)
index 6a8234e..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
---- XFree86-3.3.4b/xc/config/cf/xf86site.def.rh        Thu Jul 22 14:47:49 1999
-+++ XFree86-3.3.4b/xc/config/cf/xf86site.def   Thu Jul 22 14:48:58 1999
-@@ -66,9 +66,9 @@
-  *
-  * This should automatically get set correctly by imake.
-  *
--#define LinuxCLibMajorVersion 5
--#define LinuxClibMinorVersion 4
-  */
-+#define LinuxCLibMajorVersion 6
-+#define LinuxClibMinorVersion 0
- /*
-  * If you want to use the GNU malloc library, uncomment this
-@@ -101,8 +101,8 @@
-  * Note: version 4.0 or 4.1 is required, and XF86Setup links it statically by
-  * default.
-  *
--#define HasTk                 YES
-  */
-+#define HasTk                 YES
- /*
-  * Set the paths and names for your Tk library if they don't match the
-@@ -115,25 +115,26 @@
-  *
-  * Some Linux releases need TkLibDir set to /usr/X11R6/lib
-  *
--#define TkLibDir              /usr/local/lib
--#define TkIncDir              /usr/local/include
--#define TkLibName             tk
-  */
-+#define TkLibDir              /usr/lib
-+#define TkIncDir              /usr/include
-+#define TkLibName             tk
- /*
-  * By default, XF86Setup is linked with a static Tk library.  To change
-  * that, uncomment the following line.
-  *
--#define XF86SetupUsesStaticTk NO
-  */
-+#define XF86SetupUsesStaticTk NO
-+
- /*
-  * If you have Tcl (which is required to build XF86Setup), uncomment this
-  * Note: version 7.4 or 7.5 is required, and XF86Setup links it statically by
-  * default.
-  *
--#define HasTcl                        YES
-  */
-+#define HasTcl                        YES
- /*
-  * Set the paths and names for your Tcl library if they don't match the
-@@ -143,17 +144,17 @@
-  *
-  * Some Linux releases need TclIncDir set to /usr/include/tcl.
-  *
--#define TclLibDir             /usr/local/lib
--#define TclIncDir             /usr/local/include
--#define TclLibName            tcl
-  */
-+#define TclLibDir             /usr/lib
-+#define TclIncDir             /usr/include
-+#define TclLibName            tcl
- /*
-  * By default, XF86Setup is linked with a static Tcl library.  To change
-  * that, uncomment the following line.
-  *
--#define XF86SetupUsesStaticTcl        NO
-  */
-+#define XF86SetupUsesStaticTcl        NO
- /*
-  * Which servers do you wish to build, you can save a lot of disk space
-@@ -339,8 +340,8 @@
-  * fonts once, if this is a first time install you will want to build the
-  * fonts)
-  *
--#define BuildFonts            NO
-  */
-+#define BuildFonts            YES
- /*
-  * To not build/install the 75dpi fonts, uncomment the following
-@@ -369,8 +370,8 @@
- /*
-  * To not build/install the Cyrillic fonts, uncomment the following
-  *
--#define BuildCyrillicFonts    NO
-  */
-+#define BuildCyrillicFonts    YES
- /*
-  * To not install the local font directory, uncomment the following
-@@ -400,7 +401,7 @@
-  * will need to be built with the Joystick driver in order to be able to
-  * use this.
-  *
--#define JoystickSupport               NO
-+#define JoystickSupport               YES
- #define WacomSupport          YES
- #define MicroTouchSupport     YES 
- #define ElographicsSupport    YES 
-@@ -538,8 +539,8 @@
-  * To forceably build static libraries in addition to shared libraries,
-  * uncomment this.
-  *
--#define ForceNormalLib                YES
-  */
-+#define ForceNormalLib                YES
- /*
-  * Uncomment this if your default tools (eg, gcc, ld, as, etc) are
---- XFree86-3.3.4b/xc/config/cf/site.def.rh    Sun Jun 22 06:32:21 1997
-+++ XFree86-3.3.4b/xc/config/cf/site.def       Thu Jul 22 14:48:58 1999
-@@ -106,10 +106,11 @@
- */
- /*
--#undef DefaultUserPath
--#define DefaultUserPath /bin:/usr/bin:$(BINDIR):/usr/ucb:/usr/local/bin
- */
--
-+#undef DefaultUserPath
-+#define DefaultUserPath /usr/local/bin:/bin:/usr/bin
-+#undef DefaultSystemPath
-+#define DefaultSystemPath /sbin:/usr/sbin:/bin:/usr/bin
- /* You do NOT need SetUID if you only run the server under xdm */
- /* You MAY need SetUID if users run the server by hand or under xinit */
---- XFree86-3.3.4b/xc/config/cf/linux.cf.rh    Thu Jul 22 14:48:53 1999
-+++ XFree86-3.3.4b/xc/config/cf/linux.cf       Thu Jul 22 14:53:28 1999
-@@ -139,7 +139,7 @@
- #define HasMkstemp            YES
- #endif
- #ifndef HasPam
--#define HasPam                        NO
-+#define HasPam                        YES
- #endif
- #define AvoidNullMakeCommand  YES
-@@ -332,3 +332,7 @@
- #include <lnxLib.rules>
- #include <xfree86.cf>
-+
-+#ifndef XtermWithI18N
-+#define XtermWithI18N YES
-+#endif
---- XFree86-3.3.4b/xc/programs/xinit/Imakefile.rh      Thu Nov  5 14:28:39 1998
-+++ XFree86-3.3.4b/xc/programs/xinit/Imakefile Thu Jul 22 14:48:58 1999
-@@ -35,9 +35,11 @@
- InstallNamedProg(startx,startx,$(BINDIR))
- InstallManPage(startx,$(MANDIR))
--#if InstallXinitConfig
--InstallNonExecFile($(SAMPLECONFIG),$(XINITDIR))
--#else
--InstallNonExecFileNoClobber($(SAMPLECONFIG),$(XINITDIR))
--#endif
-+XCOMM Red Hat gets this from a different package
-+XCOMM #if InstallXinitConfig
-+XCOMM InstallNonExecFile($(SAMPLECONFIG),$(XINITDIR))
-+XCOMM #else
-+XCOMM InstallNonExecFileNoClobber($(SAMPLECONFIG),$(XINITDIR))
-+XCOMM #endif
-+
- #endif
diff --git a/XFree86-Servers-security.patch b/XFree86-Servers-security.patch
deleted file mode 100644 (file)
index cdc93fc..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- XFree86-4.0/xc/programs/Xserver/os/secauth.c.foo   Tue May 16 19:29:26 2000
-+++ XFree86-4.0/xc/programs/Xserver/os/secauth.c       Tue May 16 19:33:07 2000
-@@ -42,10 +42,10 @@
-     ClientPtr client,
-     char      **reason)
- {
--    char      *policy = *dataP;
-+    unsigned char     *policy = *dataP;
-     int               length;
-     Bool      permit;
--    int               nPolicies;
-+    unsigned int      nPolicies;
-     char      **sitePolicies;
-     int               nSitePolicies;
-     Bool      found = FALSE;
-@@ -63,7 +63,8 @@
-     sitePolicies = SecurityGetSitePolicyStrings(&nSitePolicies);
-     while (nPolicies) {
--      int strLen, sitePolicy;
-+      unsigned int strLen;
-+      int sitePolicy;
-       if (length == 0) {
-           *reason = InvalidPolicyReason;
diff --git a/XFree86-Servers-serversonly.patch b/XFree86-Servers-serversonly.patch
deleted file mode 100644 (file)
index e6a1ff6..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
---- xc/config/cf/xf86site.def.jj       Mon Jun  5 16:19:15 2000
-+++ xc/config/cf/xf86site.def  Mon Jun  5 16:23:40 2000
-@@ -246,15 +246,13 @@ XCOMM $XFree86: xc/config/cf/xf86site.de
- /*
-  * To disable building the Xnest server, uncomment this.
-- *
--#define XnestServer           NO
-  */
-+#define XnestServer           NO
- /*
-  * To disable building Xvfb, uncomment this.
-- *
--#define XVirtualFramebufferServer     NO
-  */
-+#define XVirtualFramebufferServer     NO
- /*
-  * Set the default server (ie the one that gets the sym-link to "X")
-@@ -340,8 +338,8 @@ XCOMM $XFree86: xc/config/cf/xf86site.de
-  * fonts once, if this is a first time install you will want to build the
-  * fonts)
-  *
-- */
- #define BuildFonts            YES
-+ */
- /*
-  * To not build/install the 75dpi fonts, uncomment the following
-@@ -382,9 +380,8 @@ XCOMM $XFree86: xc/config/cf/xf86site.de
- /*
-  * To build only the servers with a cut-down source tree, uncomment
-  * this.
-- *
--#define BuildServersOnly      YES
-  */
-+#define BuildServersOnly      YES
- /*
-  * To disable building XInput support, uncomment this
diff --git a/XFree86-Servers-sis.patch b/XFree86-Servers-sis.patch
deleted file mode 100644 (file)
index 6aa41dc..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/xf86config/Cards.sis  Mon Sep 13 13:17:05 1999
-+++ XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/xf86config/Cards      Mon Sep 13 13:17:27 1999
-@@ -2299,7 +2299,7 @@
- NAME SiS 6326
- CHIPSET SiS6326
- SERVER SVGA
--LINE     # Option "no_accel" # Use this if acceleration is causing problems
-+LINE     Option "no_accel" # Use this if acceleration is causing problems
- LINE     # Option "fifo_moderate" 
- LINE     # Option "fifo_conserv" 
- LINE     # Option "fifo_aggresive" 
diff --git a/XFree86-Servers-sparc-asmflags.patch b/XFree86-Servers-sparc-asmflags.patch
deleted file mode 100644 (file)
index 1ea4eb9..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- XFree86-4.0/xc/programs/Xserver/cfb/Imakefile.asmflags     Thu Jun  1 11:52:12 2000
-+++ XFree86-4.0/xc/programs/Xserver/cfb/Imakefile      Thu Jun  1 11:47:38 2000
-@@ -234,10 +234,10 @@
-       $(RM) stipsparcte.s
- stipsparc.o: stipsparc.s
--      $(CPP) stipsparc.s | $(AS) -o $@ -
-+      $(CPP) stipsparc.s AsmDefines | $(AS) -o $@ -
- stipsparcte.o: stipsparcte.s
--      $(CPP) -DTETEXT stipsparcte.s | $(AS) -o $@ -
-+      $(CPP) -DTETEXT stipsparcte.s AsmDefines | $(AS) -o $@ -
- #endif
- #endif
-@@ -250,10 +250,10 @@
-       $(RM) stipsprcte32.s
- stipsprc32.o: stipsprc32.s
--      $(CPP) stipsprc32.s | $(AS) -o $@ -
-+      $(CPP) stipsprc32.s AsmDefines | $(AS) -o $@ -
- stipsprcte32.o: stipsprcte32.s
--      $(CPP) -DTETEXT stipsprcte32.s | $(AS) -o $@ -
-+      $(CPP) -DTETEXT stipsprcte32.s AsmDefines | $(AS) -o $@ -
- #endif
- #endif
diff --git a/XFree86-Servers-ssa50.patch b/XFree86-Servers-ssa50.patch
deleted file mode 100644 (file)
index 32bcec0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/xf86config/Cards.ssa50        Tue Aug 31 15:55:47 1999
-+++ XFree86-3.3.5/xc/programs/Xserver/hw/xfree86/xf86config/Cards      Tue Aug 31 15:57:44 1999
-@@ -2334,6 +2334,9 @@
- NAME Diamond SpeedStar A50
- SEE SiS 6326
-+LINE     Option "sw_cursor"
-+LINE     Option "no_imageblt"
-+LINE     Option "no_bitblt"
- NAME AOpen PA50D
- SEE SiS 6326
diff --git a/XFree86-Servers-svgaprobe.patch b/XFree86-Servers-svgaprobe.patch
deleted file mode 100644 (file)
index e69c4c7..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- XFree86-3.3.6/xc/config/cf/xfree86.cf.svgaprobe    Tue Feb 29 13:09:36 2000
-+++ XFree86-3.3.6/xc/config/cf/xfree86.cf      Tue Feb 29 13:36:16 2000
-@@ -433,9 +433,9 @@
- #  define XF86SvgaDrivers     mga tvga8900 s3v
- # else
- #  if defined(LinuxArchitecture)
--#   define XF86SvgaDrivers    nv et4000 et3000 pvga1 gvga r128 ati sis tvga8900 \
-+#   define XF86SvgaDrivers    s3_savage nv et4000 et3000 pvga1 gvga r128 ati sis tvga8900 \
-                               cirrus ncr77c22 compaq mga oak al2101 \
--                              ali cl64xx video7 ark mx realtek s3_savage s3v apm \
-+                              ali cl64xx video7 ark mx realtek s3v apm \
-                               s3_svga neo chips cyrix rendition p9x00 \
-                               spc8110 i740 tdfx i810 smi generic
- #  else
diff --git a/XFree86-Servers-xkbstack.patch b/XFree86-Servers-xkbstack.patch
deleted file mode 100644 (file)
index 39103b4..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---- XFree86-3.3.6/xc/programs/Xserver/xkb/ddxLoad.c.xkbstack   Sun Sep 27 09:21:29 1998
-+++ XFree86-3.3.6/xc/programs/Xserver/xkb/ddxLoad.c    Thu May 25 12:31:34 2000
-@@ -236,6 +236,13 @@
-       sprintf(keymap,"server-%s",display);
-     }
-     else {
-+      if (strlen(names->keymap) > PATH_MAX - 1) {
-+#ifdef DEBUG
-+            ErrorF("name of keymap (%s) exceeds max length\n",
-+                                                      names->keymap);
-+#endif
-+          return False;
-+      }
-       strcpy(keymap,names->keymap);
-     }
diff --git a/XFree86-Servers.spec b/XFree86-Servers.spec
deleted file mode 100644 (file)
index b046f18..0000000
+++ /dev/null
@@ -1,735 +0,0 @@
-Summary:       XFree86 servers
-Name:          XFree86-Servers
-Version:       3.3.6
-Release:       36
-License:       MIT
-Group:         X11/XFree86/Servers
-Source0:       ftp://ftp.xfree86.org/pub/XFree86/3.3.6/source/X336src-1.tgz
-# Source0-md5: bbfa360d10ce91ab37f24f197a31b485
-Source1:       ftp://ftp.dcs.ed.ac.uk/pub/jec/programs/xfsft/xfsft-1.1.6.tar.gz
-# Source1-md5: 88c65d3c314dab6b000499861a7f4865
-Source2:       xserver.pamd
-Patch0:                %{name}-rh.patch
-Patch1:                %{name}-parallelmake.patch
-Patch2:                %{name}-fix-01-r128.patch
-Patch3:                %{name}-joy.patch
-Patch4:                %{name}-ssa50.patch
-Patch5:                %{name}-cyrix.patch
-Patch6:                %{name}-sis.patch
-Patch7:                %{name}-3dfxalpha.patch
-Patch8:                %{name}-sparc.patch.gz
-Patch9:                %{name}-new-i810.patch
-Patch10:       %{name}-5480mem.patch
-Patch11:       %{name}-ragemobility.patch
-Patch12:       %{name}-fixreleasedate.patch
-Patch13:       %{name}-svgaprobe.patch
-Patch14:       %{name}-morecyrix.patch
-Patch15:       %{name}-security.patch
-Patch16:       %{name}-xkbstack.patch
-Patch17:       %{name}-fix-04-s3trio3d2x.patch
-Patch18:       %{name}-fix-05-s3trio3d.patch
-Patch19:       %{name}-fbdev-compile.patch
-Patch20:       %{name}-alpha.patch
-Patch21:       %{name}-serversonly.patch
-Patch22:       %{name}-sparc-asmflags.patch
-Patch23:       %{name}-HasZlib.patch
-ExclusiveArch: %{ix86} alpha m68k armv4l sparc
-BuildRequires: flex
-BuildRequires: bison
-BuildRequires: zlib-devel
-BuildRequires: pam-devel
-Requires:      pam >= 0.77.3
-BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-
-%define                _prefix         /usr/X11R6
-%define                _mandir         %{_prefix}/man
-%define                docsrc          xc/programs/Xserver/hw/xfree86/doc
-
-%description
-This package contains old XFree86 servers (taken from version 3.3.6)
-to use with old video cards, not supported by XFree86 4.x.
-
-%description -l pl
-Ten pakiet zawiera stare serwery XFree86 (wziête z wersji 3.3.6) dla
-starych kart graficznych, nie obs³ugiwanych przez XFree86 4.x.
-
-%package common
-Summary:       The XFree86 servers - common files
-Summary(pl):   Pliki wspólne dla serwerów XFree86
-Group:         X11/XFree86/Servers
-Requires:      XFree86-fonts
-Obsoletes:     XFree86-Xserver
-
-%description common
-Files common for all XFree86 servers, i.e. modules, Xwrapper and PAM
-configuration files. Install this package with appropriate X server
-package if you have old video card which was supported by XFree 3.3.6
-but is not supported by XFree 4.x. If your card is well supported by
-XFree 4.x, use Xserver with appropriate driver from XFree 4.x instead.
-
-Please see the XFree86 video card/server list available from the
-XFree86 Project's website at http://www.xfree86.org/ for a definitive
-list of X servers and which video cards they support.
-
-%description common -l pl
-Pliki wspólne dla wszystkich X serwerów, w tym modu³y, Xwrapper oraz
-pliki konfiguracyjne PAM. Zainstaluj ten pakiet wraz z pakietem
-zawieraj±cym odpowiedni X serwer je¿eli masz star± kartê, która by³a
-obs³ugiwana przez XFree 3.3.6, a nie jest obs³ugiwana przez XFree 4.x.
-Je¿eli twoja karta jest dobrze obs³ugiwana przez XFree 4.x, lepiej
-u¿yj X serwera wraz z odpowiednim driverem z XFree 4.x
-
-Pe³n± listê X serwerów oraz kart które obs³uguj± mo¿na znale¼æ pod
-adresem http://www.xfree86.org/.
-
-%package -n XFree86-S3
-Summary:       The XFree86 server for video cards based on older S3 chips
-Summary(pl):   Serwer XFree86 dla kart na starych uk³adach S3
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-S3
-XFree86-S3 is the X server for video cards based on S3 chips,
-including most Number Nine cards, many Diamond Stealth cards, Orchid
-Fahrenheits, the Miro Crystal 8S, most STB cards, and some
-motherboards with built-in graphics accelerators (such as the IBM
-ValuePoint line). Note that if you have an S3 ViRGE based video card,
-you'll need XFree86-S3V instead of XFree86-S3.
-
-%description -n XFree86-S3 -l pl
-XFree86-S3 jest X serwerem dla kart graficznych na uk³adach S3, czyli
-czê¶ci kart Number Nine, Diamond Stealth, Orchid Fahrenheit, Miro
-Crystal, STB. Je¿eli masz kartê na uk³adzie S3 ViRGE, zamiast tego
-pakietu zainstaluj XFree86-S3V.
-
-%package -n XFree86-I128
-Summary:       The XFree86 server for Number Nine Imagine 128 video cards
-Summary(pl):   Serwer XFree86 dla kart Number Nine Imagine 128
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-I128
-XFree86-I128 is the X server for the Number Nine Imagine 128 and
-similar video cards.
-
-%description -n XFree86-I128 -l pl
-XFree86-I128 jest X serwerem dla kart graficznych Number Nine Imagine
-128 i podobnych.
-
-%package -n XFree86-S3V
-Summary:       The XFree86 server for video cards based on the S3 Virge chip
-Summary(pl):   Serwer XFree86 dla kart na uk³adzie S3 Virge
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-S3V
-XFree86-S3V is the X server for video cards based on the S3 ViRGE
-chipset.
-
-%description -n XFree86-S3V -l pl
-XFree86-S3V jest X serwerem dla kart graficznych opartych o uk³ady S3
-ViRGE.
-
-%package -n XFree86-Mach64
-Summary:       The XFree86 server for Mach64 based video cards
-Summary(pl):   Serwer XFree86 dla kart na uk³adzie Mach64
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-Mach64
-XFree86-Mach64 is the server package for cards based on ATI's Mach64
-chip, such as the Graphics Xpression, GUP Turbo, and WinTurbo cards.
-Note that this server is known to have problems with some Mach64
-cards. Check http://www.xfree86.org/ for current information on
-updating this server.
-
-%description -n XFree86-Mach64 -l pl
-XFree86-Mach64 to X serwer dla kart opartych o uk³ad ATI Mach64,
-takich jak Graphics Xpression, GUP Turbo, WinTurbo. Uwaga: ten serwer
-miewa problemy z niektórymi kartami Mach64.
-
-%package -n XFree86-8514
-Summary:       The XFree86 server program for older IBM 8514 or compatible video cards
-Summary(pl):   Serwer XFree86 dla kart na uk³adzie IBM 8514
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-8514
-The XFree86-8514 package contains the X server for older IBM 8514
-video cards, or compatibles from a company such as ATI.
-
-%description -n XFree86-8514 -l pl
-XFree86-8514 zawiera X serwer dla starszych kart graficznych IBM 8514
-lub kompatybilnych.
-
-%package -n XFree86-AGX
-Summary:       The XFree86 server for AGX-based video cards
-Summary(pl):   Serwer XFree86 dla kart na uk³adzie AGX
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-AGX
-The XFree86-AGX package contains the X server for AGX-based cards,
-such as the Boca Vortex, Orchid Celsius, Spider Black Widow and
-Hercules Graphite.
-
-%description -n XFree86-AGX -l pl
-XFree86-AGX zawiera X serwer dla kart graficznych na uk³adzie AGX,
-takich jak Roca Vortex, Orchid Celsius, Spider Black Widow, Hercules
-Graphite.
-
-%package -n XFree86-Mach32
-Summary:       The XFree86 server for Mach32 based video cards
-Summary(pl):   Serwer XFree86 dla kart na uk³adzie Mach32
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-Mach32
-XFree86-Mach32 is the X server package for video cards built around
-ATI's Mach32 chip, including the ATI Graphics Ultra Pro and Ultra
-Plus.
-
-%description -n XFree86-Mach32 -l pl
-XFree86-Mach32 jest X serwerem dla kart graficznych opartych na
-uk³adzie ATI Mach32, w tym kart ATI Graphics Ultra Pro i Ultra Plus.
-
-%package -n XFree86-Mach8
-Summary:       The XFree86 server for Mach8 video cards
-Summary(pl):   Serwer XFree86 dla kart na uk³adzie Mach8
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-Mach8
-XFree86-Mach8 is the X server for video cards built around ATI's Mach8
-chip, including the ATI 8514 Ultra and Graphics Ultra.
-
-%description -n XFree86-Mach8 -l pl
-XFree86-Mach8 jest X serwerem dla kart graficznych opartych na
-uk³adzie ATI Mach8, w tym kart ATI 8514 Ultra i Graphics Ultra.
-
-%package -n XFree86-Mono
-Summary:       A generic XFree86 monochrome server for VGA cards
-Summary(pl):   Serwer XFree86 dla kart VGA w trybie mono
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-Mono
-XFree86-Mono is a generic monochrome (two color) server for VGA cards.
-XFree86-Mono will work for nearly all VGA compatible cards, but will
-only support a monochrome display.
-
-%description -n XFree86-Mono -l pl
-XFree86-Mono jest standardowym monochromatycznym (2-kolorowym)
-serwerem dla kart VGA. Dzia³a na prawie wszystkich kartach zgodnych z
-VGA.
-
-%package -n XFree86-P9000
-Summary:       The XFree86 server for P9000 cards
-Summary(pl):   Serwer dla kart na uk³adzie P9000
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-P9000
-XFree86-P9000 is the X server for video cards built around the Weitek
-P9000 chip, such as most Diamond Viper cards and the Orchid P9000
-card.
-
-%description -n XFree86-P9000 -l pl
-XFree86-P9000 jest X serwerem dla kart graficznych opartych na
-uk³adzie Weitek P9000, takich jak Diamon Viper i Orchid P9000.
-
-%package -n XFree86-SVGA
-Summary:       An XFree86 server for most simple framebuffer SVGA devices
-Summary(pl):   Serwer dla wiêkszo¶ci prostych kart SVGA
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-SVGA
-An X server for most simple frame buffer SVGA devices, including cards
-built from ET4000 chips, Cirrus Logic chips, Chips and Technologies
-laptop chips, Trident 8900 and 9000 chips, and Matrox chips. It also
-works for Diamond Speedstar, Orchid Kelvins, STB Nitros and Horizons,
-Genoa 8500VL, most Actix boards, and the Spider VLB Plus. This X
-server works for many other chips and cards, so try this server if you
-are having problems.
-
-%description -n XFree86-SVGA -l pl
-X serwer dla wiêkszo¶ci prostych kart SVGA, w tym kart zbudowanych na
-uk³adach ET4000, Cirrus Logic, Chips and Technologies, Trident 8900 i
-9000, Matrox. Dzia³a tak¿e na kartach Diamond Speedstar, Orchid
-Kelvin, STB Nitro i Horizon, Genoa 8500VL, Spider VLB Plus i
-wiêkszo¶ci kart Actix.
-
-%package -n XFree86-VGA16
-Summary:       A generic XFree86 server for VGA16 boards
-Summary(pl):   Serwer XFree86 dla kart VGA w trybie 4bpp
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-VGA16
-XFree86-VGA16 is a generic 16 color server for VGA boards.
-XFree86-VGA16 will work on nearly all VGA style graphics boards, but
-will only support a low resolution, 16 color display.
-
-%description -n XFree86-VGA16 -l pl
-XFree86-VGA16 jest standardowych 16-kolorowym serwerem dla kart VGA.
-Dzia³a na prawie wszystkich kartach zgodnych z VGA.
-
-%package -n XFree86-W32
-Summary:       The XFree86 server for video cards based on ET4000/W32 chips
-Summary(pl):   Serwer XFree86 dla kart na uk³adzie ET4000/W32
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-W32
-XFree86-W32 is the X server for cards built around ET4000/W32 chips,
-including the Genoa 8900 Phantom 32i, the Hercules Dynamite, the
-LeadTek WinFast S200, the Sigma Concorde, the STB LightSpeed, the
-TechWorks Thunderbolt, and the ViewTop PCI.
-
-%description -n XFree86-W32 -l pl
-XFree86-W32 jest X serwerem dla kart opartych na uk³adach ET4000/W32,
-w tym kart Genoa 8900 Phantom 32i, Hercules Dynamite, LeadTek WinFast
-S200, Sigma Concorde, STB LightSpeed, TechWorks Thunderbolt, ViewTop
-PCI.
-
-%package -n XFree86-3DLabs
-Summary:       The XFree86 server for 3Dlabs video cards
-Summary(pl):   Serwer XFree86 dla kart na uk³adzie 3Dlabs
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-3DLabs
-XFree86-3DLabs is the X server for cards built around 3Dlabs Glint and
-Permedia chipsets, including the Glint 500TX with IBM RGB526 RAMDAC,
-the Glint MX with IBM RGB526 and IBM RGB640 RAMDAC, the Permedia with
-IBM RGB526 RAMDAC, and the Permedia 2 (classic, 2a, 2v).
-
-%description -n XFree86-3DLabs -l pl
-XFree86-3DLabs jest X serwerem dla kart graficznych na uk³adach 3Dlabs
-Glint lub Permedia, w tym Glint 500TX z RAMDAC IBM RGB526, Glint MX z
-RAMDAC IBM RGB526 lub IBM RGB640, Permedia z RAMDAC IBM RGB526 oraz
-Permedia 2 (classic, 2a, 2v).
-
-%package -n XFree86-TGA
-Summary:       X server for systems with Digital TGA boards based on DC21040 chips
-Summary(pl):   X serwer dla systemów z kartami Digital TGA na uk³adach DC21040
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-TGA
-The XFree86-TGA package contains an 8-bit X server for Digital TGA
-boards based on the DC21040 chip. These adapters are often used in
-Alpha workstations and are included with Alpha UDB (Multia) machines.
-
-%description -n XFree86-TGA -l pl
-XFree86-TGA zawiea 8-bitowy X serwer dla kart Digital TGA opartych na
-uk³adzie DC21040. Te karty s± czêsto u¿ywane na w stacjach roboczych
-Alpha oraz maszynach Alpha UDB (Multia).
-
-%package -n XFree86-FBDev
-Summary:       The X server for the generic frame buffer device on some machines
-Summary(pl):   X serwer dzia³aj±cy w oparciu o framebuffer
-Group:         X11/XFree86/Servers
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-FBDev
-The XFree86-FBDev package contains an X server for the generic frame
-buffer device. This X server is usually the only choice for SPARC
-machines, but also has some special capabilities that make it useful
-on Intel platforms, especially laptops.
-
-First, this X server can be used as a generic driver for a chipset
-that does not yet have an Open Source driver (note that it will be
-un-accelerated). Secondly, this X server "speaks" VESA protocols, so
-it will produce the exact timing needed by projection systems. This
-feature is handy for using your laptop to display a presentation on a
-projection system on the road. Your regular X server may or may not be
-in sync with the projection system, but the FBDev X server will always
-work. Thirdly, this X server can produce a larger display, at a higher
-resolution, for consoles on laptops.
-
-%description -n XFree86-FBDev -l pl
-XFree86-FBDev zawiera X serwer oparty o framebuffer. Zazwyczaj jest
-jedynym dla maszyn SPARC, ale ma te¿ mo¿liwo¶ci przydatne na
-platformach intelowskich, zw³aszcza w laptopach.
-
-Po pierwsze, ten X serwer mo¿e byæ u¿ywany dla kart, które nie maj±
-jeszcze dedykowanego drivera (uwaga: ten serwer dzia³a bez
-akceleracji). Po drugie, ten X serwer obs³uguje protoko³y VESA, wiêc
-mo¿e dostosowaæ parametry wy¶wietlania do urz±dzenia, co jest
-przydatne przy projekcjach. Po trzecie, ten X serwer mo¿e wy¶wietlaæ
-wiêkszy obraz, z wiêksz± rozdzielczo¶ci± na laptopach.
-
-%package -n XFree86-Sun
-Summary:       X server for Suns with monochrome and 8-bit color SBUS framebuffers
-Summary(pl):   X serwer dla Sunów z framebufferem SBUS mono lub kolorowym 8bpp
-Group:         X11/XFree86/Servers
-Obsoletes:     X11R6.1-Sun
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-Sun
-The XFree86-Sun package contains the X server for Sun computers with
-monochrome and 8-bit color SBUS frame buffers (for example, the CG3
-and CG6 frame buffers).
-
-%description -n XFree86-Sun -l pl
-XFree86-Sun zawiera X serwer dla komputerów Sun z framebufferem SBUS
-monochromatycznym lub z 8-bitowym kolorem (np. CG3 lub CG6).
-
-%package -n XFree86-SunMono
-Summary:       X server for Sun computers with monochrome SBUS framebuffers only
-Summary(pl):   X serwer dla Sunów z monochromatycznym framebufferem SBUS
-Group:         X11/XFree86/Servers
-Obsoletes:     X11R6.1-SunMono
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-SunMono
-The XFree86-SunMono package includes an X server for Sun computers
-with monochrome SBUS frame buffers only.
-
-%description -n XFree86-SunMono -l pl
-XFree86-SunMono zawiera X serwer dla komputerów Sun z
-monochromatycznym framebufferem SBUS.
-
-%package -n XFree86-Sun24
-Summary:       The X server for Suns with all supported SBUS framebuffers
-Summary(pl):   X serwer dla Sunów z framebufferami SBUS
-Group:         X11/XFree86/Servers
-Obsoletes:     X11R6.1-Sun24
-Provides:      Xserver
-Requires:      %{name}-common = %{version}
-
-%description -n XFree86-Sun24
-The XFree86-Sun24 package contains the X server for Sun computers with
-all supported SBUS frame buffers.
-
-%description -n XFree86-Sun24 -l pl
-XFree86-Sun24 zawiera X serwer dla komputerów Sun z framebufferem
-SBUS.
-
-%prep
-%setup -q -c -a1
-
-# install xfsft
-tar x -C xc/lib -f xfsft-1.1.6/libfont.tar
-patch -p0 -s -d xc/lib < xfsft-1.1.6/libfont.patch
-
-%patch0 -p1
-%patch1 -p1
-%patch2 -p0
-%patch3 -p1
-# Fix Xconfigurator setup of Diamond SpeedStar A50
-%patch4 -p1
-# new cyrix driver seems wonky
-%patch5 -p1
-# turn off accel for sis6326 cards
-%patch6 -p1
-%ifarch alpha
-%patch7 -p1
-%endif
-%ifarch sparc
-# Sparc jumbo patch
-%patch8 -p1
-%endif
-# enable i810 driver in 3.3.6; switch agpgart to X 4.0-style
-%patch9 -p1
-# fix memory detection on Cirrus 5480 series chips
-%patch10 -p1
-# fix rage mobility chipset (IBM ThinkPads)
-%patch11 -p1
-# 2000, not 1999!
-%patch12 -p1
-# probe SVGA cards in different order to avoid lockups
-%patch13 -p1
-# more minor MediaGX tweaks
-%patch14 -p1
-# fix bug in security extension (listens on port 6000)
-%patch15 -p1
-# fix stack overrun in xkb startup code
-%patch16 -p1
-# fix S3 trio3d issues
-%patch17 -p0
-%patch18 -p0
-# make things compile with glibc 2.2
-%patch19 -p0
-# make alpha build with gcc 2.96
-%patch20 -p0
-# Only build X servers
-%patch21 -p0
-# fix cfb linking
-%patch22 -p1
-%patch23 -p1
-
-# Fix the header file for makedepend.
-cd xc/config/imake
-mkdir X11
-ln -sf ../../include/Xosdefs.h X11
-
-%build
-%ifarch alpha
-%{__make} World -C xc BOOTSTRAPCFLAGS="%{rpmcflags} -Wa,-m21164a" \
-       CDEBUGFLAGS="%{rpmcflags} -Wa,-m21164a"
-%else
-%{__make} World -C xc BOOTSTRAPCFLAGS="%{rpmcflags} -pipe" \
-       CDEBUGFLAGS="%{rpmcflags} -pipe"
-%endif
-
-# XXX: applies to gcc "2.96" only??? needs testing with 2.95*... -- qboosh
-# There are apparently bugs in -m486. Grrrrrrrrrrrrrrr.
-#%ifarch %{ix86}
-#%if %{?debug:0}%{!?debug:1}
-#(
-#  cd xc/programs/Xserver/hw/xfree86/accel/i128/
-#  rm -f i128.o libi128.a
-#  %{__make} i128.o CDEBUGFLAGS="-O2 -pipe"
-#  cd ../../../..
-#  %{__make} CDEBUGFLAGS="$RPM_OPT_FLAGS -pipe"
-#)
-#%endif
-#%endif
-
-%install
-rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/etc/{pam.d,security/console.apps},%{_includedir}}
-
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/xserver
-touch $RPM_BUILD_ROOT/etc/security/console.apps/xserver
-touch $RPM_BUILD_ROOT/etc/security/blacklist.xserver
-
-%{__make} install install.man -C xc \
-       DESTDIR=$RPM_BUILD_ROOT
-
-# setup the default X server
-rm -f $RPM_BUILD_ROOT%{_bindir}/X
-ln -sf Xwrapper $RPM_BUILD_ROOT%{_bindir}/X
-
-mv -f $RPM_BUILD_ROOT%{_mandir}/man5/XF86Config.5x \
-       $RPM_BUILD_ROOT%{_mandir}/man5/XF86Config-3.5x
-
-gzip -9nf $RPM_BUILD_ROOT%{_libdir}/X11/doc/*
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files common
-%defattr(644,root,root,755)
-%attr(4755,root,root) %{_bindir}/Xwrapper
-%attr(755,root,root) %{_bindir}/X
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/pam.d/xserver
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/security/blacklist.xserver
-%config(missingok) /etc/security/console.apps/xserver
-%{_mandir}/man5/XF86Config-3.5x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/XF86Config.eg
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/AccelCards*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/Devices*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/Monitors*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/QuickStart.doc*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.gz
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.Config*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.DGA*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.Linux*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.mouse*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/RELNOTES*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/VideoModes.doc*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/xinput*
-%ifarch %{ix86} alpha
-%attr(755,root,root) %{_libdir}/modules/*
-%endif
-
-%ifarch %{ix86} alpha
-%files -n XFree86-SVGA
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_SVGA
-%{_mandir}/man1/XF86_SVGA.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.MGA*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.NVIDIA*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.Oak*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.S3V*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.SiS*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.Video7*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.W32*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.WstDig*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.apm*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.ark*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.ati*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.chips*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.cirrus*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.cyrix*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.epson*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.i740*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.i810*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.neo*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.r128*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.rendition*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.trident*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.tseng*
-%endif
-
-%ifarch %{ix86} sparc
-%files -n XFree86-VGA16
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_VGA16
-%{_mandir}/man1/XF86_VGA16.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.cyrix*
-%endif
-
-%ifarch %{ix86}
-%files -n XFree86-W32
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_W32
-%{_mandir}/man1/XF86_W32.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.W32*
-%endif
-
-%ifarch %{ix86} alpha
-%files -n XFree86-Mono
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_Mono
-%{_mandir}/man1/XF86_Mono.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.cyrix*
-%endif
-
-%ifarch %{ix86} alpha
-%files -n XFree86-S3
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_S3
-%{_mandir}/man1/XF86_S3.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.S3.gz
-%endif
-
-%ifarch %{ix86} alpha
-%files -n XFree86-S3V
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_S3V
-%{_mandir}/man1/XF86_S3.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.S3V*
-%endif
-
-%ifarch %{ix86}
-%files -n XFree86-8514
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_8514
-%{_mandir}/man1/XF86_8514.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%endif
-
-%ifarch %{ix86}
-%files -n XFree86-Mach8
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_Mach8
-%{_mandir}/man1/XF86_Mach8.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%endif
-
-%ifarch %{ix86}
-%files -n XFree86-Mach32
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_Mach32
-%{_mandir}/man1/XF86_Mach32.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.Mach32*
-%endif
-
-%ifarch %{ix86} alpha sparc
-%files -n XFree86-Mach64
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_Mach64
-%{_mandir}/man1/XF86_Mach64.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.Mach64*
-%endif
-
-%ifarch %{ix86} alpha
-%files -n XFree86-P9000
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_P9000
-%{_mandir}/man1/XF86_P9000.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.P9000*
-%endif
-
-%ifarch %{ix86}
-%files -n XFree86-AGX
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_AGX
-%{_mandir}/man1/XF86_AGX.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.agx*
-%endif
-
-%ifarch %{ix86}
-%files -n XFree86-I128
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_I128
-%{_mandir}/man1/XF86_I128.1x*
-%{_mandir}/man1/XF86_Accel.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.I128*
-%endif
-
-%ifarch %{ix86} alpha sparc
-%files -n XFree86-3DLabs
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_3DLabs
-%{_mandir}/man1/XF86_Accel.1x*
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.3DLabs*
-%endif
-
-%ifarch alpha
-%files -n XFree86-TGA
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_TGA
-%doc $RPM_BUILD_ROOT%{_libdir}/X11/doc/README.DECtga*
-%endif
-
-%ifarch m68k armv4l
-%files -n XFree86-FBDev
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF68_FBDev
-%{_mandir}/man1/XF68_FBDev.1x*
-%endif
-
-%ifarch %{ix86} alpha sparc
-%files -n XFree86-FBDev
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XF86_FBDev
-%endif
-
-%ifarch sparc
-%files -n XFree86-Sun
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/Xsun
-%endif
-
-%ifarch sparc
-%files -n XFree86-SunMono
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/XsunMono
-%endif
-
-%ifarch sparc
-%files -n XFree86-Sun24
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/Xsun24
-%endif
This page took 0.444119 seconds and 4 git commands to generate.