rpms/xorg-x11-drv-openchrome/devel openchrome-0.2.903-latest_snapshot.patch, 1.3, 1.4 xorg-x11-drv-openchrome.spec, 1.38, 1.39

Xavier Bachelot xavierb at fedoraproject.org
Tue Feb 17 22:49:23 UTC 2009


Author: xavierb

Update of /cvs/pkgs/rpms/xorg-x11-drv-openchrome/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv11883

Modified Files:
	openchrome-0.2.903-latest_snapshot.patch 
	xorg-x11-drv-openchrome.spec 
Log Message:
rev. 726

openchrome-0.2.903-latest_snapshot.patch:

Index: openchrome-0.2.903-latest_snapshot.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-openchrome/devel/openchrome-0.2.903-latest_snapshot.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- openchrome-0.2.903-latest_snapshot.patch	5 Jan 2009 19:43:26 -0000	1.3
+++ openchrome-0.2.903-latest_snapshot.patch	17 Feb 2009 22:49:22 -0000	1.4
@@ -1,7 +1,7 @@
 Index: configure.ac
 ===================================================================
---- configure.ac	(.../tags/release_0_2_903)	(revision 711)
-+++ configure.ac	(.../trunk)	(revision 711)
+--- configure.ac	(.../tags/release_0_2_903)	(revision 730)
++++ configure.ac	(.../trunk)	(revision 730)
 @@ -70,7 +70,7 @@
  XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
  
@@ -53,10 +53,18 @@
  AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test x$XSERVER_LIBPCIACCESS = xyes)
  if test "$XSERVER_LIBPCIACCESS" = yes; then
          AC_DEFINE(XSERVER_LIBPCIACCESS,1,[Enable libpciaccess])
+@@ -186,7 +164,6 @@
+ AC_DEFINE(X_USE_REGION_NULL,1,[Compatibility define for older Xen])
+ AC_DEFINE(X_HAVE_XAAGETROP,1,[Compatibility define for older Xen])
+ AC_DEFINE(X_NEED_I2CSTART,1,[Compatibility define for older Xen])
+-AC_DEFINE(VIA_HAVE_EXA,1,[Build support for Exa])
+ 
+ DRIVER_MAN_SUFFIX="4"
+ AC_SUBST([DRIVER_MAN_SUFFIX])
 Index: libxvmc/Makefile.am
 ===================================================================
---- libxvmc/Makefile.am	(.../tags/release_0_2_903)	(revision 711)
-+++ libxvmc/Makefile.am	(.../trunk)	(revision 711)
+--- libxvmc/Makefile.am	(.../tags/release_0_2_903)	(revision 730)
++++ libxvmc/Makefile.am	(.../trunk)	(revision 730)
 @@ -24,13 +24,13 @@
  	xf86dristr.h \
  	vldXvMC.h
@@ -75,10 +83,25 @@
  else
  EXTRA_DIST = \
  	driDrawable.c \
+Index: libxvmc/viaLowLevel.c
+===================================================================
+--- libxvmc/viaLowLevel.c	(.../tags/release_0_2_903)	(revision 730)
++++ libxvmc/viaLowLevel.c	(.../trunk)	(revision 730)
+@@ -276,8 +276,8 @@
+ 	xl->tsMem.context = *(xl->drmcontext);
+ 	xl->tsMem.size = 64;
+ 	xl->tsMem.type = VIA_MEM_VIDEO;
+-	if (drmCommandWriteRead(xl->fd, DRM_VIA_ALLOCMEM, &xl->tsMem,
+-		sizeof(xl->tsMem)) < 0)
++	if ((ret = drmCommandWriteRead(xl->fd, DRM_VIA_ALLOCMEM, &xl->tsMem,
++		sizeof(xl->tsMem))) < 0)
+ 	    return ret;
+ 	if (xl->tsMem.size != 64)
+ 	    return -1;
 Index: libxvmc/viaLowLevelPro.c
 ===================================================================
---- libxvmc/viaLowLevelPro.c	(.../tags/release_0_2_903)	(revision 711)
-+++ libxvmc/viaLowLevelPro.c	(.../trunk)	(revision 711)
+--- libxvmc/viaLowLevelPro.c	(.../tags/release_0_2_903)	(revision 730)
++++ libxvmc/viaLowLevelPro.c	(.../trunk)	(revision 730)
 @@ -1460,13 +1460,13 @@
  
      if (size != mem->size) {
@@ -106,8 +129,8 @@
  
 Index: libxvmc/viaXvMC.c
 ===================================================================
---- libxvmc/viaXvMC.c	(.../tags/release_0_2_903)	(revision 711)
-+++ libxvmc/viaXvMC.c	(.../trunk)	(revision 711)
+--- libxvmc/viaXvMC.c	(.../tags/release_0_2_903)	(revision 730)
++++ libxvmc/viaXvMC.c	(.../trunk)	(revision 730)
 @@ -248,7 +248,7 @@
      return errType;
  }
@@ -384,9 +407,82 @@
  
 Index: ChangeLog
 ===================================================================
---- ChangeLog	(.../tags/release_0_2_903)	(revision 711)
-+++ ChangeLog	(.../trunk)	(revision 711)
-@@ -1,3 +1,232 @@
+--- ChangeLog	(.../tags/release_0_2_903)	(revision 730)
++++ ChangeLog	(.../trunk)	(revision 730)
+@@ -1,3 +1,305 @@
++2009-01-26  Jon Nettleton <jon.nettleton at gmail.com>
++
++	* src/via_accel.c: (viaInitXAA), (viaExaCheckComposite):
++
++	a couple of small compatibility fixes for XAA and EXA.
++
++2009-01-17  Jon Nettleton  <jon.nettleton at gmail.com>
++
++	* libxvmc/viaLowLevel.c: (viaDMAInitTimeStamp):
++	* src/via_accel.c: (viaDisableVQ):
++	* src/via_video.c: (viaVideoFillPixmap):
++
++	viaLowLevel.c and via_accel.c are fixes by 
++	Bartosz Kosiorek.  The via_video.c is a syntax
++	fix by Robert Bridge.  Thanks for the bug fixes.
++
++2009-01-17  Jon Nettleton  <jon.nettleton at gmail.com>
++
++	* configure.ac:
++	* src/via_accel.c: (viaInitAccel), (viaExitAccel),
++	(viaFinishInitAccel):
++	* src/via_driver.c: (VIASetup), (VIASetupDefaultOptions),
++	(VIAPreInit), (VIAWriteMode), (VIAInitialize3DEngine):
++	* src/via_driver.h:
++	* src/via_memory.c: (viaExaFBSave), (VIAFreeLinear),
++	(viaOffScreenLinear), (VIAInitLinear):
++	* src/via_priv.h:
++
++	Patch submitted by Robert Bridge, originally started by
++	Xavier Bachelot, to remove old EXA support.  We are moving
++	forward with the driver and are no longer supporting the
++	old EXA initializations.	
++
++2009-01-14  Jon Nettleton  <jon.nettleton at gmail.com>
++
++	* src/via_accel.c: (viaDisableVQ), (viaInitialize2DEngine),
++	(viaAccelSync):
++
++	According to VIA's code the P4M900 should have the same
++	acceleration initialization registers as the K8M890.  This
++	patch fixes this and gives about a 10x increase in the 
++	video benchmark numbers.
++
++2009-01-14  Jon Nettleton  <jon.nettletno at gmail.com>
++
++	* src/via_accel.c: (viaFlushPCI):
++
++	remove the check for VIA_3D_ENG_BUSY in the idle loop.
++	This causes xorg to chew a bit more cpu with XAA enabled,
++	and it causes the entire X server to dump if EXA is enabled.
++	I should investigate further, but for now I will just remove
++	it.
++
++2009-01-14  Jon Nettleton  <jon.nettleton at gmail.com>
++
++	* src/via_accel.c: (viaFlushPCI):
++
++	Oops forgot to change registers for the vx800 chipset
++	when waiting for Idle in the engines.  I also added
++	back in waiting for the 3d engine to be idle.  I am
++	not sure if this was removed for a reason.
++
++2009-01-07  Jon Nettleton <jon.nettleton at gmail.com>
++
++	* src/via_bios.h:
++	* src/via_crtc.c: (via_xf86crtc_resize), (ViaPreInitCRTCConfig):
++	* src/via_driver.c: (VIAPreInit):
++
++	Temporary hack to fix a bug with newer Xorg and DRI
++	that crashes if CRTC is not setup.  I am adding this
++	because I am working on this part of the code anyways
++	so it won't get lost in bit rot.
++
 +2009-01-06  Jon Nettleton  <jon.nettleton at gmail.com>
 +
 +	* src/via_mode.c: (ViaModesMonitorFixup), (ViaModesAttachHelper):
@@ -622,7 +718,7 @@
 Index: src/via_panel.c
 ===================================================================
 --- src/via_panel.c	(.../tags/release_0_2_903)	(revision 0)
-+++ src/via_panel.c	(.../trunk)	(revision 711)
++++ src/via_panel.c	(.../trunk)	(revision 730)
 @@ -0,0 +1,461 @@
 +/*
 + * Copyright 2007 The Openchrome Project [openchrome.org]
@@ -1087,8 +1183,8 @@
 +}
 Index: src/via_id.h
 ===================================================================
---- src/via_id.h	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_id.h	(.../trunk)	(revision 711)
+--- src/via_id.h	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_id.h	(.../trunk)	(revision 730)
 @@ -37,6 +37,7 @@
      VIA_P4M900,
      VIA_CX700,
@@ -1107,8 +1203,8 @@
   * the CLE266, often labelled Ax and Cx.  The dividing line seems to be
 Index: src/via_video.c
 ===================================================================
---- src/via_video.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_video.c	(.../trunk)	(revision 711)
+--- src/via_video.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_video.c	(.../trunk)	(revision 730)
 @@ -112,11 +112,7 @@
  static int viaSetPortAttribute(ScrnInfoPtr, Atom, INT32, pointer);
  static int viaPutImage(ScrnInfoPtr, short, short, short, short, short, short,
@@ -1199,6 +1295,15 @@
  static void
  viaVideoFillPixmap(ScrnInfoPtr pScrn,
          char *base,
+@@ -662,7 +666,7 @@
+ {
+     int i;
+ 
+-    ErrorF("pitch %lu, depth %d, x %d, y %d, w %d h %d, color 0x%08x\n",
++    ErrorF("pitch %lu, depth %d, x %d, y %d, w %d h %d, color 0x%08lx\n",
+             pitch, depth, x, y, w, h, color);
+ 
+     depth = (depth + 7) >> 3;
 @@ -750,7 +754,6 @@
  
      return 0;
@@ -1284,7 +1389,7 @@
 Index: src/via_lvds.c
 ===================================================================
 --- src/via_lvds.c	(.../tags/release_0_2_903)	(revision 0)
-+++ src/via_lvds.c	(.../trunk)	(revision 711)
++++ src/via_lvds.c	(.../trunk)	(revision 730)
 @@ -0,0 +1,121 @@
 +/* 
 + * Copyright 2007 The Openchrome Project [openchrome.org]
@@ -1409,8 +1514,8 @@
 +}
 Index: src/via_mode.c
 ===================================================================
---- src/via_mode.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_mode.c	(.../trunk)	(revision 711)
+--- src/via_mode.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_mode.c	(.../trunk)	(revision 730)
 @@ -1,4 +1,5 @@
  /*
 + * Copyright 2005-2007 The Openchrome Project [openchrome.org]
@@ -2774,8 +2879,8 @@
 +}
 Index: src/via_mode.h
 ===================================================================
---- src/via_mode.h	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_mode.h	(.../trunk)	(revision 711)
+--- src/via_mode.h	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_mode.h	(.../trunk)	(revision 730)
 @@ -32,7 +32,7 @@
   */
  #define VIA_BW_MIN       74000000 /* > 640x480 at 60Hz@32bpp */
@@ -2831,8 +2936,8 @@
  
 Index: src/via_driver.c
 ===================================================================
---- src/via_driver.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_driver.c	(.../trunk)	(revision 711)
+--- src/via_driver.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_driver.c	(.../trunk)	(revision 730)
 @@ -73,6 +73,7 @@
      return via_pci_device(&bridge_match);
  }
@@ -2865,7 +2970,64 @@
      {-1,           -1,                 RES_UNDEFINED}
  };
  
-@@ -513,34 +517,97 @@
+@@ -189,11 +193,9 @@
+ #endif
+     OPTION_VBEMODES,
+     OPTION_NOACCEL,
+-#ifdef VIA_HAVE_EXA
+     OPTION_ACCELMETHOD,
+     OPTION_EXA_NOCOMPOSITE,
+     OPTION_EXA_SCRATCH_SIZE,
+-#endif
+     OPTION_SWCURSOR,
+     OPTION_SHADOW_FB,
+     OPTION_ROTATE,
+@@ -227,11 +229,9 @@
+ #endif
+     {OPTION_VBEMODES,            "VBEModes",         OPTV_BOOLEAN, {0}, FALSE},
+     {OPTION_NOACCEL,             "NoAccel",          OPTV_BOOLEAN, {0}, FALSE},
+-#ifdef VIA_HAVE_EXA
+     {OPTION_ACCELMETHOD,         "AccelMethod",      OPTV_STRING,  {0}, FALSE},
+     {OPTION_EXA_NOCOMPOSITE,     "ExaNoComposite",   OPTV_BOOLEAN, {0}, FALSE},
+     {OPTION_EXA_SCRATCH_SIZE,    "ExaScratchSize",   OPTV_INTEGER, {0}, FALSE},
+-#endif
+     {OPTION_SWCURSOR,            "SWCursor",         OPTV_BOOLEAN, {0}, FALSE},
+     {OPTION_SHADOW_FB,           "ShadowFB",         OPTV_BOOLEAN, {0}, FALSE},
+     {OPTION_ROTATE,              "Rotate",           OPTV_ANYSTR,  {0}, FALSE},
+@@ -346,7 +346,6 @@
+     NULL
+ };
+ 
+-#ifdef VIA_HAVE_EXA
+ static const char *exaSymbols[] = {
+     "exaGetVersion",
+     "exaDriverInit",
+@@ -356,14 +355,9 @@
+     "exaGetPixmapPitch",
+     "exaGetPixmapOffset",
+     "exaWaitSync",
+-#if (EXA_VERSION_MAJOR >= 2)
+     "exaDriverAlloc",
+-#else
+-    "exaGetVersion",
+-#endif
+     NULL
+ };
+-#endif
+ 
+ static const char *shadowSymbols[] = {
+     "ShadowFBInit",
+@@ -486,9 +480,7 @@
+ #endif
+                           ramdacSymbols,
+                           xaaSymbols,
+-#ifdef VIA_HAVE_EXA
+                           exaSymbols,
+-#endif
+                           shadowSymbols,
+                           vbeSymbols,
+                           i2cSymbols,
+@@ -513,34 +505,97 @@
  static Bool
  VIAGetRec(ScrnInfoPtr pScrn)
  {
@@ -2970,7 +3132,18 @@
      if (((VIARec *) (pScrn->driverPrivate))->pBIOSInfo->TVI2CDev)
          xf86DestroyI2CDevRec((((VIARec *) (pScrn->driverPrivate))->pBIOSInfo->
                                TVI2CDev), TRUE);
-@@ -813,6 +880,8 @@
+@@ -787,10 +842,8 @@
+ 
+     pVia->shadowFB = FALSE;
+     pVia->NoAccel = FALSE;
+-#ifdef VIA_HAVE_EXA
+     pVia->noComposite = FALSE;
+     pVia->exaScratchSize = VIA_SCRATCH_SIZE / 1024;
+-#endif
+     pVia->hwcursor = TRUE;
+     pVia->VQEnable = TRUE;
+     pVia->DRIIrqEnable = TRUE;
+@@ -813,6 +866,8 @@
      pVia->swov.maxHInterp = 600;
      pVia->useLegacyVBE = TRUE;
  
@@ -2979,7 +3152,7 @@
      switch (pVia->Chipset) {
          case VIA_KM400:
              /* IRQ is not broken on KM400A, but testing (pVia->ChipRev < 0x80)
-@@ -820,19 +889,18 @@
+@@ -820,19 +875,18 @@
              pVia->DRIIrqEnable = FALSE;
              break;
          case VIA_K8M800:
@@ -3000,7 +3173,7 @@
              break;
          case VIA_P4M900:
              pVia->VideoEngine = VIDEO_ENGINE_CME;
-@@ -840,16 +908,25 @@
+@@ -840,16 +894,25 @@
              pVia->useLegacyVBE = FALSE;
              /* FIXME: this needs to be tested */
              pVia->dmaXV = FALSE;
@@ -3026,7 +3199,7 @@
      }
  
      return TRUE;
-@@ -875,6 +952,7 @@
+@@ -875,6 +938,7 @@
  
  #ifdef XSERVER_LIBPCIACCESS
      struct pci_device *bridge = via_host_bridge();
@@ -3034,7 +3207,7 @@
  #endif
  
      DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAPreInit\n"));
-@@ -1067,9 +1145,8 @@
+@@ -1067,9 +1131,8 @@
      } else {
          /* Read PCI bus 0, dev 0, function 0, index 0xF6 to get chip revision */
  #ifdef XSERVER_LIBPCIACCESS
@@ -3046,7 +3219,7 @@
  #else
          pVia->ChipRev = pciReadByte(pciTag(0, 0, 0), 0xF6);
  #endif
-@@ -1114,6 +1191,7 @@
+@@ -1114,6 +1177,7 @@
          case VIA_P4M890:
          case VIA_P4M900:
          case VIA_CX700:
@@ -3054,7 +3227,7 @@
  #ifdef XSERVER_LIBPCIACCESS
              pci_device_cfg_read_u8(vgaDevice, &videoRam, 0xA1);
  #else
-@@ -1139,7 +1217,7 @@
+@@ -1139,7 +1203,7 @@
              } else {
                  from = X_DEFAULT;
                  xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
@@ -3063,7 +3236,21 @@
              }
      }
  
-@@ -1241,7 +1319,8 @@
+@@ -1202,7 +1266,6 @@
+                        "Valid options are \"CW\" or \"CCW\".\n");
+         }
+     }
+-#ifdef VIA_HAVE_EXA
+     if (!pVia->NoAccel) {
+         from = X_DEFAULT;
+         if ((s = (char *)xf86GetOptValString(VIAOptions, OPTION_ACCELMETHOD))) {
+@@ -1235,13 +1298,13 @@
+                        pVia->exaScratchSize);
+         }
+     }
+-#endif /* VIA_HAVE_EXA */
+ 
+     /* Use a hardware cursor, unless on secondary or on shadow framebuffer. */
      from = X_DEFAULT;
      if (pVia->IsSecondary || pVia->shadowFB)
          pVia->hwcursor = FALSE;
@@ -3073,7 +3260,7 @@
          pVia->hwcursor = !pVia->hwcursor;
          from = X_CONFIG;
      }
-@@ -1375,45 +1454,24 @@
+@@ -1375,45 +1438,24 @@
      xf86DrvMsg(pScrn->scrnIndex, from, "DVI Center is %s.\n",
                 pBIOSInfo->Center ? "enabled" : "disabled");
  
@@ -3128,11 +3315,14 @@
      /* Force the use of the Panel? */
      pBIOSInfo->ForcePanel = FALSE;
      from = xf86GetOptValBool(VIAOptions, OPTION_FORCEPANEL,
-@@ -1607,18 +1665,18 @@
+@@ -1607,18 +1649,21 @@
          return FALSE;
      }
  
 -    if (pBIOSInfo->PanelActive &&
++	/* Might not belong here temporary fix for bug fix */
++    ViaPreInitCRTCConfig(pScrn);
++
 +    if (!pVia->UseLegacyModeSwitch) {
 +        if (pBIOSInfo->Panel->IsActive)
 +            ViaPanelPreInit(pScrn);
@@ -3156,7 +3346,34 @@
                     "Using VBE to set modes to work around this.\n");
          pVia->useVBEModes = TRUE;
      }
-@@ -1836,7 +1894,7 @@
+@@ -1755,9 +1800,7 @@
+ #endif
+ 
+     if (!pVia->NoAccel) {
+-#ifdef VIA_HAVE_EXA
+         if (pVia->useEXA) {
+-#if (EXA_VERSION_MAJOR >= 2)
+             XF86ModReqInfo req;
+             int errmaj, errmin;
+ 
+@@ -1770,16 +1813,8 @@
+                 VIAFreeRec(pScrn);
+                 return FALSE;
+             }
+-#else
+-
+-            if (!xf86LoadSubModule(pScrn, "exa")) {
+-                VIAFreeRec(pScrn);
+-                return FALSE;
+-            }
+-#endif /* EXA_VERSION */
+             xf86LoaderReqSymLists(exaSymbols, NULL);
+         }
+-#endif /* VIA_HAVE_EXA */
+         if (!xf86LoadSubModule(pScrn, "xaa")) {
+             VIAFreeRec(pScrn);
+             return FALSE;
+@@ -1836,7 +1871,7 @@
  
      /* A patch for APM suspend/resume, when HWCursor has garbage. */
      if (pVia->hwcursor)
@@ -3165,7 +3382,7 @@
  
      /* Restore video status. */
      if (!pVia->IsSecondary)
-@@ -1890,7 +1948,7 @@
+@@ -1890,7 +1925,7 @@
      viaAccelSync(pScrn);
  
      /* A soft reset helps to avoid a 3D hang on VT switch. */
@@ -3174,7 +3391,7 @@
          hwp->writeSeq(hwp, 0x1A, pVia->SavedReg.SR1A | 0x40);
  
  #ifdef XF86DRI
-@@ -1908,7 +1966,7 @@
+@@ -1908,7 +1943,7 @@
          viaSaveVideo(pScrn);
  
      if (pVia->hwcursor)
@@ -3183,7 +3400,7 @@
  
      if (pVia->pVbe && pVia->vbeSR)
          ViaVbeSaveRestore(pScrn, MODE_RESTORE);
-@@ -1918,7 +1976,40 @@
+@@ -1918,7 +1953,40 @@
      vgaHWLock(hwp);
  }
  
@@ -3224,7 +3441,7 @@
  static void
  VIASave(ScrnInfoPtr pScrn)
  {
-@@ -2009,6 +2100,7 @@
+@@ -2009,6 +2077,7 @@
          Regs->CR35 = hwp->readCrtc(hwp, 0x35);
          Regs->CR36 = hwp->readCrtc(hwp, 0x36);
  
@@ -3232,7 +3449,7 @@
          Regs->CR49 = hwp->readCrtc(hwp, 0x49);
  
          DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TVSave...\n"));
-@@ -2019,15 +2111,19 @@
+@@ -2019,15 +2088,19 @@
          for (i = 0; i < 68; i++)
              Regs->CRTCRegs[i] = hwp->readCrtc(hwp, i + 0x50);
  
@@ -3259,7 +3476,7 @@
          vgaHWProtect(pScrn, FALSE);
      }
  }
-@@ -2055,6 +2151,8 @@
+@@ -2055,6 +2128,8 @@
      hwp->writeCrtc(hwp, 0x6B, 0x00);
      hwp->writeCrtc(hwp, 0x6C, 0x00);
  
@@ -3268,7 +3485,7 @@
      if (pBIOSInfo->TVI2CDev)
          ViaTVRestore(pScrn);
  
-@@ -2118,22 +2216,27 @@
+@@ -2118,22 +2193,27 @@
      hwp->writeCrtc(hwp, 0x35, Regs->CR35);
      hwp->writeCrtc(hwp, 0x36, Regs->CR36);
  
@@ -3306,7 +3523,7 @@
          ViaLCDPower(pScrn, TRUE);
  
      ViaDisablePrimaryFIFO(pScrn);
-@@ -2145,26 +2248,61 @@
+@@ -2145,26 +2225,61 @@
      vgaHWProtect(pScrn, FALSE);
  }
  
@@ -3376,7 +3593,7 @@
      xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
                 "mapping MMIO @ 0x%lx with size 0x%x\n",
                 pVia->MmioBase, VIA_MMIO_REGSIZE);
-@@ -2196,8 +2334,7 @@
+@@ -2196,8 +2311,7 @@
      err = pci_device_map_range(pVia->PciInfo,
                                 pVia->MmioBase + VIA_MMIO_BLTBASE,
                                 VIA_MMIO_BLTSIZE,
@@ -3386,7 +3603,7 @@
                                 (void **)&pVia->BltBase);
  
      if (err) {
-@@ -2215,7 +2352,7 @@
+@@ -2215,7 +2329,7 @@
  
      if (!pVia->MapBase || !pVia->BltBase) {
          xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
@@ -3395,7 +3612,7 @@
          return FALSE;
      }
  
-@@ -2238,14 +2375,15 @@
+@@ -2238,14 +2352,15 @@
          hwp->writeMiscOut(hwp, val | 0x01);
  
          /* Unlock extended IO space. */
@@ -3417,7 +3634,7 @@
          vgaHWGetIOBase(hwp);
      }
  
-@@ -2257,8 +2395,12 @@
+@@ -2257,8 +2372,12 @@
  VIAMapFB(ScrnInfoPtr pScrn)
  {
      VIAPtr pVia = VIAPTR(pScrn);
@@ -3430,7 +3647,7 @@
  #endif
  
      DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAMapFB\n"));
-@@ -2298,7 +2440,8 @@
+@@ -2298,7 +2417,8 @@
  #ifdef XSERVER_LIBPCIACCESS
          err = pci_device_map_range(pVia->PciInfo, pVia->FrameBufferBase,
                                     pVia->videoRambytes,
@@ -3440,7 +3657,7 @@
                                     (void **)&pVia->FBBase);
          if (err) {
              xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-@@ -2346,8 +2489,7 @@
+@@ -2346,8 +2466,7 @@
  
      DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAUnmapMem\n"));
  
@@ -3450,7 +3667,7 @@
  
  #ifdef XSERVER_LIBPCIACCESS
      if (pVia->MapBase)
-@@ -2431,75 +2573,65 @@
+@@ -2431,75 +2550,65 @@
  {
      vgaHWPtr hwp = VGAHWPTR(pScrn);
      VIAPtr pVia = VIAPTR(pScrn);
@@ -3565,7 +3782,7 @@
          for (i = 0; i < numColors; i++) {
              index = indices[i];
              hwp->writeDacWriteAddr(hwp, index);
-@@ -2507,6 +2639,23 @@
+@@ -2507,6 +2616,23 @@
              hwp->writeDacData(hwp, colors[index].green);
              hwp->writeDacData(hwp, colors[index].blue);
          }
@@ -3589,7 +3806,7 @@
      }
  }
  
-@@ -2543,6 +2692,10 @@
+@@ -2543,6 +2669,10 @@
          }
      } else {
          vgaHWBlankScreen(pScrn, FALSE);
@@ -3600,7 +3817,7 @@
          if (!VIAWriteMode(pScrn, pScrn->currentMode)) {
              vgaHWBlankScreen(pScrn, TRUE);
              return FALSE;
-@@ -2623,7 +2776,8 @@
+@@ -2623,7 +2753,8 @@
      DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "- SW cursor set up\n"));
  
      if (pVia->hwcursor) {
@@ -3610,7 +3827,7 @@
              xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                         "Hardware cursor initialization failed\n");
          }
-@@ -2787,6 +2941,7 @@
+@@ -2787,6 +2918,7 @@
  VIAWriteMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
  {
      VIAPtr pVia = VIAPTR(pScrn);
@@ -3618,7 +3835,7 @@
  
      DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAWriteMode\n"));
  
-@@ -2799,10 +2954,14 @@
+@@ -2799,10 +2931,14 @@
          if (!vgaHWInit(pScrn, mode))
              return FALSE;
  
@@ -3637,7 +3854,7 @@
  
      } else {
  
-@@ -2813,14 +2972,13 @@
+@@ -2813,22 +2949,19 @@
           * to detect when the display is using the secondary head.
           * TODO: This should be enabled for other chipsets as well.
           */
@@ -3655,7 +3872,15 @@
          }
      }
  
-@@ -2856,14 +3014,15 @@
+     /* Enable the graphics engine. */
+     if (!pVia->NoAccel) {
+-#if defined(XF86DRI) || defined(VIA_HAVE_EXA)
+         VIAInitialize3DEngine(pScrn);
+-#endif
+         viaInitialize2DEngine(pScrn);
+     }
+ 
+@@ -2856,14 +2989,15 @@
          viaAccelSync(pScrn);
  
          /* A soft reset avoids a 3D hang after X restart. */
@@ -3674,7 +3899,7 @@
          }
  
          if (pVia->VQEnable)
-@@ -2875,10 +3034,6 @@
+@@ -2875,10 +3009,6 @@
  #endif
  
      viaExitAccel(pScreen);
@@ -3685,7 +3910,7 @@
      if (pVia->ShadowPtr) {
          xfree(pVia->ShadowPtr);
          pVia->ShadowPtr = NULL;
-@@ -2936,24 +3091,17 @@
+@@ -2936,24 +3066,17 @@
      if (pVia->pVbe) {
          ViaVbeAdjustFrame(scrnIndex, x, y, flags);
      } else {
@@ -3720,7 +3945,7 @@
          }
      }
  
-@@ -3003,49 +3151,57 @@
+@@ -3003,52 +3126,59 @@
      vgaHWPtr hwp = VGAHWPTR(pScrn);
      VIAPtr pVia = VIAPTR(pScrn);
      VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
@@ -3809,12 +4034,20 @@
 +
  }
  
- #if defined(XF86DRI) || defined(VIA_HAVE_EXA)
+-#if defined(XF86DRI) || defined(VIA_HAVE_EXA)
+ void
+ VIAInitialize3DEngine(ScrnInfoPtr pScrn)
+ {
+@@ -3111,4 +3241,3 @@
+     VIASETREG(VIA_REG_TRANSPACE, 0x11000000);
+     VIASETREG(VIA_REG_TRANSPACE, 0x20000000);
+ }
+-#endif
 Index: src/via_crtc.c
 ===================================================================
 --- src/via_crtc.c	(.../tags/release_0_2_903)	(revision 0)
-+++ src/via_crtc.c	(.../trunk)	(revision 711)
-@@ -0,0 +1,637 @@
++++ src/via_crtc.c	(.../trunk)	(revision 730)
+@@ -0,0 +1,659 @@
 +/*
 + * Copyright 2005-2007 The Openchrome Project [openchrome.org]
 + * Copyright 2004-2005 The Unichrome Project  [unichrome.sf.net]
@@ -3852,6 +4085,8 @@
 +
 +#include "via_mode.h"
 +
++#include <xorg/xf86Crtc.h>
++
 +static void
 +ViaCRTCSetGraphicsRegisters(ScrnInfoPtr pScrn)
 +{
@@ -3890,6 +4125,26 @@
 +    hwp->writeAttr(hwp, 0x14, 0x00);
 +}
 +
++static Bool
++via_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
++{
++    scrn->virtualX = width;
++    scrn->virtualY = height;
++    return TRUE;
++}
++
++static const
++xf86CrtcConfigFuncsRec via_xf86crtc_config_funcs = {
++    via_xf86crtc_resize
++};
++
++void 
++ViaPreInitCRTCConfig(ScrnInfoPtr pScrn)
++{
++     xf86CrtcConfigInit (pScrn, &via_xf86crtc_config_funcs);
++}
++
++
 +void
 +ViaCRTCInit(ScrnInfoPtr pScrn)
 +{
@@ -4454,8 +4709,8 @@
 +}
 Index: src/via_swov.c
 ===================================================================
---- src/via_swov.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_swov.c	(.../trunk)	(revision 711)
+--- src/via_swov.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_swov.c	(.../trunk)	(revision 730)
 @@ -95,7 +95,8 @@
      pdwState = (CARD32 volatile *)(pVia->VidMapBase + (HQV_CONTROL + proReg));
  
@@ -4593,8 +4848,8 @@
  
 Index: src/via_driver.h
 ===================================================================
---- src/via_driver.h	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_driver.h	(.../trunk)	(revision 711)
+--- src/via_driver.h	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_driver.h	(.../trunk)	(revision 730)
 @@ -65,6 +65,7 @@
  #include "via_swov.h"
  #include "via_dmabuffer.h"
@@ -4603,7 +4858,23 @@
  
  #ifdef XSERVER_LIBPCIACCESS
  #include <pciaccess.h>
-@@ -101,14 +102,9 @@
+@@ -78,7 +79,6 @@
+ #include "via_dri.h"
+ #endif
+ 
+-#ifdef VIA_HAVE_EXA
+ #include "exa.h"
+ #define VIA_AGP_UPL_SIZE    (1024*128)
+ #define VIA_DMA_DL_SIZE     (1024*128)
+@@ -92,7 +92,6 @@
+ #define VIA_MIN_UPLOAD 4000
+ #define VIA_MIN_TEX_UPLOAD 200
+ #define VIA_MIN_DOWNLOAD 200
+-#endif
+ 
+ #define AGP_PAGE_SIZE 4096
+ #define AGP_PAGES 8192
+@@ -101,14 +100,9 @@
  #define DRIVER_NAME     "openchrome"
  #define VERSION_MAJOR   0
  #define VERSION_MINOR   2
@@ -4618,7 +4889,7 @@
  #define VIA_VQ_SIZE             (256 * 1024)
  
  typedef struct {
-@@ -211,7 +207,6 @@
+@@ -211,7 +205,6 @@
      int                 FBFreeEnd;
      int                 driSize;
      int                 maxDriSize;
@@ -4626,7 +4897,7 @@
      int                 VQStart;
      int                 VQEnd;
  
-@@ -230,7 +225,7 @@
+@@ -230,7 +223,7 @@
  
      /* Here are all the Options */
      Bool                VQEnable;
@@ -4635,15 +4906,24 @@
      Bool                NoAccel;
      Bool                shadowFB;
      int                 rotate;
-@@ -276,6 +271,7 @@
+@@ -276,7 +269,7 @@
      CARD32              lastMarkerRead;
      Bool                agpDMA;
      Bool                nPOT[VIA_NUM_TEXUNITS];
+-#ifdef VIA_HAVE_EXA
 +    const unsigned     *TwodRegs;
- #ifdef VIA_HAVE_EXA
      ExaDriverPtr        exaDriverPtr;
      ExaOffscreenArea   *exa_scratch;
-@@ -354,11 +350,32 @@
+     unsigned int        exa_scratch_next;
+@@ -298,7 +291,6 @@
+     char *              texAddr;
+     char *              dBounce;
+ #endif
+-#endif
+ 
+     /* BIOS Info Ptr */
+     VIABIOSInfoPtr      pBIOSInfo;
+@@ -354,11 +346,32 @@
      Bool                dmaXV;
  
      CARD8               ActiveDevice;	/* Option */
@@ -4679,7 +4959,7 @@
      /* Video */
      int                 VideoEngine;
      swovRec		swov;
-@@ -375,12 +392,21 @@
+@@ -375,12 +388,21 @@
      
      ViaSharedPtr	sharedData;
      Bool                useDmaBlit;
@@ -4701,8 +4981,13 @@
  #endif /* HAVE_DEBUG */
  } VIARec, *VIAPtr;
  
-@@ -407,11 +433,14 @@
- #endif 
+@@ -402,16 +424,17 @@
+ } VIAEntRec, *VIAEntPtr;
+ 
+ /* Prototypes. */
+-#if defined(XF86DRI) || defined(VIA_HAVE_EXA)
+ void VIAInitialize3DEngine(ScrnInfoPtr pScrn);
+-#endif 
  
  /* In via_cursor.c. */
 -Bool VIAHWCursorInit(ScreenPtr pScreen);
@@ -4723,8 +5008,8 @@
  Bool viaInitAccel(ScreenPtr);
 Index: src/via_bios.h
 ===================================================================
---- src/via_bios.h	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_bios.h	(.../trunk)	(revision 711)
+--- src/via_bios.h	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_bios.h	(.../trunk)	(revision 730)
 @@ -34,6 +34,14 @@
  #define     VIA_PANEL14X10                  5
  #define     VIA_PANEL16X12                  6
@@ -4833,7 +5118,7 @@
  void ViaLCDPower(ScrnInfoPtr pScrn, Bool On);
  void ViaTVPower(ScrnInfoPtr pScrn, Bool On);
  void ViaTVSave(ScrnInfoPtr pScrn);
-@@ -167,7 +222,35 @@
+@@ -167,7 +222,36 @@
  #ifdef HAVE_DEBUG
  void ViaTVPrintRegs(ScrnInfoPtr pScrn);
  #endif
@@ -4842,6 +5127,7 @@
 +void ViaModeSet(ScrnInfoPtr pScrn, DisplayModePtr mode);
  
 +/* via_crtc.c */
++void ViaPreInitCRTCConfig(ScrnInfoPtr pScrn);
 +void ViaCRTCInit(ScrnInfoPtr pScrn);
 +void ViaFirstCRTCSetStartingAddress(ScrnInfoPtr pSCrn, int x, int y);
 +void ViaFirstCRTCSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
@@ -4869,7 +5155,7 @@
  /* in via_bandwidth.c */
  void ViaSetPrimaryFIFO(ScrnInfoPtr pScrn, DisplayModePtr mode);
  void ViaSetSecondaryFIFO(ScrnInfoPtr pScrn, DisplayModePtr mode);
-@@ -181,4 +264,13 @@
+@@ -181,4 +265,13 @@
  I2CDevPtr ViaCH7xxxDetect(ScrnInfoPtr pScrn, I2CBusPtr pBus, CARD8 Address);
  void ViaCH7xxxInit(ScrnInfoPtr pScrn);
  
@@ -4885,8 +5171,8 @@
  #endif /* _VIA_BIOS_H_ */
 Index: src/via_bandwidth.c
 ===================================================================
---- src/via_bandwidth.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_bandwidth.c	(.../trunk)	(revision 711)
+--- src/via_bandwidth.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_bandwidth.c	(.../trunk)	(revision 730)
 @@ -234,6 +234,12 @@
              hwp->writeSeq(hwp, 0x18, 0x66);
              hwp->writeSeq(hwp, 0x22, 0x1F);
@@ -4927,7 +5213,7 @@
 Index: src/via_display.c
 ===================================================================
 --- src/via_display.c	(.../tags/release_0_2_903)	(revision 0)
-+++ src/via_display.c	(.../trunk)	(revision 711)
++++ src/via_display.c	(.../trunk)	(revision 730)
 @@ -0,0 +1,128 @@
 +#ifdef HAVE_CONFIG_H
 +#include "config.h"
@@ -5059,8 +5345,8 @@
 +}
 Index: src/via_regs.h
 ===================================================================
---- src/via_regs.h	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_regs.h	(.../trunk)	(revision 711)
+--- src/via_regs.h	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_regs.h	(.../trunk)	(revision 730)
 @@ -42,7 +42,7 @@
  #define VIA_MMIO_REGBASE        0x0
  #define VIA_MMIO_VGABASE        0x8000
@@ -5223,8 +5509,8 @@
  #define VIA_GEC_NOOP            0x00000000
 Index: src/via_accel.c
 ===================================================================
---- src/via_accel.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_accel.c	(.../trunk)	(revision 711)
+--- src/via_accel.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_accel.c	(.../trunk)	(revision 730)
 @@ -1,5 +1,5 @@
  /*
 - * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
@@ -5232,7 +5518,7 @@
   * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
   * Copyright 2006 Thomas Hellström. All Rights Reserved.
   *
-@@ -52,6 +52,93 @@
+@@ -52,6 +52,95 @@
  #define VIAACCELCOPYROP(vRop) (XAACopyROP[vRop] << 24)
  #endif
  
@@ -5244,6 +5530,7 @@
 +	DSTPOS,
 +	LINE_K1K2,
 +	LINE_XY,
++	LINE_ERROR,
 +	DIMENSION,
 +	PATADDR,
 +	FGCOLOR,
@@ -5253,7 +5540,6 @@
 +	CLIPTL,
 +	CLIPBR,
 +	OFFSET,
-+	LINE_ERROR,
 +	KEYCONTROL,
 +	SRCBASE,
 +	DSTBASE,
@@ -5274,6 +5560,7 @@
 +    [DSTPOS]            = VIA_REG_DSTPOS,
 +    [LINE_K1K2]         = VIA_REG_LINE_K1K2,
 +    [LINE_XY]           = VIA_REG_LINE_XY,
++    [LINE_ERROR]        = VIA_REG_LINE_ERROR,
 +    [DIMENSION]         = VIA_REG_DIMENSION,
 +    [PATADDR]           = VIA_REG_PATADDR,
 +    [FGCOLOR]           = VIA_REG_FGCOLOR,
@@ -5302,6 +5589,7 @@
 +    [DSTPOS]            = VIA_REG_DSTPOS_M1,
 +    [LINE_K1K2]         = VIA_REG_LINE_K1K2_M1,
 +    [LINE_XY]           = VIA_REG_LINE_XY_M1,
++    [LINE_ERROR]        = VIA_REG_LINE_ERROR_M1,
 +    [DIMENSION]         = VIA_REG_DIMENSION_M1,
 +    [PATADDR]           = VIA_REG_PATADDR_M1,
 +    [FGCOLOR]           = VIA_REG_FGCOLOR_M1,
@@ -5326,25 +5614,52 @@
  /*
   * Use PCI MMIO to flush the command buffer when AGP DMA is not available.
   */
-@@ -106,7 +193,8 @@
+@@ -104,15 +193,26 @@
+                      * for an unacceptable amount of time in VIASETREG while
+                      * other high priority interrupts may be pending.
                       */
-                     if (pVia->Chipset != VIA_P4M890 &&
-                         pVia->Chipset != VIA_K8M890 &&
+-                    if (pVia->Chipset != VIA_P4M890 &&
+-                        pVia->Chipset != VIA_K8M890 &&
 -                        pVia->Chipset != VIA_P4M900) {
-+                        pVia->Chipset != VIA_P4M900 &&
-+                        pVia->Chipset != VIA_VX800) {
-                         while (!(VIAGETREG(VIA_REG_STATUS) & VIA_VR_QUEUE_BUSY)
-                                && (loop++ < MAXLOOP)) ;
+-                        while (!(VIAGETREG(VIA_REG_STATUS) & VIA_VR_QUEUE_BUSY)
+-                               && (loop++ < MAXLOOP)) ;
++					switch (pVia->Chipset) {
++					    case VIA_VX800:
++							while ((VIAGETREG(VIA_REG_STATUS) &
++							       (VIA_CMD_RGTR_BUSY_H5 | VIA_2D_ENG_BUSY_H5))
++									&& (loop++ < MAXLOOP)) ;
++					    break;
++					    case VIA_K8M890:
++					    case VIA_P4M890:
++					    case VIA_P4M900:
++                    		while ((VIAGETREG(VIA_REG_STATUS) &
++                            	   (VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY))
++                            		&& (loop++ < MAXLOOP)) ;
++					    break;
++						default:
++                        	while (!(VIAGETREG(VIA_REG_STATUS) & VIA_VR_QUEUE_BUSY)
++                                   && (loop++ < MAXLOOP)) ;
++                    		while ((VIAGETREG(VIA_REG_STATUS) &
++                            	   (VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY))
++                                   && (loop++ < MAXLOOP)) ;
                      }
-@@ -316,6 +404,7 @@
+-                    while ((VIAGETREG(VIA_REG_STATUS) &
+-                            (VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY))
+-                           && (loop++ < MAXLOOP)) ;
+                 }
+                 offset = (*bp++ & 0x0FFFFFFF) << 2;
+                 value = *bp++;
+@@ -314,8 +414,8 @@
+     VIAPtr pVia = VIAPTR(pScrn);
+ 
      switch (pVia->Chipset) {
-         case VIA_P4M890:
+-        case VIA_P4M890:
          case VIA_K8M890:
-+        case VIA_VX800:
++        case VIA_P4M900:
              VIASETREG(0x41c, 0x00100000);
              VIASETREG(0x420, 0x74301000);
              break;
-@@ -367,11 +456,27 @@
+@@ -367,12 +467,29 @@
      int i;
  
      /* Initialize the 2D engine registers to reset the 2D engine. */
@@ -5371,9 +5686,19 @@
 +
 +    switch (pVia->Chipset) {
          case VIA_K8M890:
++        case VIA_P4M900:
              viaInitPCIe(pVia);
              break;
-@@ -408,6 +513,11 @@
+         default:
+@@ -383,6 +500,7 @@
+     if (pVia->VQStart != 0) {
+         switch (pVia->Chipset) {
+             case VIA_K8M890:
++            case VIA_P4M900:
+                 viaEnablePCIeVQ(pVia);
+                 break;
+             default:
+@@ -408,11 +526,16 @@
      mem_barrier();
  
      switch (pVia->Chipset) {
@@ -5385,7 +5710,13 @@
          case VIA_P4M890:
          case VIA_K8M890:
          case VIA_P4M900:
-@@ -455,18 +565,40 @@
+             while ((VIAGETREG(VIA_REG_STATUS) &
+-                    (VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY))
++                    (VIA_CMD_RGTR_BUSY | VIA_2D_ENG_BUSY | VIA_3D_ENG_BUSY))
+                    && (loop++ < MAXLOOP)) ;
+             break;
+         default:
+@@ -455,18 +578,40 @@
  }
  
  /*
@@ -5429,7 +5760,7 @@
      } else {
          tdc->cmd &= ~VIA_GEC_CLIP_ENABLE;
      }
-@@ -477,18 +609,20 @@
+@@ -477,18 +622,20 @@
   * Emit a solid blit operation to the command buffer. 
   */
  static void
@@ -5458,7 +5789,7 @@
  }
  
  /*
-@@ -534,16 +668,19 @@
+@@ -534,16 +681,19 @@
   * Emit transparency state and color to the command buffer.
   */
  static void
@@ -5483,7 +5814,7 @@
      }
  }
  
-@@ -551,11 +688,13 @@
+@@ -551,11 +701,13 @@
   * Emit a copy blit operation to the command buffer.
   */
  static void
@@ -5498,7 +5829,7 @@
      if (cmd & VIA_GEC_DECY) {
          ys += h - 1;
          yd += h - 1;
-@@ -567,15 +706,14 @@
+@@ -567,15 +719,14 @@
      }
  
      BEGIN_RING(16);
@@ -5522,7 +5853,7 @@
  }
  
  /*
-@@ -603,7 +741,7 @@
+@@ -603,7 +754,7 @@
          cmd |= VIA_GEC_DECY;
  
      tdc->cmd = cmd;
@@ -5531,7 +5862,7 @@
                                trans_color, FALSE);
  }
  
-@@ -620,8 +758,8 @@
+@@ -620,8 +771,8 @@
      if (!w || !h)
          return;
  
@@ -5542,7 +5873,7 @@
                         pScrn->fbOffset + pVia->Bpl * y1,
                         pScrn->fbOffset + pVia->Bpl * sub,
                         tdc->mode, pVia->Bpl, pVia->Bpl, tdc->cmd);
-@@ -641,7 +779,7 @@
+@@ -641,7 +792,7 @@
  
      tdc->cmd = VIA_GEC_BLT | VIA_GEC_FIXCOLOR_PAT | VIAACCELPATTERNROP(rop);
      tdc->fgColor = color;
@@ -5551,7 +5882,7 @@
  }
  
  static void
-@@ -656,8 +794,8 @@
+@@ -656,8 +807,8 @@
      if (!w || !h)
          return;
  
@@ -5562,7 +5893,7 @@
                          pScrn->fbOffset + pVia->Bpl * sub, tdc->mode, pVia->Bpl,
                          tdc->fgColor, tdc->cmd);
      ADVANCE_RING;
-@@ -697,7 +835,7 @@
+@@ -697,7 +848,7 @@
      tdc->bgColor = bg;
      tdc->pattern0 = pattern0;
      tdc->pattern1 = pattern1;
@@ -5571,7 +5902,7 @@
  }
  
  static void
-@@ -716,21 +854,21 @@
+@@ -716,21 +867,21 @@
          return;
  
      patOffset = ((patOffy & 0x7) << 29) | ((patOffx & 0x7) << 26);
@@ -5605,7 +5936,7 @@
      ADVANCE_RING;
  }
  
-@@ -745,7 +883,7 @@
+@@ -745,7 +896,7 @@
  
      tdc->cmd = VIA_GEC_BLT | VIAACCELPATTERNROP(rop);
      tdc->patternAddr = (patternx * pVia->Bpp + patterny * pVia->Bpl);
@@ -5614,7 +5945,7 @@
                                trans_color, FALSE);
  }
  
-@@ -766,17 +904,17 @@
+@@ -766,17 +917,17 @@
  
      patAddr = (tdc->patternAddr >> 3) |
              ((patOffy & 0x7) << 29) | ((patOffx & 0x7) << 26);
@@ -5640,7 +5971,7 @@
      ADVANCE_RING;
  }
  
-@@ -810,7 +948,7 @@
+@@ -810,7 +961,7 @@
  
      ADVANCE_RING;
  
@@ -5649,7 +5980,7 @@
  }
  
  static void
-@@ -829,11 +967,11 @@
+@@ -829,11 +980,11 @@
                                  (y + h - 1));
      }
  
@@ -5665,7 +5996,7 @@
                         pScrn->fbOffset + sub * pVia->Bpl, tdc->mode,
                         pVia->Bpl, pVia->Bpl, tdc->cmd);
  
-@@ -852,7 +990,7 @@
+@@ -852,7 +1003,7 @@
  
      tdc->cmd = VIA_GEC_BLT | VIA_GEC_SRC_SYS | VIAACCELCOPYROP(rop);
      ADVANCE_RING;
@@ -5674,7 +6005,7 @@
                                trans_color, FALSE);
  }
  
-@@ -871,8 +1009,8 @@
+@@ -871,8 +1022,8 @@
                                  (y + h - 1));
      }
  
@@ -5685,7 +6016,7 @@
                         pScrn->fbOffset + pVia->Bpl * sub, tdc->mode,
                         pVia->Bpl, pVia->Bpl, tdc->cmd);
  
-@@ -889,15 +1027,15 @@
+@@ -889,15 +1040,15 @@
  
      RING_VARS;
  
@@ -5705,7 +6036,7 @@
  }
  
  static void
-@@ -912,7 +1050,7 @@
+@@ -912,7 +1063,7 @@
  
      RING_VARS;
  
@@ -5714,7 +6045,7 @@
      cmd = tdc->cmd | VIA_GEC_LINE;
  
      dx = x2 - x1;
-@@ -944,8 +1082,8 @@
+@@ -944,8 +1095,8 @@
      y2 -= sub;
  
      BEGIN_RING(14);
@@ -5725,7 +6056,7 @@
  
      /*
       * major = 2*dmaj, minor = 2*dmin, err = -dmaj - ((bias >> octant) & 1) 
-@@ -953,14 +1091,14 @@
+@@ -953,14 +1104,14 @@
       * Error Term = (StartX<EndX) ? (2*dmin - dmax - 1) : (2*(dmin - dmax)) 
       */
  
@@ -5745,7 +6076,7 @@
      ADVANCE_RING;
  }
  
-@@ -974,21 +1112,21 @@
+@@ -974,21 +1125,21 @@
  
      RING_VARS;
  
@@ -5776,7 +6107,7 @@
      }
      ADVANCE_RING;
  }
-@@ -1005,7 +1143,7 @@
+@@ -1005,7 +1156,7 @@
  
      RING_VARS;
  
@@ -5785,7 +6116,7 @@
      cmd = VIA_GEC_LINE | VIA_GEC_FIXCOLOR_PAT | VIAACCELPATTERNROP(rop);
  
      if (bg == -1) {
-@@ -1031,10 +1169,10 @@
+@@ -1031,10 +1182,10 @@
      tdc->dashed = TRUE;
  
      BEGIN_RING(8);
@@ -5800,18 +6131,18 @@
  }
  
  static void
-@@ -1129,8 +1267,8 @@
+@@ -1129,8 +1280,8 @@
                                 CPU_TRANSFER_PAD_DWORD |
                                 SCANLINE_PAD_DWORD |
                                 BIT_ORDER_IN_BYTE_MSBFIRST |
 -                               LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE |
 -                               SYNC_AFTER_IMAGE_WRITE | 0);
 +                               LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0);
-+                               //SYNC_AFTER_IMAGE_WRITE | 0);
++                               // SYNC_AFTER_IMAGE_WRITE | 0);
  
      /*
       * Most Unichromes are much faster using processor-to-framebuffer writes
-@@ -1140,14 +1278,19 @@
+@@ -1140,14 +1291,19 @@
  
      if (pVia->Chipset != VIA_K8M800 &&
          pVia->Chipset != VIA_K8M890 &&
@@ -5833,7 +6164,7 @@
      return XAAInit(pScreen, xaaptr);
  
  }
-@@ -1173,8 +1316,8 @@
+@@ -1173,8 +1329,8 @@
  
      if (pVia->agpDMA) {
          BEGIN_RING(2);
@@ -5844,7 +6175,15 @@
                              VIA_GEM_32bpp, 4, pVia->curMarker,
                              (0xF0 << 24) | VIA_GEC_BLT | VIA_GEC_FIXCOLOR_PAT);
          ADVANCE_RING;
-@@ -1259,7 +1402,7 @@
+@@ -1238,7 +1394,6 @@
+ }
+ 
+ 
+-#ifdef VIA_HAVE_EXA
+ /*
+  * Exa functions. It is assumed that EXA does not exceed the blitter limits.
+  */
+@@ -1259,7 +1414,7 @@
  
      if (!viaAccelPlaneMaskHelper(tdc, planeMask))
          return FALSE;
@@ -5853,7 +6192,7 @@
  
      tdc->cmd = VIA_GEC_BLT | VIA_GEC_FIXCOLOR_PAT | VIAACCELPATTERNROP(alu);
  
-@@ -1283,7 +1426,7 @@
+@@ -1283,7 +1438,7 @@
      dstPitch = exaGetPixmapPitch(pPixmap);
      dstOffset = exaGetPixmapOffset(pPixmap);
  
@@ -5862,7 +6201,7 @@
                          tdc->mode, dstPitch, tdc->fgColor, tdc->cmd);
      ADVANCE_RING;
  }
-@@ -1325,7 +1468,7 @@
+@@ -1325,7 +1480,7 @@
  
      if (!viaAccelPlaneMaskHelper(tdc, planeMask))
          return FALSE;
@@ -5871,7 +6210,7 @@
  
      return TRUE;
  }
-@@ -1345,7 +1488,7 @@
+@@ -1345,7 +1500,7 @@
      if (!width || !height)
          return;
  
@@ -5880,7 +6219,106 @@
                         srcOffset, dstOffset, tdc->mode, tdc->srcPitch,
                         exaGetPixmapPitch(pDstPixmap), tdc->cmd);
      ADVANCE_RING;
-@@ -2273,16 +2416,14 @@
+@@ -1905,6 +2060,9 @@
+         pMaskPicture->pDrawable->height < VIA_MIN_COMPOSITE)
+         return FALSE;
+ 
++    if (pMaskPicture->repeat != RepeatNormal)
++        return FALSE;
++
+     if (pMaskPicture && pMaskPicture->componentAlpha) {
+ #ifdef VIA_DEBUG_COMPOSITE
+         ErrorF("Component Alpha operation\n");
+@@ -2110,7 +2268,6 @@
+                   width, height);
+ }
+ 
+-#if (EXA_VERSION_MAJOR >= 2)
+ 
+ static ExaDriverPtr
+ viaInitExa(ScreenPtr pScreen)
+@@ -2185,80 +2342,8 @@
+     return pExa;
+ }
+ 
+-#else
+ 
+ /*
+- * Initialize EXA. Alignments are 2D engine constraints.
+- */
+-static ExaDriverPtr
+-viaInitExa(ScreenPtr pScreen)
+-{
+-    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+-    VIAPtr pVia = VIAPTR(pScrn);
+-    ExaDriverPtr pExa = (ExaDriverPtr) xnfcalloc(sizeof(ExaDriverRec), 1);
+-
+-    if (!pExa)
+-        return NULL;
+-
+-    pExa->card.memoryBase = pVia->FBBase;
+-    pExa->card.memorySize = pVia->FBFreeEnd;
+-    pExa->card.offScreenBase = pScrn->virtualY * pVia->Bpl;
+-    pExa->card.pixmapOffsetAlign = 32;
+-    pExa->card.pixmapPitchAlign = 16;
+-    pExa->card.flags = EXA_OFFSCREEN_PIXMAPS |
+-            (pVia->nPOT[1] ? 0 : EXA_OFFSCREEN_ALIGN_POT);
+-    pExa->card.maxX = 2047;
+-    pExa->card.maxY = 2047;
+-
+-    pExa->accel.WaitMarker = viaAccelWaitMarker;
+-    pExa->accel.MarkSync = viaAccelMarkSync;
+-    pExa->accel.PrepareSolid = viaExaPrepareSolid;
+-    pExa->accel.Solid = viaExaSolid;
+-    pExa->accel.DoneSolid = viaExaDoneSolidCopy;
+-    pExa->accel.PrepareCopy = viaExaPrepareCopy;
+-    pExa->accel.Copy = viaExaCopy;
+-    pExa->accel.DoneCopy = viaExaDoneSolidCopy;
+-
+-#ifdef XF86DRI
+-    if (pVia->directRenderingEnabled) {
+-#ifdef linux
+-        if ((pVia->drmVerMajor > 2) ||
+-            ((pVia->drmVerMajor == 2) && (pVia->drmVerMinor >= 7))) {
+-            if (pVia->Chipset != VIA_K8M800)
+-                pExa->accel.UploadToScreen = viaExaUploadToScreen;
+-            pExa->accel.DownloadFromScreen = viaExaDownloadFromScreen;
+-        }
+-#endif /* linux */
+-        if (pVia->Chipset == VIA_K8M800)
+-            pExa->accel.UploadToScreen = viaExaTexUploadToScreen;
+-    }
+-#endif /* XF86DRI */
+-
+-    pExa->accel.UploadToScratch = viaExaUploadToScratch;
+-
+-    if (!pVia->noComposite) {
+-        pExa->accel.CheckComposite = viaExaCheckComposite;
+-        pExa->accel.PrepareComposite = viaExaPrepareComposite;
+-        pExa->accel.Composite = viaExaComposite;
+-        pExa->accel.DoneComposite = viaExaDoneSolidCopy;
+-    } else {
+-        xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+-                   "[EXA] Disabling EXA accelerated composite.\n");
+-    }
+-
+-    if (!exaDriverInit(pScreen, pExa)) {
+-        xfree(pExa);
+-        return NULL;
+-    }
+-
+-    viaInit3DState(&pVia->v3d);
+-    return pExa;
+-}
+-
+-#endif /* EXA_VERSION_MAJOR */
+-#endif /* VIA_HAVE_EXA */
+-
+-/*
+  * Acceleration initializatuon function. Sets up offscreen memory disposition,
+  * and initializes engines and acceleration method.
+  */
+@@ -2273,16 +2358,14 @@
  
      pVia->VQStart = 0;
      if (((pVia->FBFreeEnd - pVia->FBFreeStart) >= VIA_VQ_SIZE)
@@ -5903,7 +6341,68 @@
  
      viaInitialize2DEngine(pScrn);
  
-@@ -2554,8 +2695,8 @@
+@@ -2309,7 +2392,6 @@
+     pVia->nPOT[0] = nPOTSupported;
+     pVia->nPOT[1] = nPOTSupported;
+ 
+-#ifdef VIA_HAVE_EXA
+ #ifdef XF86DRI
+     pVia->texAddr = NULL;
+     pVia->dBounce = NULL;
+@@ -2342,7 +2424,6 @@
+                    "[EXA] Enabled EXA acceleration.\n");
+         return TRUE;
+     }
+-#endif /* VIA_HAVE_EXA */
+ 
+     AvailFBArea.x1 = 0;
+     AvailFBArea.y1 = 0;
+@@ -2395,7 +2476,6 @@
+     viaAccelSync(pScrn);
+     viaTearDownCBuffer(&pVia->cb);
+ 
+-#ifdef VIA_HAVE_EXA
+     if (pVia->useEXA) {
+ #ifdef XF86DRI
+         if (pVia->directRenderingEnabled) {
+@@ -2426,7 +2506,6 @@
+         pVia->exaDriverPtr = NULL;
+         return;
+     }
+-#endif /* VIA_HAVE_EXA */
+     if (pVia->AccelInfoRec) {
+         XAADestroyInfoRec(pVia->AccelInfoRec);
+         pVia->AccelInfoRec = NULL;
+@@ -2444,7 +2523,6 @@
+     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+     VIAPtr pVia = VIAPTR(pScrn);
+ 
+-#ifdef VIA_HAVE_EXA
+ #ifdef XF86DRI
+     int size, ret;
+ 
+@@ -2455,12 +2533,7 @@
+         if (!pVia->IsPCI) {
+ 
+             /* Allocate upload and scratch space. */
+-#if (EXA_VERSION_MAJOR >= 2)
+             if (pVia->exaDriverPtr->UploadToScreen == viaExaTexUploadToScreen) {
+-#else
+-            if (pVia->exaDriverPtr->accel.UploadToScreen ==
+-                viaExaTexUploadToScreen) {
+-#endif
+                 size = VIA_AGP_UPL_SIZE * 2 + 32;
+                 pVia->texAGPBuffer.context = 1;
+                 pVia->texAGPBuffer.size = size;
+@@ -2516,7 +2589,6 @@
+             pVia->scratchAddr = (char *)pVia->FBBase + pVia->scratchOffset;
+         }
+     }
+-#endif /* VIA_HAVE_EXA */
+     if (Success != viaSetupCBuffer(pScrn, &pVia->cb, 0)) {
+         pVia->NoAccel = TRUE;
+         viaExitAccel(pScreen);
+@@ -2554,8 +2626,8 @@
              cmd |= VIA_GEC_DECY;
  
          viaAccelSetMode(pScrn->bitsPerPixel, tdc);
@@ -5914,7 +6413,7 @@
                             tdc->mode, pVia->Bpl, pVia->Bpl, cmd);
          pVia->accelMarker = viaAccelMarkSync(pScrn->pScreen);
          ADVANCE_RING;
-@@ -2578,8 +2719,8 @@
+@@ -2578,8 +2650,8 @@
  
      if (!pVia->NoAccel) {
          viaAccelSetMode(pScrn->bitsPerPixel, tdc);
@@ -5925,7 +6424,7 @@
                              pVia->Bpl, color, cmd);
          pVia->accelMarker = viaAccelMarkSync(pScrn->pScreen);
          ADVANCE_RING;
-@@ -2604,8 +2745,8 @@
+@@ -2604,8 +2676,8 @@
  
      if (!pVia->NoAccel) {
          viaAccelSetMode(depth, tdc);
@@ -5936,10 +6435,74 @@
                              pitch, color, cmd);
          pVia->accelMarker = viaAccelMarkSync(pScrn->pScreen);
          ADVANCE_RING;
+Index: src/via_memory.c
+===================================================================
+--- src/via_memory.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_memory.c	(.../trunk)	(revision 730)
+@@ -52,7 +52,6 @@
+  *	2  -  DRM
+  */
+ 
+-#ifdef VIA_HAVE_EXA
+ static void
+ viaExaFBSave(ScreenPtr pScreen, ExaOffscreenArea * exa)
+ {
+@@ -61,7 +60,6 @@
+                "\t\thttp://wiki.openchrome.org/tikiwiki/tiki-index"
+                ".php?page=EXAAcceleration .\n");
+ }
+-#endif
+ 
+ void
+ VIAFreeLinear(VIAMemPtr mem)
+@@ -71,7 +69,6 @@
+         case 0:
+             return;
+         case 1:
+-#ifdef VIA_HAVE_EXA
+             {
+                 VIAPtr pVia = VIAPTR(mem->pScrn);
+ 
+@@ -82,7 +79,6 @@
+                     return;
+                 }
+             }
+-#endif
+             xf86FreeOffscreenLinear(mem->linear);
+             mem->linear = NULL;
+             mem->pool = 0;
+@@ -103,7 +99,6 @@
+ {
+     int depth = pScrn->bitsPerPixel >> 3;
+ 
+-#ifdef VIA_HAVE_EXA
+     VIAPtr pVia = VIAPTR(pScrn);
+ 
+     if (pVia->useEXA && !pVia->NoAccel) {
+@@ -118,7 +113,6 @@
+         mem->pScrn = pScrn;
+         return Success;
+     }
+-#endif
+ 
+     mem->linear = xf86AllocateOffscreenLinear(pScrn->pScreen,
+                                               (size + depth - 1) / depth,
+@@ -175,11 +169,9 @@
+     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+     VIAPtr pVia = VIAPTR(pScrn);
+ 
+-#ifdef VIA_HAVE_EXA
+     if (pVia->useEXA && !pVia->NoAccel)
+         return;
+     else
+-#endif
+     {
+         unsigned long offset = (pVia->FBFreeStart + pVia->Bpp - 1) / pVia->Bpp;
+         long size = pVia->FBFreeEnd / pVia->Bpp - offset;
 Index: src/via_vbe.c
 ===================================================================
---- src/via_vbe.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_vbe.c	(.../trunk)	(revision 711)
+--- src/via_vbe.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_vbe.c	(.../trunk)	(revision 730)
 @@ -95,7 +95,7 @@
      /* Set Active Device and translate BIOS byte definition. */
      if (pBIOSInfo->CrtActive)
@@ -5969,8 +6532,8 @@
      VBEDPMSSet(pVia->pVbe, mode);
 Index: src/via_cursor.c
 ===================================================================
---- src/via_cursor.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_cursor.c	(.../trunk)	(revision 711)
+--- src/via_cursor.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_cursor.c	(.../trunk)	(revision 730)
 @@ -1,5 +1,6 @@
  /*
 - * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
@@ -6535,8 +7098,8 @@
  }
 Index: src/via_xvmc.c
 ===================================================================
---- src/via_xvmc.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_xvmc.c	(.../trunk)	(revision 711)
+--- src/via_xvmc.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_xvmc.c	(.../trunk)	(revision 730)
 @@ -114,11 +114,7 @@
  static int viaXvMCInterceptPutImage(ScrnInfoPtr, short, short, short, short,
                                      short, short, short, short, int,
@@ -6578,8 +7141,8 @@
  unsigned long
 Index: src/via_vt162x.h
 ===================================================================
---- src/via_vt162x.h	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_vt162x.h	(.../trunk)	(revision 711)
+--- src/via_vt162x.h	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_vt162x.h	(.../trunk)	(revision 730)
 @@ -926,6 +926,23 @@
        0x0, 0x0,
      },
@@ -6606,8 +7169,8 @@
        { 0x03, 0x00, 0x10, 0x1f, 0x03, 0x00, 0x00, 0xc9,  0x4c, 0x11, 0x7c, 0x00, 0x56, 0x57, 0x07, 0xbf,
 Index: src/via.h
 ===================================================================
---- src/via.h	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via.h	(.../trunk)	(revision 711)
+--- src/via.h	(.../tags/release_0_2_903)	(revision 730)
++++ src/via.h	(.../trunk)	(revision 730)
 @@ -561,9 +561,6 @@
  #define HQV_V_FILTER_DEFAULT    0x00420000
  #define HQV_H_FILTER_DEFAULT    0x00000040
@@ -6638,10 +7201,34 @@
  
  #define CHROMA_KEY_LOW          0x00FFFFFF
  #define CHROMA_KEY_HIGH         0x00FFFFFF
+Index: src/via_priv.h
+===================================================================
+--- src/via_priv.h	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_priv.h	(.../trunk)	(revision 730)
+@@ -29,9 +29,7 @@
+ #ifdef XF86DRI
+ #include "via_drm.h"
+ #endif
+-#ifdef VIA_HAVE_EXA
+ #include "exa.h"
+-#endif
+ 
+ /*
+  * Alignment macro functions
+@@ -147,9 +145,7 @@
+ #endif
+     void  *pVia;			/* VIA driver pointer */
+     FBLinearPtr linear;			/* X linear pool info ptr */
+-#ifdef VIA_HAVE_EXA
+     ExaOffscreenArea *exa;
+-#endif
+     ScrnInfoPtr pScrn;
+ } VIAMem;
+ 
 Index: src/via_timing.c
 ===================================================================
 --- src/via_timing.c	(.../tags/release_0_2_903)	(revision 0)
-+++ src/via_timing.c	(.../trunk)	(revision 711)
++++ src/via_timing.c	(.../trunk)	(revision 730)
 @@ -0,0 +1,398 @@
 +/*
 + * Copyright 2007-2008 Gabriel Mansi.
@@ -7043,8 +7630,8 @@
 +}
 Index: src/Makefile.am
 ===================================================================
---- src/Makefile.am	(.../tags/release_0_2_903)	(revision 711)
-+++ src/Makefile.am	(.../trunk)	(revision 711)
+--- src/Makefile.am	(.../tags/release_0_2_903)	(revision 730)
++++ src/Makefile.am	(.../trunk)	(revision 730)
 @@ -43,23 +43,29 @@
           via_ch7xxx.c \
           via_ch7xxx.h \
@@ -7077,8 +7664,8 @@
           via_vgahw.h \
 Index: src/via_dga.c
 ===================================================================
---- src/via_dga.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_dga.c	(.../trunk)	(revision 711)
+--- src/via_dga.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_dga.c	(.../trunk)	(revision 730)
 @@ -248,7 +248,7 @@
  
          pScrn->SwitchMode(index, pScrn->currentMode, 0);
@@ -7099,8 +7686,8 @@
              pVia->DGAOldDisplayWidth = pScrn->displayWidth;
 Index: src/via_id.c
 ===================================================================
---- src/via_id.c	(.../tags/release_0_2_903)	(revision 711)
-+++ src/via_id.c	(.../trunk)	(revision 711)
+--- src/via_id.c	(.../tags/release_0_2_903)	(revision 730)
++++ src/via_id.c	(.../trunk)	(revision 730)
 @@ -87,6 +87,7 @@
      {"Asustek K8V-MX",                        VIA_K8M800,  0x1043, 0x8129, VIA_DEVICE_CRT},
      {"Mitac 8399",                            VIA_K8M800,  0x1071, 0x8399, VIA_DEVICE_CRT | VIA_DEVICE_LCD | VIA_DEVICE_TV}, /* aka "Pogolinux Konabook 3100" */
@@ -7117,7 +7704,15 @@
  
      /*** PM800, PM880, PN800, CN400 ***/
      {"VIA VT3118 (PM800)",                    VIA_PM800,   0x1106, 0x3118, VIA_DEVICE_CRT}, /* borrowed by ECS PM800-M2 */
-@@ -158,6 +160,7 @@
+@@ -145,6 +147,7 @@
+     {"MSI Fuzzy CN700/CN700T/CN700G",         VIA_VM800,   0x1462, 0x7199, VIA_DEVICE_CRT | VIA_DEVICE_TV},
+     {"MSI PM8M3-V",                           VIA_VM800,   0x1462, 0x7211, VIA_DEVICE_CRT},
+     {"MSI PM8PM",                             VIA_VM800,   0x1462, 0x7222, VIA_DEVICE_CRT},
++    {"Twinhead M6",                           VIA_VM800,   0x14FF, 0xA007, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"RoverBook Partner W500",                VIA_VM800,   0x1509, 0x4330, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"Clevo/RoverBook Voyager V511L",         VIA_VM800,   0x1558, 0x0662, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+     {"Clevo M5xxS",                           VIA_VM800,   0x1558, 0x5406, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -158,6 +161,7 @@
      {"Asustek P5V800-MX",                     VIA_VM800,   0x3344, 0x1122, VIA_DEVICE_CRT},
  
      /*** K8M890 ***/
@@ -7125,7 +7720,7 @@
      {"Asustek A8V-VM",                        VIA_K8M890,  0x1043, 0x81B5, VIA_DEVICE_CRT},
      {"Asustek M2V-MX SE",                     VIA_K8M890,  0x1043, 0x8297, VIA_DEVICE_CRT},
      {"Foxconn K8M890M2MA-RS2H",               VIA_K8M890,  0x105B, 0x0C84, VIA_DEVICE_CRT},
-@@ -190,12 +193,13 @@
+@@ -190,12 +194,13 @@
      {"ASRock P4VM900-SATA2",                  VIA_P4M900,  0x1849, 0x3371, VIA_DEVICE_CRT},
  
      /*** CX700 ***/
@@ -7140,7 +7735,7 @@
      {"Packard Bell EasyNote XS",              VIA_CX700,   0x1631, 0xC201, VIA_DEVICE_LCD}, /* aka Everex Cloudbook CE1200V */
  
      /*** P4M890, VN890 ***/
-@@ -204,11 +208,16 @@
+@@ -204,11 +209,16 @@
      {"Asustek P5V-VM ULTRA",                  VIA_P4M890,  0x1043, 0x81B5, VIA_DEVICE_CRT},
      {"Asustek P5V-VM DH",                     VIA_P4M890,  0x1043, 0x81CE, VIA_DEVICE_CRT},
      {"Mitac 8615",                            VIA_P4M890,  0x1071, 0x8615, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
@@ -7160,7 +7755,7 @@
 Index: src/via_timing.h
 ===================================================================
 --- src/via_timing.h	(.../tags/release_0_2_903)	(revision 0)
-+++ src/via_timing.h	(.../trunk)	(revision 711)
++++ src/via_timing.h	(.../trunk)	(revision 730)
 @@ -0,0 +1,51 @@
 +/*
 + * Copyright 2007-2008 Gabriel Mansi.


Index: xorg-x11-drv-openchrome.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-openchrome/devel/xorg-x11-drv-openchrome.spec,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- xorg-x11-drv-openchrome.spec	7 Jan 2009 10:08:47 -0000	1.38
+++ xorg-x11-drv-openchrome.spec	17 Feb 2009 22:49:22 -0000	1.39
@@ -10,7 +10,7 @@
 Summary:	Xorg X11 openchrome video driver
 Name:		xorg-x11-drv-openchrome
 Version:	0.2.903
-Release:	6%{?dist}
+Release:	7%{?dist}
 URL:		http://www.openchrome.org
 License:	MIT
 Group:		User Interface/X Hardware Support
@@ -22,7 +22,7 @@
 # Patches from upstream trunk :
 #Patch1:         openchrome-0.2.903-sync_pciids.patch
 #Patch2:         openchrome-0.2.903-fix_bltsize.patch
-Patch98:          openchrome-0.2.903-PreInitCRTC.patch
+#Patch98:          openchrome-0.2.903-PreInitCRTC.patch
 Patch99:         openchrome-0.2.903-latest_snapshot.patch
 # Fedora specific patches :
 #Patch100:       openchrome-0.2.903-re_enable_AGPDMA.patch
@@ -67,7 +67,7 @@
 #%patch1 -p0 -b .pciids
 #%patch2 -p0 -b .bltsize
 %patch99 -p0 -b .latest
-%patch98 -p0 -b .PreInitCRTC
+#%patch98 -p0 -b .PreInitCRTC
 #%patch100 -p0 -b .agpdma
 #%patch200 -p0 -b .panel
 
@@ -127,6 +127,11 @@
 
 
 %changelog
+* Tue Feb 17 2009 Xavier Bachelot <xavier at bachelot.org> - 0.2.903-7
+- Update to latest snapshot (svn 726) :
+  - Bug fixes for XAA and EXA.
+  - Fix 2d initialization for P4M900.
+
 * Wed Jan 07 2009 Xavier Bachelot <xavier at bachelot.org> - 0.2.903-6
 - Fix crash with xserver 1.6 (changeset 712).
 




More information about the fedora-extras-commits mailing list