![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package xorg-x11-driver-video for openSUSE:Factory checked in at Fri Feb 27 00:47:40 CET 2009. -------- --- xorg-x11-driver-video/xorg-x11-driver-video.changes 2009-02-25 16:34:24.000000000 +0100 +++ xorg-x11-driver-video/xorg-x11-driver-video.changes 2009-02-26 16:09:00.605686062 +0100 @@ -1,0 +2,26 @@ +Thu Feb 26 15:55:30 CET 2009 - sndirsch@suse.de + +- xf86-video-apm 1.2.1 +- xf86-video-ark 0.7.1 +- xf86-video-ast 0.87.0 +- xf86-video-ati 6.11.0 + * disabled xf86-video-ati-es1000.diff for now; already obsolete? +- xf86-video-chips 1.2.1 +- xf86-video-dummy 0.3.1 +- xf86-video-geode 2.11.1 +- xf86-video-glint 1.2.2 +- xf86-video-neomagic 1.2.2 +- xf86-video-rendition 4.2.1 +- xf86-video-s3 0.6.1 +- xf86-video-s3virge 1.10.2 + * obsoletes xf86-video-s3virge.diff +- xf86-video-siliconmotion 1.7.0 +- xf86-video-sis 0.10.1 +- xf86-video-tdfx 1.4.1 +- xf86-video-trident 1.3.1 +- xf86-video-tseng 1.2.1 +- xf86-video-vesa 2.2.0 + * obsoletes xf86-video-vesa_verbose.diff +- xf86-video-voodoo 1.2.1 + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- xf86-video-apm-1.2.0.tar.bz2 xf86-video-ark-0.7.0.tar.bz2 xf86-video-ast-0.85.0.tar.bz2 xf86-video-ati-6.9.0.tar.bz2 xf86-video-chips-1.2.0.tar.bz2 xf86-video-dummy-0.3.0.tar.bz2 xf86-video-geode-2.11.0.tar.bz2 xf86-video-glint-1.2.1.tar.bz2 xf86-video-neomagic-1.2.1.tar.bz2 xf86-video-rendition-4.2.0.tar.bz2 xf86-video-s3-0.6.0.tar.bz2 xf86-video-s3virge-1.10.1.tar.bz2 xf86-video-s3virge.diff xf86-video-siliconmotion-1.6.0.tar.bz2 xf86-video-sis-0.10.0.tar.bz2 xf86-video-tdfx-1.4.0.tar.bz2 xf86-video-trident-1.3.0.tar.bz2 xf86-video-tseng-1.2.0.tar.bz2 xf86-video-vesa-2.0.0.tar.bz2 xf86-video-vesa_verbose.diff xf86-video-voodoo-1.2.0.tar.bz2 New: ---- xf86-video-apm-1.2.1.tar.bz2 xf86-video-ark-0.7.1.tar.bz2 xf86-video-ast-0.87.0.tar.bz2 xf86-video-ati-6.11.0.tar.bz2 xf86-video-chips-1.2.1.tar.bz2 xf86-video-dummy-0.3.1.tar.bz2 xf86-video-geode-2.11.1.tar.bz2 xf86-video-glint-1.2.2.tar.bz2 xf86-video-neomagic-1.2.2.tar.bz2 xf86-video-rendition-4.2.1.tar.bz2 xf86-video-s3-0.6.1.tar.bz2 xf86-video-s3virge-1.10.2.tar.bz2 xf86-video-siliconmotion-1.7.0.tar.bz2 xf86-video-sis-0.10.1.tar.bz2 xf86-video-tdfx-1.4.1.tar.bz2 xf86-video-trident-1.3.1.tar.bz2 xf86-video-tseng-1.2.1.tar.bz2 xf86-video-vesa-2.2.0.tar.bz2 xf86-video-voodoo-1.2.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-driver-video.spec ++++++ --- /var/tmp/diff_new_pack.GC4992/_old 2009-02-27 00:46:48.000000000 +0100 +++ /var/tmp/diff_new_pack.GC4992/_new 2009-02-27 00:46:48.000000000 +0100 @@ -22,7 +22,7 @@ BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk Url: http://xorg.freedesktop.org/ Version: 7.4 -Release: 40 +Release: 41 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -33,44 +33,44 @@ Requires: xorg-x11-driver-video-unichrome xorg-x11-driver-video-radeonhd Summary: X.Org video drivers ExcludeArch: s390 s390x -Source0: xf86-video-apm-1.2.0.tar.bz2 -Source1: xf86-video-ark-0.7.0.tar.bz2 -Source2: xf86-video-ast-0.85.0.tar.bz2 -Source4: xf86-video-chips-1.2.0.tar.bz2 +Source0: xf86-video-apm-1.2.1.tar.bz2 +Source1: xf86-video-ark-0.7.1.tar.bz2 +Source2: xf86-video-ast-0.87.0.tar.bz2 +Source4: xf86-video-chips-1.2.1.tar.bz2 Source5: xf86-video-cirrus-1.2.1.tar.bz2 -Source7: xf86-video-dummy-0.3.0.tar.bz2 +Source7: xf86-video-dummy-0.3.1.tar.bz2 Source8: xf86-video-fbdev-0.4.0.tar.bz2 -Source9: xf86-video-glint-1.2.1.tar.bz2 +Source9: xf86-video-glint-1.2.2.tar.bz2 Source10: xf86-video-i128-1.3.1.tar.bz2 Source11: xf86-video-i740-1.2.0.tar.bz2 Source14: xf86-video-mga-1.4.9.tar.bz2 -Source15: xf86-video-neomagic-1.2.1.tar.bz2 +Source15: xf86-video-neomagic-1.2.2.tar.bz2 Source16: xf86-video-newport-0.2.1.tar.bz2 Source17: xf86-video-nsc-2.8.3.tar.bz2 Source18: xf86-video-nv-2.1.12.tar.bz2 -Source19: xf86-video-rendition-4.2.0.tar.bz2 -Source20: xf86-video-s3-0.6.0.tar.bz2 -Source21: xf86-video-s3virge-1.10.1.tar.bz2 +Source19: xf86-video-rendition-4.2.1.tar.bz2 +Source20: xf86-video-s3-0.6.1.tar.bz2 +Source21: xf86-video-s3virge-1.10.2.tar.bz2 Source22: xf86-video-savage-2.2.1.tar.bz2 -Source23: xf86-video-siliconmotion-1.6.0.tar.bz2 -Source24: xf86-video-sis-0.10.0.tar.bz2 +Source23: xf86-video-siliconmotion-1.7.0.tar.bz2 +Source24: xf86-video-sis-0.10.1.tar.bz2 Source25: xf86-video-sisusb-0.9.0.tar.bz2 -Source33: xf86-video-tdfx-1.4.0.tar.bz2 +Source33: xf86-video-tdfx-1.4.1.tar.bz2 Source34: xf86-video-tga-1.2.0.tar.bz2 -Source35: xf86-video-trident-1.3.0.tar.bz2 -Source36: xf86-video-tseng-1.2.0.tar.bz2 +Source35: xf86-video-trident-1.3.1.tar.bz2 +Source36: xf86-video-tseng-1.2.1.tar.bz2 Source37: xf86-video-v4l-0.2.0.tar.bz2 -Source38: xf86-video-vesa-2.0.0.tar.bz2 +Source38: xf86-video-vesa-2.2.0.tar.bz2 Source39: xf86-video-vga-4.1.0_080718_97e2d12.tar.bz2 Source41: xf86-video-vmware-10.16.5.tar.bz2 -Source42: xf86-video-voodoo-1.2.0.tar.bz2 +Source42: xf86-video-voodoo-1.2.1.tar.bz2 Source43: xf86-video-impact-0.2.0.tar.bz2 Source44: HALlib-4.1.tar.gz Source45: xf86-video-intel-2.6.2.tar.bz2 -Source46: xf86-video-ati-6.9.0.tar.bz2 +Source46: xf86-video-ati-6.11.0.tar.bz2 Source48: xf86-video-mga-1.9.100.tar.bz2 Source50: xf86-video-xgi-1.5.0.tar.bz2 -Source51: xf86-video-geode-2.11.0.tar.bz2 +Source51: xf86-video-geode-2.11.1.tar.bz2 Source53: xf86-video-xgixp-1.7.99.3.tar.bz2 Source54: xf86-video-mach64-6.8.0.tar.bz2 Source55: xf86-video-r128-6.8.0.tar.bz2 @@ -85,8 +85,6 @@ Patch41: xf86-video-xgi.diff Patch46: xf86-video-ati.diff Patch47: xf86-video-vmware-10.15.2.diff -Patch51: xf86-video-s3virge.diff -Patch54: xf86-video-vesa_verbose.diff Patch56: xf86-video-mga-g200se-swcursor.diff Patch57: xf86-video-intel-G33-1mb.diff Patch58: xf86-video-ati-es1000.diff @@ -167,26 +165,23 @@ pushd xf86-video-vmware-* %patch47 popd -pushd xf86-video-s3virge-* -%patch51 -popd pushd xf86-video-vesa-* -%patch54 -p1 %patch64 -p1 popd pushd xf86-video-ati-* -%patch58 -p1 +### FIXME +#%patch58 -p1 %patch68 -p2 %patch69 -p2 popd %build for dir in xf86-video-nv-* \ - xf86-video-mga-1.9.100 xf86-video-ati-6.9.* \ + xf86-video-mga-1.9.100 xf86-video-ati-6.11.* \ $(ls -d xf86-video-* | grep -v -e xf86-video-impact \ -e xf86-video-nv \ -e xf86-video-mga-1.9.100 \ - -e xf86-video-ati-6.9 \ + -e xf86-video-ati-6.11 \ -e xf86-video-xgixp \ ); do pushd $dir @@ -194,7 +189,7 @@ xf86-video-mga-1.4.9 | \ xf86-video-intel-* | \ xf86-video-mga-1.9.100 | \ - xf86-video-ati-6.9.* | \ + xf86-video-ati-6.11.* | \ xf86-video-xgixp | \ xf86-video-nsc-*) autoreconf -fi ;; *) ;; @@ -208,11 +203,11 @@ %install for dir in xf86-video-nv-* \ xf86-video-mga-1.9.100 \ - xf86-video-ati-6.9.* \ + xf86-video-ati-6.11.* \ $(ls -d xf86-video-* | grep -v -e xf86-video-impact \ -e xf86-video-nv \ -e xf86-video-mga-1.9.100 \ - -e xf86-video-ati-6.9 \ + -e xf86-video-ati-6.11 \ -e xf86-video-xgixp \ ); do make -C $dir install DESTDIR=$RPM_BUILD_ROOT @@ -270,6 +265,29 @@ /var/lib/hardware/ids/20.%{name} %changelog +* Thu Feb 26 2009 sndirsch@suse.de +- xf86-video-apm 1.2.1 +- xf86-video-ark 0.7.1 +- xf86-video-ast 0.87.0 +- xf86-video-ati 6.11.0 + * disabled xf86-video-ati-es1000.diff for now; already obsolete? +- xf86-video-chips 1.2.1 +- xf86-video-dummy 0.3.1 +- xf86-video-geode 2.11.1 +- xf86-video-glint 1.2.2 +- xf86-video-neomagic 1.2.2 +- xf86-video-rendition 4.2.1 +- xf86-video-s3 0.6.1 +- xf86-video-s3virge 1.10.2 + * obsoletes xf86-video-s3virge.diff +- xf86-video-siliconmotion 1.7.0 +- xf86-video-sis 0.10.1 +- xf86-video-tdfx 1.4.1 +- xf86-video-trident 1.3.1 +- xf86-video-tseng 1.2.1 +- xf86-video-vesa 2.2.0 + * obsoletes xf86-video-vesa_verbose.diff +- xf86-video-voodoo 1.2.1 * Wed Feb 25 2009 sndirsch@suse.de - xf86-video-intel 2.6.2 * Here comes a pretty significant bugfix release for the 2.6 2D ++++++ xf86-video-apm-1.2.0.tar.bz2 -> xf86-video-apm-1.2.1.tar.bz2 ++++++ ++++ 12688 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-apm-1.2.0/config.h.in new/xf86-video-apm-1.2.1/config.h.in --- old/xf86-video-apm-1.2.0/config.h.in 2008-03-19 16:38:17.000000000 +0100 +++ new/xf86-video-apm-1.2.1/config.h.in 2008-12-22 05:13:49.000000000 +0100 @@ -8,6 +8,9 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Have ISA support */ +#undef HAVE_ISA + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-apm-1.2.0/configure.ac new/xf86-video-apm-1.2.1/configure.ac --- old/xf86-video-apm-1.2.0/configure.ac 2008-03-19 16:06:51.000000000 +0100 +++ new/xf86-video-apm-1.2.1/configure.ac 2008-12-22 05:12:44.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-apm], - 1.2.0, + 1.2.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-apm) @@ -67,6 +67,14 @@ AC_SUBST([CFLAGS]) AC_SUBST([INCLUDES]) +save_CFLAGS="$CFLAGS" +CFLAGS="$XORG_CFLAGS" +AC_CHECK_DECL(xf86ConfigIsaEntity, + [AC_DEFINE(HAVE_ISA, 1, [Have ISA support])], + [], + [#include "xf86.h"]) +CFLAGS="$save_CFLAGS" + # Checks for libraries. SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $XORG_CFLAGS" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-apm-1.2.0/src/apm_driver.c new/xf86-video-apm-1.2.1/src/apm_driver.c --- old/xf86-video-apm-1.2.0/src/apm_driver.c 2008-03-19 16:05:14.000000000 +0100 +++ new/xf86-video-apm-1.2.1/src/apm_driver.c 2008-12-22 05:12:28.000000000 +0100 @@ -53,9 +53,10 @@ int flags); static void ApmProbeDDC(ScrnInfoPtr pScrn, int index); - +#ifdef XF86RUSH int ApmPixmapIndex = -1; static unsigned long ApmGeneration = 0; +#endif _X_EXPORT DriverRec APM = { APM_VERSION, @@ -81,10 +82,12 @@ { -1, -1, RES_UNDEFINED } }; +#ifdef HAVE_ISA static IsaChipsets ApmIsaChipsets[] = { { PCI_CHIP_AP6422, RES_EXCLUSIVE_VGA}, {-1, RES_UNDEFINED} }; +#endif typedef enum { OPTION_SET_MCLK, @@ -327,6 +330,7 @@ return ApmOptions; } +#ifdef HAVE_ISA static int ApmFindIsaDevice(GDevPtr dev) { @@ -375,6 +379,7 @@ return apmChip; } +#endif static void ApmAssignFPtr(ScrnInfoPtr pScrn) @@ -446,6 +451,7 @@ } } +#ifdef HAVE_ISA /* Check for non-PCI cards */ numUsed = xf86MatchIsaInstances(APM_NAME, ApmChipsets, ApmIsaChipsets, drv, ApmFindIsaDevice, DevSections, @@ -466,6 +472,8 @@ } } } +#endif + xfree(DevSections); return foundScreen; } @@ -974,8 +982,10 @@ } if (0 && !MonInfo) MonInfo = xf86DoEDID_DDC1(pScrn->scrnIndex,vgaHWddc1SetSpeed,ddc1Read); - if (MonInfo) + if (MonInfo) { xf86PrintEDID(MonInfo); + xf86SetDDCproperties(pScrn, MonInfo); + } pScrn->monitor->DDC = MonInfo; } @@ -1998,7 +2008,7 @@ miSetPixmapDepths(); switch (pScrn->bitsPerPixel) { -#ifndef HAVE_XF1BPP +#ifdef HAVE_XF1BPP case 1: ret = xf1bppScreenInit(pScreen, FbBase, pScrn->virtualX, pScrn->virtualY, @@ -2120,6 +2130,7 @@ xf86ShowUnusedOptions(pScrn->scrnIndex, pScrn->options); } +#ifdef XF86RUSH if (ApmGeneration != serverGeneration) { if ((ApmPixmapIndex = AllocatePixmapPrivateIndex()) < 0) return FALSE; @@ -2128,6 +2139,7 @@ if (!AllocatePixmapPrivate(pScreen, ApmPixmapIndex, sizeof(ApmPixmapRec))) return FALSE; +#endif /* Done */ return TRUE; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-apm-1.2.0/src/apm.h new/xf86-video-apm-1.2.1/src/apm.h --- old/xf86-video-apm-1.2.0/src/apm.h 2008-03-19 16:05:14.000000000 +0100 +++ new/xf86-video-apm-1.2.1/src/apm.h 2008-12-22 05:12:28.000000000 +0100 @@ -11,9 +11,6 @@ /* Everything using inb/outb, etc needs "compiler.h" */ #include "compiler.h" -/* This is used for module versioning */ -#include "xf86Version.h" - /* Drivers for PCI hardware need this */ #include "xf86PciInfo.h" @@ -242,8 +239,10 @@ extern void ApmHWCursorReserveSpace(ApmPtr pApm); extern void ApmAccelReserveSpace(ApmPtr pApm); +#ifdef XF86RUSH extern int ApmPixmapIndex; #define APM_GET_PIXMAP_PRIVATE(pix)\ ((ApmPixmapPtr)(((PixmapPtr)(pix))->devPrivates[ApmPixmapIndex].ptr)) +#endif #include "apm_regs.h" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-apm-1.2.0/src/apm_rush.c new/xf86-video-apm-1.2.1/src/apm_rush.c --- old/xf86-video-apm-1.2.0/src/apm_rush.c 2008-03-19 16:05:14.000000000 +0100 +++ new/xf86-video-apm-1.2.1/src/apm_rush.c 2008-12-22 05:12:28.000000000 +0100 @@ -569,7 +569,7 @@ return (BadMatch); } - status = XVCALL(diMatchPort)(pPort, pDraw); + status = XvdiMatchPort(pPort, pDraw); if (status != Success) return status; @@ -580,7 +580,7 @@ client->errorValue = stuff->pixmap; return (BadPixmap); } - status = XVCALL(diMatchPort)(pPort, (DrawablePtr)pPixmap); + status = XvdiMatchPort(pPort, (DrawablePtr)pPixmap); if (status != Success) return status; pPriv = APM_GET_PIXMAP_PRIVATE(pPixmap); @@ -604,7 +604,7 @@ return BadMatch; pApm->PutImageStride = pPixmap->devKind; - status = XVCALL(diPutImage)(client, pDraw, pPort, pGC, + status = XvdiPutImage(client, pDraw, pPort, pGC, stuff->src_x, stuff->src_y, stuff->src_w, stuff->src_h, stuff->drw_x, stuff->drw_y, ++++++ xf86-video-ark-0.7.0.tar.bz2 -> xf86-video-ark-0.7.1.tar.bz2 ++++++ ++++ 11751 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ark-0.7.0/configure.ac new/xf86-video-ark-0.7.1/configure.ac --- old/xf86-video-ark-0.7.0/configure.ac 2008-03-19 18:15:55.000000000 +0100 +++ new/xf86-video-ark-0.7.1/configure.ac 2008-12-22 06:24:55.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ark], - 0.7.0, + 0.7.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ark) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ark-0.7.0/src/ark_driver.c new/xf86-video-ark-0.7.1/src/ark_driver.c --- old/xf86-video-ark-0.7.0/src/ark_driver.c 2008-03-19 18:15:32.000000000 +0100 +++ new/xf86-video-ark-0.7.1/src/ark_driver.c 2008-12-22 06:24:33.000000000 +0100 @@ -35,7 +35,6 @@ #include "xf86_OSproc.h" #include "xf86Pci.h" #include "xf86PciInfo.h" -#include "xf86Version.h" #include "xf86Resources.h" #include "xf86fbman.h" #include "xf86cmap.h" ++++++ xf86-video-ast-0.85.0.tar.bz2 -> xf86-video-ast-0.87.0.tar.bz2 ++++++ ++++ 12380 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.85.0/ChangeLog new/xf86-video-ast-0.87.0/ChangeLog --- old/xf86-video-ast-0.85.0/ChangeLog 2008-03-19 15:28:56.000000000 +0100 +++ new/xf86-video-ast-0.87.0/ChangeLog 2008-12-22 05:18:28.000000000 +0100 @@ -1,3 +1,20 @@ +2008-08-22 Y.C. Chen <yc_chen@aspeedtech.com> + * src/ast.h + * src/ast_driver.c + * src/ast_vgatool.c, ast_vgatool.h + Support AST1100/2050/2100 + + * src/ast_mode.c ast_mode.h + Modify the display timing of 1920x1200 to reduce blanking timing + + * src/ast_driver.c + * src/ast_vgatool.c + Support Clone Display for Two VGA + +2008-07-21 Y.C. Chen <yc_chen@aspeedtech.com> + * src/ast_mode.c + Fixed Incorrect Settings for Graphices Registers + 2008-03-18 Y.C. Chen <yc_chen@aspeedtech.com> * src/ast_2dtool.c * src/ast_tool.c diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.85.0/configure.ac new/xf86-video-ast-0.87.0/configure.ac --- old/xf86-video-ast-0.85.0/configure.ac 2008-03-19 18:22:10.000000000 +0100 +++ new/xf86-video-ast-0.87.0/configure.ac 2008-12-22 05:18:28.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-ast], - 0.85.0, + 0.87.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-ast) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.85.0/src/ast_2dtool.c new/xf86-video-ast-0.87.0/src/ast_2dtool.c --- old/xf86-video-ast-0.85.0/src/ast_2dtool.c 2008-03-19 15:28:56.000000000 +0100 +++ new/xf86-video-ast-0.87.0/src/ast_2dtool.c 2008-12-22 05:18:28.000000000 +0100 @@ -167,7 +167,7 @@ } *(ULONG *) (pAST->CMDQInfo.pjCmdQBasePort) = ulVMCmdQBasePort; - pAST->CMDQInfo.ulWritePointer = *(ULONG *) (pAST->CMDQInfo.pjWritePort); + pAST->CMDQInfo.ulWritePointer = *(ULONG *) (pAST->CMDQInfo.pjWritePort) << 3; break; case VM_CMD_MMIO: diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.85.0/src/ast_driver.c new/xf86-video-ast-0.87.0/src/ast_driver.c --- old/xf86-video-ast-0.85.0/src/ast_driver.c 2008-03-19 15:28:56.000000000 +0100 +++ new/xf86-video-ast-0.87.0/src/ast_driver.c 2008-12-22 05:18:28.000000000 +0100 @@ -66,10 +66,12 @@ extern Bool bASTRegInit(ScrnInfoPtr pScrn); extern ULONG GetVRAMInfo(ScrnInfoPtr pScrn); extern ULONG GetMaxDCLK(ScrnInfoPtr pScrn); +extern void GetChipType(ScrnInfoPtr pScrn); extern void vASTLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, VisualPtr pVisual); extern void ASTDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags); extern void vSetStartAddressCRT1(ASTRecPtr pAST, ULONG base); extern Bool ASTSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode); +extern Bool GetVGA2EDID(ScrnInfoPtr pScrn, unsigned char *pEDIDBuffer); extern Bool bInitCMDQInfo(ScrnInfoPtr pScrn, ASTRecPtr pAST); extern Bool bEnableCMDQ(ScrnInfoPtr pScrn, ASTRecPtr pAST); @@ -121,12 +123,14 @@ /* Chipsets */ static SymTabRec ASTChipsets[] = { - {PCI_CHIP_AST2000, "AST2000"}, + {PCI_CHIP_AST2000, "AST2000 Family"}, + {PCI_CHIP_AST2100, "AST1100_2050_2100"}, {-1, NULL} }; static PciChipsets ASTPciChipsets[] = { {PCI_CHIP_AST2000, PCI_CHIP_AST2000, RES_SHARED_VGA}, + {PCI_CHIP_AST2100, PCI_CHIP_AST2100, RES_SHARED_VGA}, {-1, -1, RES_UNDEFINED } }; @@ -137,17 +141,19 @@ OPTION_HWC_NUM, OPTION_ENG_CAPS, OPTION_DBG_SELECT, - OPTION_NO_DDC + OPTION_NO_DDC, + OPTION_VGA2_CLONE } ASTOpts; static const OptionInfoRec ASTOptions[] = { {OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE}, - {OPTION_MMIO2D, "MMIO2D", OPTV_BOOLEAN, {0}, FALSE}, - {OPTION_SW_CURSOR, "SWCursor", OPTV_BOOLEAN, {0}, FALSE}, + {OPTION_MMIO2D, "MMIO2D", OPTV_BOOLEAN, {0}, FALSE}, + {OPTION_SW_CURSOR, "SWCursor", OPTV_BOOLEAN, {0}, FALSE}, {OPTION_HWC_NUM, "HWCNumber", OPTV_INTEGER, {0}, FALSE}, - {OPTION_ENG_CAPS, "ENGCaps", OPTV_INTEGER, {0}, FALSE}, - {OPTION_DBG_SELECT, "DBGSelect", OPTV_INTEGER, {0}, FALSE}, - {OPTION_NO_DDC, "NoDDC", OPTV_BOOLEAN, {0}, FALSE}, + {OPTION_ENG_CAPS, "ENGCaps", OPTV_INTEGER, {0}, FALSE}, + {OPTION_DBG_SELECT, "DBGSelect", OPTV_INTEGER, {0}, FALSE}, + {OPTION_NO_DDC, "NoDDC", OPTV_BOOLEAN, {0}, FALSE}, + {OPTION_VGA2_CLONE, "VGA2Clone", OPTV_BOOLEAN, {0}, FALSE}, {-1, NULL, OPTV_NONE, {0}, FALSE} }; @@ -564,11 +570,7 @@ (pScrn->chipset != NULL) ? pScrn->chipset : "Unknown ast"); /* Resource Allocation */ -#if XF86_VERSION_CURRENT < XF86_VERSION_NUMERIC(4,2,99,0,0) - pAST->IODBase = 0; -#else pAST->IODBase = pScrn->domainIOBase; -#endif /* "Patch" the PIOOffset inside vgaHW in order to force * the vgaHW module to use our relocated i/o ports. */ @@ -638,7 +640,7 @@ /* Get Revision */ if (PCI_DEV_REVISION(pAST->PciInfo) >= 0x10) - pAST->jChipType = AST2100; + GetChipType(pScrn); else pAST->jChipType = AST2000; @@ -1201,13 +1203,22 @@ } } +#define SkipDT 0x00 +#define DT1 0x01 +#define DT2 0x02 + static xf86MonPtr ASTDoDDC(ScrnInfoPtr pScrn, int index) { vbeInfoPtr pVbe; - xf86MonPtr MonInfo = NULL; + xf86MonPtr MonInfo = NULL, MonInfo1 = NULL, MonInfo2 = NULL; ASTRecPtr pAST = ASTPTR(pScrn); - + unsigned long i, j, k; + unsigned char DDC_data[128]; + struct monitor_ranges ranges, ranges1, ranges2; + int DTSelect, dclock1=0, h_active1=0, v_active1=0, dclock2=0, h_active2=0, v_active2=0; + struct std_timings stdtiming, *stdtiming1, *stdtiming2; + /* Honour Option "noDDC" */ if (xf86ReturnOptValBool(pAST->Options, OPTION_NO_DDC, FALSE)) { return MonInfo; @@ -1215,7 +1226,150 @@ if (xf86LoadSubModule(pScrn, "vbe") && (pVbe = VBEInit(NULL, index))) { xf86LoaderReqSymLists(vbeSymbols, NULL); - MonInfo = vbeDoEDID(pVbe, NULL); + MonInfo1 = vbeDoEDID(pVbe, NULL); + MonInfo = MonInfo1; + + /* For VGA2 CLONE Support, ycchen@012508 */ + if (xf86ReturnOptValBool(pAST->Options, OPTION_VGA2_CLONE, FALSE)) { + if (GetVGA2EDID(pScrn, DDC_data) == TRUE) { + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Get VGA2 EDID Correctly!! \n"); + MonInfo2 = xf86InterpretEDID(pScrn->scrnIndex, DDC_data); + if (MonInfo1 == NULL) /* No DDC1 EDID */ + MonInfo = MonInfo2; + else { /* Check with VGA1 & VGA2 EDID */ + /* Update establishment timing */ + MonInfo->timings1.t1 = MonInfo1->timings1.t1 & MonInfo2->timings1.t1; + MonInfo->timings1.t2 = MonInfo1->timings1.t2 & MonInfo2->timings1.t2; + MonInfo->timings1.t_manu = MonInfo1->timings1.t_manu & MonInfo2->timings1.t_manu; + + /* Update Std. Timing */ + for (i=0; i<8; i++) { + stdtiming.hsize = stdtiming.vsize = stdtiming.refresh = stdtiming.id = 0; + for (j=0; j<8; j++) { + if ((MonInfo1->timings2[i].hsize == MonInfo2->timings2[j].hsize) && \ + (MonInfo1->timings2[i].vsize == MonInfo2->timings2[j].vsize) && \ + (MonInfo1->timings2[i].refresh == MonInfo2->timings2[j].refresh)) { + stdtiming = MonInfo1->timings2[i]; + break; + } + } + + MonInfo->timings2[i] = stdtiming; + } /* Std. Timing */ + + /* Get Detailed Timing */ + for (i=0;i<4;i++) { + if (MonInfo1->det_mon[i].type == 0xFD) + ranges1 = MonInfo1->det_mon[i].section.ranges; + else if (MonInfo1->det_mon[i].type == 0xFA) + stdtiming1 = MonInfo1->det_mon[i].section.std_t; + else if (MonInfo1->det_mon[i].type == 0x00) { + if (MonInfo1->det_mon[i].section.d_timings.clock > dclock1) + dclock1 = MonInfo1->det_mon[i].section.d_timings.clock; + if (MonInfo1->det_mon[i].section.d_timings.h_active > h_active1) + h_active1 = MonInfo1->det_mon[i].section.d_timings.h_active; + if (MonInfo1->det_mon[i].section.d_timings.v_active > v_active1) + v_active1 = MonInfo1->det_mon[i].section.d_timings.v_active; + } + if (MonInfo2->det_mon[i].type == 0xFD) + ranges2 = MonInfo2->det_mon[i].section.ranges; + else if (MonInfo1->det_mon[i].type == 0xFA) + stdtiming2 = MonInfo2->det_mon[i].section.std_t; + else if (MonInfo2->det_mon[i].type == 0x00) { + if (MonInfo2->det_mon[i].section.d_timings.clock > dclock2) + dclock2 = MonInfo2->det_mon[i].section.d_timings.clock; + if (MonInfo2->det_mon[i].section.d_timings.h_active > h_active2) + h_active2 = MonInfo2->det_mon[i].section.d_timings.h_active; + if (MonInfo2->det_mon[i].section.d_timings.v_active > v_active2) + v_active2 = MonInfo2->det_mon[i].section.d_timings.v_active; + } + } /* Get Detailed Timing */ + + /* Chk Detailed Timing */ + if ((dclock1 >= dclock2) && (h_active1 >= h_active2) && (v_active1 >= v_active2)) + DTSelect = DT2; + else if ((dclock2 >= dclock1) && (h_active2 >= h_active1) && (v_active2 >= v_active1)) + DTSelect = DT1; + else + DTSelect = SkipDT; + + /* Chk Monitor Descriptor */ + ranges = ranges1; + ranges.min_h = ranges1.min_h > ranges2.min_h ? ranges1.min_h:ranges2.min_h; + ranges.min_v = ranges1.min_v > ranges2.min_v ? ranges1.min_v:ranges2.min_v; + ranges.max_h = ranges1.max_h < ranges2.max_h ? ranges1.max_h:ranges2.max_h; + ranges.max_v = ranges1.max_v < ranges2.max_v ? ranges1.max_v:ranges2.max_v; + ranges.max_clock = ranges1.max_clock < ranges2.max_clock ? ranges1.max_clock:ranges2.max_clock; + + /* Update Detailed Timing */ + for (i=0; i<4; i++) + { + if (MonInfo->det_mon[i].type == 0xFD) { + MonInfo->det_mon[i].section.ranges = ranges; + } + else if (MonInfo->det_mon[i].type == 0xFA) { + for (j=0; j<5; j++) { + stdtiming.hsize = stdtiming.vsize = stdtiming.refresh = stdtiming.id = 0; + for (k=0; k<5; k++) { + if ((stdtiming1[j].hsize == stdtiming2[k].hsize) && \ + (stdtiming1[j].vsize == stdtiming2[k].vsize) && \ + (stdtiming1[j].refresh == stdtiming2[k].refresh)) { + stdtiming = stdtiming1[j]; + break; + } + } + stdtiming1[j] = stdtiming; + } /* Std. Timing */ + } /* FA */ + else if (MonInfo->det_mon[i].type == 0x00) { + if (DTSelect == DT2) + MonInfo->det_mon[i] = MonInfo2->det_mon[i]; + else if (DTSelect == DT1) + MonInfo->det_mon[i] = MonInfo1->det_mon[i]; + else /* SkipDT */ + { /* use 1024x768 as default */ + MonInfo->det_mon[i] = MonInfo1->det_mon[i]; + MonInfo->det_mon[i].section.d_timings.clock = 65000000; + MonInfo->det_mon[i].section.d_timings.h_active = 1024; + MonInfo->det_mon[i].section.d_timings.h_blanking = 320; + MonInfo->det_mon[i].section.d_timings.v_active = 768; + MonInfo->det_mon[i].section.d_timings.v_blanking = 38; + MonInfo->det_mon[i].section.d_timings.h_sync_off = 24; + MonInfo->det_mon[i].section.d_timings.h_sync_width = 136; + MonInfo->det_mon[i].section.d_timings.v_sync_off = 3; + MonInfo->det_mon[i].section.d_timings.v_sync_width = 6; + } + } /* 00 */ + else { /* use Monitor 1 as default */ + MonInfo->det_mon[i] = MonInfo1->det_mon[i]; + } + + } /* Update Detailed Timing */ + + /* set feature size */ + if (DTSelect == DT2) { + MonInfo->features.hsize = MonInfo2->features.hsize; + MonInfo->features.vsize = MonInfo2->features.vsize; + } + else if (DTSelect == DT1) { + MonInfo->features.hsize = MonInfo1->features.hsize; + MonInfo->features.vsize = MonInfo1->features.vsize; + } + else /* Skip DT */ + { /* use 1024x768 as default */ + MonInfo->features.hsize = 0x20; + MonInfo->features.vsize = 0x18; + } + + } /* Check with VGA1 & VGA2 EDID */ + + } /* GetVGA2EDID */ + else { + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Can't Get VGA2 EDID Correctly!! \n"); + } + + } + xf86PrintEDID(MonInfo); xf86SetDDCproperties(pScrn, MonInfo); vbeFree(pVbe); @@ -1223,7 +1377,7 @@ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "this driver cannot do DDC without VBE\n"); } - + return MonInfo; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.85.0/src/ast.h new/xf86-video-ast-0.87.0/src/ast.h --- old/xf86-video-ast-0.85.0/src/ast.h 2008-03-19 15:28:56.000000000 +0100 +++ new/xf86-video-ast-0.87.0/src/ast.h 2008-12-22 05:18:28.000000000 +0100 @@ -40,10 +40,15 @@ #define PCI_CHIP_AST2000 0x2000 #endif +#ifndef PCI_CHIP_AST2100 +#define PCI_CHIP_AST2100 0x2010 +#endif + typedef enum _CHIP_ID { VGALegacy, AST2000, - AST2100 + AST2100, + AST1100 } CHIP_ID; /* AST REC Info */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.85.0/src/ast_mode.c new/xf86-video-ast-0.87.0/src/ast_mode.c --- old/xf86-video-ast-0.85.0/src/ast_mode.c 2008-03-19 15:28:56.000000000 +0100 +++ new/xf86-video-ast-0.87.0/src/ast_mode.c 2008-12-22 05:18:28.000000000 +0100 @@ -190,11 +190,11 @@ (SyncPP | Charx8Dot), 0xFF, 1, 0x33 }, }; -VBIOS_ENHTABLE_STRUCT Res1920x1200Table[] = { - {2592, 1920,136, 200, 1245, 1200, 3, 6, VCLK193_25, /* 60Hz */ - (SyncPP | Charx8Dot), 60, 1, 0x33 }, - {2592, 1920,136, 200, 1245, 1200, 3, 6, VCLK193_25, /* end */ - (SyncPP | Charx8Dot), 0xFF, 1, 0x33 }, +VBIOS_ENHTABLE_STRUCT Res1920x1200Table[] = { + {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154, /* 60Hz */ + (SyncNP | Charx8Dot), 60, 1, 0x34 }, + {2080, 1920, 48, 32, 1235, 1200, 3, 6, VCLK154, /* 60Hz */ + (SyncNP | Charx8Dot), 0xFF, 1, 0x34 }, }; VBIOS_DCLK_INFO DCLKTable [] = { @@ -214,7 +214,7 @@ {0x85, 0x24, 0x00}, /* 0D: VCLK135 */ {0x67, 0x22, 0x00}, /* 0E: VCLK157_5 */ {0x6A, 0x22, 0x00}, /* 0F: VCLK162 */ - {0x61, 0x2C, 0x81}, /* 10: VCLK193_25 */ + {0x4d, 0x4c, 0x80}, /* 10: VCLK193_25 */ }; VBIOS_DAC_INFO DAC_TEXT[] = { @@ -341,6 +341,7 @@ void vSetOffsetReg(ScrnInfoPtr pScrn, DisplayModePtr mode, PVBIOS_MODE_INFO pVGAModeInfo); void vSetDCLKReg(ScrnInfoPtr pScrn, DisplayModePtr mode, PVBIOS_MODE_INFO pVGAModeInfo); void vSetExtReg(ScrnInfoPtr pScrn, DisplayModePtr mode, PVBIOS_MODE_INFO pVGAModeInfo); +void vSetSyncReg(ScrnInfoPtr pScrn, DisplayModePtr mode, PVBIOS_MODE_INFO pVGAModeInfo); Bool bSetDACReg(ScrnInfoPtr pScrn, DisplayModePtr mode, PVBIOS_MODE_INFO pVGAModeInfo); Bool @@ -363,6 +364,7 @@ vSetOffsetReg(pScrn, mode, &vgamodeinfo); vSetDCLKReg(pScrn, mode, &vgamodeinfo); vSetExtReg(pScrn, mode, &vgamodeinfo); + vSetSyncReg(pScrn, mode, &vgamodeinfo); bSetDACReg(pScrn, mode, &vgamodeinfo); /* post set mode */ @@ -534,6 +536,7 @@ /* Set GR */ for (i=0; i<9; i++) { + jReg = pStdModePtr->GR[i]; SetIndexReg(GR_PORT,(UCHAR) i, jReg); } @@ -568,10 +571,10 @@ if (usTemp & 0x20) jReg05 |= 0x80; /* HBE D[5] */ if (usTemp & 0x40) jRegAD |= 0x01; /* HBE D[6] */ SetIndexRegMask(CRTC_PORT,0x03, 0xE0, (UCHAR) (usTemp & 0x1F)); - usTemp = (mode->CrtcHSyncStart >> 3 ); + usTemp = (mode->CrtcHSyncStart >> 3 ) + 2; if (usTemp & 0x100) jRegAC |= 0x40; /* HRS D[5] */ SetIndexRegMask(CRTC_PORT,0x04, 0x00, (UCHAR) (usTemp)); - usTemp = (mode->CrtcHSyncEnd >> 3 ) & 0x3F; + usTemp = ((mode->CrtcHSyncEnd >> 3 ) + 2) & 0x3F; if (usTemp & 0x20) jRegAD |= 0x04; /* HRE D[5] */ SetIndexRegMask(CRTC_PORT,0x05, 0x60, (UCHAR) ((usTemp & 0x1F) | jReg05)); @@ -686,6 +689,20 @@ } +void vSetSyncReg(ScrnInfoPtr pScrn, DisplayModePtr mode, PVBIOS_MODE_INFO pVGAModeInfo) +{ + PVBIOS_ENHTABLE_STRUCT pEnhModePtr; + ASTRecPtr pAST; + UCHAR jReg; + + pAST = ASTPTR(pScrn); + pEnhModePtr = pVGAModeInfo->pEnhTableEntry; + + jReg = GetReg(MISC_PORT_READ); + jReg |= (UCHAR) (pEnhModePtr->Flags & SyncNN); + SetReg(MISC_PORT_WRITE,jReg); + +} Bool bSetDACReg(ScrnInfoPtr pScrn, DisplayModePtr mode, PVBIOS_MODE_INFO pVGAModeInfo) { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.85.0/src/ast_mode.h new/xf86-video-ast-0.87.0/src/ast_mode.h --- old/xf86-video-ast-0.85.0/src/ast_mode.h 2008-03-19 15:28:56.000000000 +0100 +++ new/xf86-video-ast-0.87.0/src/ast_mode.h 2008-12-22 05:18:28.000000000 +0100 @@ -48,7 +48,8 @@ #define VCLK135 0x0D #define VCLK157_5 0x0E #define VCLK162 0x0F -#define VCLK193_25 0x10 +/* #define VCLK193_25 0x10 */ +#define VCLK154 0x10 /* Flags Definition */ #define Charx8Dot 0x00000001 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.85.0/src/ast_vgatool.c new/xf86-video-ast-0.87.0/src/ast_vgatool.c --- old/xf86-video-ast-0.85.0/src/ast_vgatool.c 2008-03-19 15:28:56.000000000 +0100 +++ new/xf86-video-ast-0.87.0/src/ast_vgatool.c 2008-12-22 05:18:28.000000000 +0100 @@ -61,11 +61,13 @@ Bool bASTRegInit(ScrnInfoPtr pScrn); ULONG GetVRAMInfo(ScrnInfoPtr pScrn); ULONG GetMaxDCLK(ScrnInfoPtr pScrn); +void GetChipType(ScrnInfoPtr pScrn); void vAST1000DisplayOn(ASTRecPtr pAST); void vAST1000DisplayOff(ASTRecPtr pAST); void vSetStartAddressCRT1(ASTRecPtr pAST, ULONG base); void vASTLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, VisualPtr pVisual); void ASTDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags); +Bool GetVGA2EDID(ScrnInfoPtr pScrn, unsigned char *pEDIDBuffer); void vASTOpenKey(ScrnInfoPtr pScrn) @@ -172,7 +174,10 @@ } - /* Get Bandwidth */ + /* Get Bandwidth */ + /* Modify DARM utilization to 60% for AST1100/2100 16bits DRAM, ycchen@032508 */ + if ( ((pAST->jChipType == AST2100) || (pAST->jChipType == AST1100)) && (ulDRAMBusWidth == 16) ) + DRAMEfficiency = 600; ulDRAMBandwidth = ulMCLK * ulDRAMBusWidth * 2 / 8; ActualDRAMBandwidth = ulDRAMBandwidth * DRAMEfficiency / 1000; @@ -183,13 +188,34 @@ else ulDCLK = ActualDRAMBandwidth / ((pScrn->bitsPerPixel+1) / 8); - if (ulDCLK > 165) ulDCLK = 165; - + /* Add for AST2100, ycchen@061807 */ + if (pAST->jChipType == AST2100) + if (ulDCLK > 200) ulDCLK = 200; + else + if (ulDCLK > 165) ulDCLK = 165; + return(ulDCLK); } void +GetChipType(ScrnInfoPtr pScrn) +{ + ASTRecPtr pAST = ASTPTR(pScrn); + ULONG ulData; + + pAST->jChipType = AST2100; + + *(ULONG *) (pAST->MMIOVirtualAddr + 0xF004) = 0x1e6e0000; + *(ULONG *) (pAST->MMIOVirtualAddr + 0xF000) = 0x1; + + ulData = *(ULONG *) (pAST->MMIOVirtualAddr + 0x1207c); + + if ((ulData & 0x0300) == 0x0200) + pAST->jChipType = AST1100; +} + +void vSetStartAddressCRT1(ASTRecPtr pAST, ULONG base) { SetIndexReg(CRTC_PORT,0x0D, (UCHAR) (base & 0xFF)); @@ -319,3 +345,96 @@ } + +#define I2C_BASE 0x1e780000 +#define I2C_OFFSET (0xA000 + 0x40 * 4) /* port4 */ +#define I2C_DEVICEADDR 0x0A0 /* slave addr */ + +Bool +GetVGA2EDID(ScrnInfoPtr pScrn, unsigned char *pEDIDBuffer) +{ + ASTRecPtr pAST = ASTPTR(pScrn); + UCHAR *ulI2CBase = pAST->MMIOVirtualAddr + 0x10000 + I2C_OFFSET; + ULONG i, ulData; + UCHAR *pjEDID; + + pjEDID = pEDIDBuffer; + + /* SCU settings */ + *(ULONG *) (pAST->MMIOVirtualAddr + 0xF004) = 0x1e6e0000; + *(ULONG *) (pAST->MMIOVirtualAddr + 0xF000) = 0x1; + xf86UDelay(10000); + + *(ULONG *) (pAST->MMIOVirtualAddr + 0x12000) = 0x1688A8A8; + ulData = *(ULONG *) (pAST->MMIOVirtualAddr + 0x12004); + ulData &= 0xfffffffb; + *(ULONG *) (pAST->MMIOVirtualAddr + 0x12004) = ulData; + xf86UDelay(10000); + + /* I2C settings */ + *(ULONG *) (pAST->MMIOVirtualAddr + 0xF004) = I2C_BASE; + *(ULONG *) (pAST->MMIOVirtualAddr + 0xF000) = 0x1; + xf86UDelay(10000); + + /* I2C Start */ + *(ULONG *) (ulI2CBase + 0x00) = 0x0; + *(ULONG *) (ulI2CBase + 0x04) = 0x77777355; + *(ULONG *) (ulI2CBase + 0x08) = 0x0; + *(ULONG *) (ulI2CBase + 0x10) = 0xffffffff; + *(ULONG *) (ulI2CBase + 0x00) = 0x1; + *(ULONG *) (ulI2CBase + 0x0C) = 0xAF; + *(ULONG *) (ulI2CBase + 0x20) = I2C_DEVICEADDR; + *(ULONG *) (ulI2CBase + 0x14) = 0x03; + do { + ulData = *(volatile ULONG *) (ulI2CBase + 0x10); + } while (!(ulData & 0x03)); + if (ulData & 0x02) /* NACK */ + return (FALSE); + *(ULONG *) (ulI2CBase + 0x10) = 0xffffffff; + *(ULONG *) (ulI2CBase + 0x20) = (ULONG) 0; /* Offset */ + *(ULONG *) (ulI2CBase + 0x14) = 0x02; + do { + ulData = *(volatile ULONG *) (ulI2CBase + 0x10); + } while (!(ulData & 0x01)); + *(ULONG *) (ulI2CBase + 0x10) = 0xffffffff; + *(ULONG *) (ulI2CBase + 0x20) = I2C_DEVICEADDR + 1; + *(ULONG *) (ulI2CBase + 0x14) = 0x03; + do { + ulData = *(volatile ULONG *) (ulI2CBase + 0x10); + } while (!(ulData & 0x01)); + + /* I2C Read */ + for (i=0; i<127; i++) + { + *(ULONG *) (ulI2CBase + 0x10) = 0xffffffff; + *(ULONG *) (ulI2CBase + 0x0C) |= 0x10; + *(ULONG *) (ulI2CBase + 0x14) = 0x08; + do { + ulData = *(volatile ULONG *) (ulI2CBase + 0x10); + } while (!(ulData & 0x04)); + *(ULONG *) (ulI2CBase + 0x10) = 0xffffffff; + *(UCHAR *) (pjEDID++) = (UCHAR) ((*(ULONG *) (ulI2CBase + 0x20) & 0xFF00) >> 8); + } + + /* Read Last Byte */ + *(ULONG *) (ulI2CBase + 0x10) = 0xffffffff; + *(ULONG *) (ulI2CBase + 0x0C) |= 0x10; + *(ULONG *) (ulI2CBase + 0x14) = 0x18; + do { + ulData = *(volatile ULONG *) (ulI2CBase + 0x10); + } while (!(ulData & 0x04)); + *(ULONG *) (ulI2CBase + 0x10) = 0xffffffff; + *(UCHAR *) (pjEDID++) = (UCHAR) ((*(ULONG *) (ulI2CBase + 0x20) & 0xFF00) >> 8); + + /* I2C Stop */ + *(ULONG *) (ulI2CBase + 0x10) = 0xffffffff; + *(ULONG *) (ulI2CBase + 0x14) = 0x20; + do { + ulData = *(volatile ULONG *) (ulI2CBase + 0x10); + } while (!(ulData & 0x10)); + *(ULONG *) (ulI2CBase + 0x0C) &= 0xffffffef; + *(ULONG *) (ulI2CBase + 0x10) = 0xffffffff; + + return (TRUE); + +} /* GetVGA2EDID */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.85.0/src/ast_vgatool.h new/xf86-video-ast-0.87.0/src/ast_vgatool.h --- old/xf86-video-ast-0.85.0/src/ast_vgatool.h 2008-03-19 15:28:56.000000000 +0100 +++ new/xf86-video-ast-0.87.0/src/ast_vgatool.h 2008-12-22 05:18:28.000000000 +0100 @@ -25,6 +25,7 @@ #define VIDEOMEM_SIZE_16M 0x01000000 #define VIDEOMEM_SIZE_32M 0x02000000 #define VIDEOMEM_SIZE_64M 0x04000000 +#define VIDEOMEM_SIZE_128M 0x08000000 #define AR_PORT_WRITE (pAST->RelocateIO + 0x40) #define MISC_PORT_WRITE (pAST->RelocateIO + 0x42) @@ -34,6 +35,7 @@ #define GR_PORT (pAST->RelocateIO + 0x4E) #define CRTC_PORT (pAST->RelocateIO + 0x54) #define INPUT_STATUS1_READ (pAST->RelocateIO + 0x5A) +#define MISC_PORT_READ (pAST->RelocateIO + 0x4C) #define GetReg(base) inb(base) #define SetReg(base,val) outb(base,val) ++++++ xf86-video-ati-6.9.0.tar.bz2 -> xf86-video-ati-6.11.0.tar.bz2 ++++++ ++++ 35122 lines of diff (skipped) ++++++ xf86-video-chips-1.2.0.tar.bz2 -> xf86-video-chips-1.2.1.tar.bz2 ++++++ ++++ 13017 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-chips-1.2.0/config.h.in new/xf86-video-chips-1.2.1/config.h.in --- old/xf86-video-chips-1.2.0/config.h.in 2008-03-19 18:35:58.000000000 +0100 +++ new/xf86-video-chips-1.2.1/config.h.in 2008-12-22 05:26:01.000000000 +0100 @@ -8,6 +8,9 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Have ISA support */ +#undef HAVE_ISA + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-chips-1.2.0/configure.ac new/xf86-video-chips-1.2.1/configure.ac --- old/xf86-video-chips-1.2.0/configure.ac 2008-03-19 18:35:37.000000000 +0100 +++ new/xf86-video-chips-1.2.1/configure.ac 2008-12-22 05:25:45.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-chips], - 1.2.0, + 1.2.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-chips) @@ -73,6 +73,14 @@ fi AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) +save_CFLAGS="$CFLAGS" +CFLAGS="$XORG_CFLAGS" +AC_CHECK_DECL(xf86ConfigIsaEntity, + [AC_DEFINE(HAVE_ISA, 1, [Have ISA support])], + [], + [#include "xf86.h"]) +CFLAGS="$save_CFLAGS" + # Checks for header files. AC_HEADER_STDC diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-chips-1.2.0/src/ct_driver.c new/xf86-video-chips-1.2.1/src/ct_driver.c --- old/xf86-video-chips-1.2.0/src/ct_driver.c 2008-03-19 18:35:01.000000000 +0100 +++ new/xf86-video-chips-1.2.1/src/ct_driver.c 2008-12-22 05:25:35.000000000 +0100 @@ -1,4 +1,3 @@ - /* * Copyright 1993 by Jon Block <block@frc.com> * Modified by Mike Hollick <hollick@graphics.cis.upenn.edu> @@ -86,9 +85,6 @@ /* Drivers that need to access the PCI config space directly need this */ #include "xf86Pci.h" -/* This is used for module versioning */ -#include "xf86Version.h" - /* Standard resources are defined here */ #include "xf86Resources.h" @@ -558,6 +554,7 @@ { -1, -1, RES_UNDEFINED} }; +#ifdef HAVE_ISA static IsaChipsets CHIPSISAchipsets[] = { { CHIPS_CT65520, RES_EXCLUSIVE_VGA }, { CHIPS_CT65525, RES_EXCLUSIVE_VGA }, @@ -577,6 +574,7 @@ { CHIPS_CT64300, RES_EXCLUSIVE_VGA }, { -1, RES_UNDEFINED } }; +#endif /* The options supported by the Chips and Technologies Driver */ typedef enum { @@ -1043,7 +1041,8 @@ xfree(usedChips); } } - + +#ifdef HAVE_ISA /* Isa Bus */ numUsed = xf86MatchIsaInstances(CHIPS_NAME,CHIPSChipsets,CHIPSISAchipsets, drv,chipsFindIsaDevice,devSections, @@ -1057,7 +1056,7 @@ usedChips[i], CHIPSISAchipsets,NULL, NULL,NULL,NULL,NULL))) { - pScrn->driverVersion = VERSION; + pScrn->driverVersion = CHIPS_VERSION; pScrn->driverName = CHIPS_DRIVER_NAME; pScrn->name = CHIPS_NAME; pScrn->Probe = CHIPSProbe; @@ -1074,12 +1073,14 @@ xfree(usedChips); } } +#endif xfree(devSections); return foundScreen; } #endif +#ifdef HAVE_ISA static int chipsFindIsaDevice(GDevPtr dev) { @@ -1163,6 +1164,7 @@ } return found; } +#endif /* Mandatory */ Bool @@ -1542,11 +1544,7 @@ hwp = VGAHWPTR(pScrn); vgaHWGetIOBase(hwp); -#if XF86_VERSION_CURRENT > XF86_VERSION_NUMERIC(4,1,0,0,0) cPtr->PIOBase = hwp->PIOOffset; -#else - cPtr->PIOBase = 0 ; /* for old version the IO offset is global */ -#endif /* * Must allow ensure that storage for the 2nd set of vga registers is * allocated for dual channel cards diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-chips-1.2.0/src/ct_driver.h new/xf86-video-chips-1.2.1/src/ct_driver.h --- old/xf86-video-chips-1.2.0/src/ct_driver.h 2008-03-19 18:35:01.000000000 +0100 +++ new/xf86-video-chips-1.2.1/src/ct_driver.h 2008-12-22 05:25:35.000000000 +0100 @@ -36,6 +36,7 @@ #include "xf86xv.h" #include "vgaHW.h" #include <string.h> +#include <unistd.h> /* Supported chipsets */ typedef enum { @@ -274,11 +275,7 @@ PCITAG PciTag; int Chipset; EntityInfoPtr pEnt; -#if XF86_VERSION_CURRENT > XF86_VERSION_NUMERIC(4,1,0,0,0) - IOADDRESS PIOBase; -#else - int PIOBase; /* unused variable : here for compatibility reason with newer version */ -#endif + IOADDRESS PIOBase; CARD32 IOAddress; unsigned long FbAddress; unsigned int IOBase; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-chips-1.2.0/src/ct_regs.c new/xf86-video-chips-1.2.1/src/ct_regs.c --- old/xf86-video-chips-1.2.0/src/ct_regs.c 2008-03-19 18:35:01.000000000 +0100 +++ new/xf86-video-chips-1.2.1/src/ct_regs.c 2008-12-22 05:25:35.000000000 +0100 @@ -64,9 +64,6 @@ /* Drivers that need to access the PCI config space directly need this */ #include "xf86Pci.h" -/* This is used for module versioning */ -#include "xf86Version.h" - /* Driver specific headers */ #include "ct_driver.h" ++++++ xf86-video-dummy-0.3.0.tar.bz2 -> xf86-video-dummy-0.3.1.tar.bz2 ++++++ ++++ 3867 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-dummy-0.3.0/configure.ac new/xf86-video-dummy-0.3.1/configure.ac --- old/xf86-video-dummy-0.3.0/configure.ac 2008-03-19 22:27:00.000000000 +0100 +++ new/xf86-video-dummy-0.3.1/configure.ac 2009-01-25 23:23:57.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-dummy], - 0.3.0, + 0.3.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-dummy) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-dummy-0.3.0/src/dummy_driver.c new/xf86-video-dummy-0.3.1/src/dummy_driver.c --- old/xf86-video-dummy-0.3.0/src/dummy_driver.c 2008-03-19 22:26:50.000000000 +0100 +++ new/xf86-video-dummy-0.3.1/src/dummy_driver.c 2009-01-25 23:21:56.000000000 +0100 @@ -11,9 +11,6 @@ #include "xf86.h" #include "xf86_OSproc.h" -/* This is used for module versioning */ -#include "xf86Version.h" - /* All drivers initialising the SW cursor need this */ #include "mipointer.h" ++++++ xf86-video-geode-2.11.0.tar.bz2 -> xf86-video-geode-2.11.1.tar.bz2 ++++++ ++++ 12953 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-geode-2.11.0/ChangeLog new/xf86-video-geode-2.11.1/ChangeLog --- old/xf86-video-geode-2.11.0/ChangeLog 2008-12-10 05:23:01.000000000 +0100 +++ new/xf86-video-geode-2.11.1/ChangeLog 2009-02-16 19:46:47.000000000 +0100 @@ -1,3 +1,58 @@ +commit da07a540db2078e00e48897b52a5a1f6d283cfeb +Author: Chris Ball <cjb@laptop.org> +Date: Mon Feb 16 13:37:03 2009 -0500 + + Release 2.11.1. + + Signed-off-by: Chris Ball <cjb@laptop.org> + +commit 4176e9ed24e7b79cefe3e7f4f5d73c7353781f1b +Author: Chris Ball <cjb@laptop.org> +Date: Mon Feb 16 13:41:48 2009 -0500 + + Makefile.am: use "git log" instead of "git-log" + + "git-log" doesn't work on my Fedora machine, but "git log" should work + everywhere. Some distributions choose not to ship all the git aliases. + + Signed-off-by: Chris Ball <cjb@laptop.org> + +commit 990ff710c6220cc3d1ba6b9e8fb972bd168b4472 +Author: Chris Ball <cjb@laptop.org> +Date: Sun Feb 15 15:30:09 2009 -0500 + + Change OLPC detection heuristic to one that works on upstream kernels + + We've been checking whether we have a DCON/are on an OLPC by looking for + files from the "olpc_dcon" kernel module. This module isn't upstream yet, + so this only works for the OLPC custom kernel. We might as well check for + an OLPC kernel module that *is* upstream, so that we can run on unmodified + distributions. This patch moves us to checking for "olpc-ac" instead. + + Signed-off-by: Chris Ball <cjb@laptop.org> + +commit e33dc807bf4504ba242cb19ce8024cdb32e10f4d +Author: Chris Ball <cjb@laptop.org> +Date: Sun Feb 15 00:17:45 2009 -0500 + + Fix pMsk=NULL segfault at startup on OLPC + + Commit 7c278551c79d7a5898c627341f58fad59b7ae20d uses pMsk without testing + for non-NULL, and this causes an immediate segfault when running Sugar. + + Signed-off-by: Chris Ball <cjb@laptop.org> + +commit 7c278551c79d7a5898c627341f58fad59b7ae20d +Author: Mart Raudsepp <mart.raudsepp@artecdesign.ee> +Date: Fri Jan 9 19:32:50 2009 +0200 + + Fallback in case of mask transforms as well. + + Fixes attachment #21519 test case on bug #15700, but not the initial report. + Detective work by Michel Dänzer. + + Signed-off-by: Mart Raudsepp <mart.raudsepp@artecdesign.ee> + commit 0e65d77a636848b6bc24518d8e45aed506122b49 Author: Jordan Crouse <jordan@cosmicpenguin.net> Date: Tue Dec 9 20:54:20 2008 -0700 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-geode-2.11.0/configure.ac new/xf86-video-geode-2.11.1/configure.ac --- old/xf86-video-geode-2.11.0/configure.ac 2008-12-10 04:54:14.000000000 +0100 +++ new/xf86-video-geode-2.11.1/configure.ac 2009-02-16 19:46:00.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-geode], - 2.11.0, + 2.11.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver%2Fgeode], xf86-video-geode) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-geode-2.11.0/Makefile.am new/xf86-video-geode-2.11.1/Makefile.am --- old/xf86-video-geode-2.11.0/Makefile.am 2008-11-17 18:37:03.000000000 +0100 +++ new/xf86-video-geode-2.11.1/Makefile.am 2009-02-16 19:45:09.000000000 +0100 @@ -28,6 +28,6 @@ .PHONY: ChangeLog ChangeLog: - (GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2) + (GIT_DIR=$(top_srcdir)/.git git log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2) dist-hook: ChangeLog diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-geode-2.11.0/missing new/xf86-video-geode-2.11.1/missing --- old/xf86-video-geode-2.11.0/missing 2008-12-10 05:05:50.000000000 +0100 +++ new/xf86-video-geode-2.11.1/missing 2009-02-16 19:46:36.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2005-06-08.21 +scriptversion=2006-05-10.23 -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. @@ -33,6 +33,8 @@ fi run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. @@ -44,7 +46,7 @@ msg="missing on your system" -case "$1" in +case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= @@ -77,6 +79,7 @@ aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c @@ -106,7 +109,7 @@ # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). -case "$1" in +case $1 in lex|yacc) # Not GNU programs, they don't have --version. ;; @@ -135,7 +138,7 @@ # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. -case "$1" in +case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if @@ -164,7 +167,7 @@ test -z "$files" && files="config.h" touch_files= for f in $files; do - case "$f" in + case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; @@ -192,8 +195,8 @@ You can get \`$1' as part of \`Autoconf' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else @@ -214,25 +217,25 @@ in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi - if [ ! -f y.tab.h ]; then + if test ! -f y.tab.h; then echo >y.tab.h fi - if [ ! -f y.tab.c ]; then + if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; @@ -244,18 +247,18 @@ in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi - if [ ! -f lex.yy.c ]; then + if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; @@ -267,11 +270,9 @@ \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then touch $file else test -z "$file" || exec >$file @@ -289,11 +290,17 @@ DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi @@ -317,13 +324,13 @@ fi firstarg="$1" if shift; then - case "$firstarg" in + case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac - case "$firstarg" in + case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-geode-2.11.0/src/geode_dcon.c new/xf86-video-geode-2.11.1/src/geode_dcon.c --- old/xf86-video-geode-2.11.0/src/geode_dcon.c 2008-11-26 17:08:52.000000000 +0100 +++ new/xf86-video-geode-2.11.1/src/geode_dcon.c 2009-02-16 19:44:58.000000000 +0100 @@ -45,7 +45,7 @@ static int _dval = -1; if (_dval == -1) - _dval = (access("/sys/devices/platform/dcon", F_OK) == 0); + _dval = (access("/sys/class/power_supply/olpc-ac", F_OK) == 0); return (Bool) _dval; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-geode-2.11.0/src/lx_exa.c new/xf86-video-geode-2.11.1/src/lx_exa.c --- old/xf86-video-geode-2.11.0/src/lx_exa.c 2008-11-17 18:37:03.000000000 +0100 +++ new/xf86-video-geode-2.11.1/src/lx_exa.c 2009-02-16 19:44:58.000000000 +0100 @@ -564,7 +564,11 @@ return FALSE; } - /* Keep an eye out for rotation transforms - those we can + /* We don't support any mask transforms */ + if (pMsk && pMsk->transform) + return FALSE; + + /* Keep an eye out for source rotation transforms - those we can * do something about */ exaScratch.rotate = RR_Rotate_0; ++++++ xf86-video-glint-1.2.1.tar.bz2 -> xf86-video-glint-1.2.2.tar.bz2 ++++++ ++++ 12085 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-glint-1.2.1/config.h.in new/xf86-video-glint-1.2.2/config.h.in --- old/xf86-video-glint-1.2.1/config.h.in 2008-06-30 17:56:57.000000000 +0200 +++ new/xf86-video-glint-1.2.2/config.h.in 2008-12-22 05:32:33.000000000 +0100 @@ -2,6 +2,9 @@ #include "xorg-server.h" +/* Have cfb8_32 support */ +#undef HAVE_CFB8_32 + /* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-glint-1.2.1/configure.ac new/xf86-video-glint-1.2.2/configure.ac --- old/xf86-video-glint-1.2.1/configure.ac 2008-06-30 17:49:15.000000000 +0200 +++ new/xf86-video-glint-1.2.2/configure.ac 2008-12-22 05:32:17.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-glint], - 1.2.1, + 1.2.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-glint) @@ -69,6 +69,7 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS, [XSERVER_LIBPCIACCESS=yes],[XSERVER_LIBPCIACCESS=no], [#include "xorg-server.h"]) +AC_CHECK_HEADER(cfb8_32.h,[AC_DEFINE(HAVE_CFB8_32, 1, [Have cfb8_32 support])],[]) CPPFLAGS="$SAVE_CPPFLAGS" # Checks for header files. diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-glint-1.2.1/src/glint_driver.c new/xf86-video-glint-1.2.2/src/glint_driver.c --- old/xf86-video-glint-1.2.1/src/glint_driver.c 2008-06-24 00:07:01.000000000 +0200 +++ new/xf86-video-glint-1.2.2/src/glint_driver.c 2008-12-22 05:31:59.000000000 +0100 @@ -28,7 +28,6 @@ * this work is sponsored by S.u.S.E. GmbH, Fuerth, Elsa GmbH, Aachen, * Siemens Nixdorf Informationssysteme and Appian Graphics. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.162 2003/11/03 05:11:11 tsi Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -38,7 +37,6 @@ #include "micmap.h" #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86Version.h" #include "xf86PciInfo.h" #include "xf86Pci.h" #include "xf86cmap.h" @@ -694,17 +692,8 @@ if (pScrn) xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "claimed PCI slot %d:%d:%d\n",bus,device,func); - } else { - /* XXX This is a quick hack */ - int entity; - - entity = xf86ClaimIsaSlot(drv, 0, - devSections[i], TRUE); - pScrn = xf86ConfigIsaEntity(pScrn,0,entity, - NULL,RES_SHARED_VGA, - NULL,NULL,NULL,NULL); } - if (pScrn) { + if (pScrn) { /* Fill in what we can of the ScrnInfoRec */ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "%s successfully probed\n", dev ? dev : "default framebuffer device"); @@ -2060,6 +2049,64 @@ xf86DrvMsg(pScrn->scrnIndex, from, "Max pixel clock is %d MHz\n", pGlint->MaxClock / 1000); + /* Load DDC */ + if (!xf86LoadSubModule(pScrn, "ddc")) { + GLINTFreeRec(pScrn); + return FALSE; + } + xf86LoaderReqSymLists(ddcSymbols, NULL); + /* Load I2C if needed */ + if ((pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA2) || + (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA2V) || + (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA3) || + (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA4) || + (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_R4) || + (pGlint->Chipset == PCI_VENDOR_TI_CHIP_PERMEDIA2)) { + if (xf86LoadSubModule(pScrn, "i2c")) { + I2CBusPtr pBus; + + xf86LoaderReqSymLists(i2cSymbols, NULL); + if ((pBus = xf86CreateI2CBusRec())) { + pBus->BusName = "DDC"; + pBus->scrnIndex = pScrn->scrnIndex; + pBus->I2CUDelay = Permedia2I2CUDelay; + pBus->I2CPutBits = Permedia2I2CPutBits; + pBus->I2CGetBits = Permedia2I2CGetBits; + pBus->DriverPrivate.ptr = pGlint; + if (!xf86I2CBusInit(pBus)) { + xf86DestroyI2CBusRec(pBus, TRUE, TRUE); + } else + pGlint->DDCBus = pBus; + } + + if ((pBus = xf86CreateI2CBusRec())) { + pBus->BusName = "Video"; + pBus->scrnIndex = pScrn->scrnIndex; + pBus->I2CUDelay = Permedia2I2CUDelay; + pBus->I2CPutBits = Permedia2I2CPutBits; + pBus->I2CGetBits = Permedia2I2CGetBits; + pBus->DriverPrivate.ptr = pGlint; + if (!xf86I2CBusInit(pBus)) { + xf86DestroyI2CBusRec(pBus, TRUE, TRUE); + } else + pGlint->VSBus = pBus; + } + } + } + + /* DDC */ + { + xf86MonPtr pMon = NULL; + + if (pGlint->DDCBus) + pMon = xf86DoEDID_DDC2(pScrn->scrnIndex, pGlint->DDCBus); + + if (!pMon) + /* Try DDC1 */; + + xf86SetDDCproperties(pScrn,xf86PrintEDID(pMon)); + } + /* * Setup the ClockRanges, which describe what clock ranges are available, * and what sort of modes they can be used for. @@ -2386,51 +2433,6 @@ xf86LoaderReqSymLists(shadowSymbols, NULL); } - /* Load DDC */ - if (!xf86LoadSubModule(pScrn, "ddc")) { - GLINTFreeRec(pScrn); - return FALSE; - } - xf86LoaderReqSymLists(ddcSymbols, NULL); - /* Load I2C if needed */ - if ((pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA2) || - (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA2V) || - (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA3) || - (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA4) || - (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_R4) || - (pGlint->Chipset == PCI_VENDOR_TI_CHIP_PERMEDIA2)) { - if (xf86LoadSubModule(pScrn, "i2c")) { - I2CBusPtr pBus; - - xf86LoaderReqSymLists(i2cSymbols, NULL); - if ((pBus = xf86CreateI2CBusRec())) { - pBus->BusName = "DDC"; - pBus->scrnIndex = pScrn->scrnIndex; - pBus->I2CUDelay = Permedia2I2CUDelay; - pBus->I2CPutBits = Permedia2I2CPutBits; - pBus->I2CGetBits = Permedia2I2CGetBits; - pBus->DriverPrivate.ptr = pGlint; - if (!xf86I2CBusInit(pBus)) { - xf86DestroyI2CBusRec(pBus, TRUE, TRUE); - } else - pGlint->DDCBus = pBus; - } - - if ((pBus = xf86CreateI2CBusRec())) { - pBus->BusName = "Video"; - pBus->scrnIndex = pScrn->scrnIndex; - pBus->I2CUDelay = Permedia2I2CUDelay; - pBus->I2CPutBits = Permedia2I2CPutBits; - pBus->I2CGetBits = Permedia2I2CGetBits; - pBus->DriverPrivate.ptr = pGlint; - if (!xf86I2CBusInit(pBus)) { - xf86DestroyI2CBusRec(pBus, TRUE, TRUE); - } else - pGlint->VSBus = pBus; - } - } - } - TRACE_EXIT("GLINTPreInit"); return TRUE; } @@ -2885,7 +2887,9 @@ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; GLINTPtr pGlint = GLINTPTR(pScrn); int ret, displayWidth; +#if HAVE_CFB8_32 int init_picture = 0; +#endif unsigned char *FBStart; VisualPtr visual; @@ -2905,19 +2909,6 @@ /* Save the current state */ GLINTSave(pScrn); - /* DDC */ - { - xf86MonPtr pMon = NULL; - - if (pGlint->DDCBus) - pMon = xf86DoEDID_DDC2(pScrn->scrnIndex, pGlint->DDCBus); - - if (!pMon) - /* Try DDC1 */; - - xf86SetDDCproperties(pScrn,xf86PrintEDID(pMon)); - } - /* Initialise the first mode */ if ( (!pGlint->FBDev) && !(GLINTModeInit(pScrn, pScrn->currentMode))) { xf86DrvMsg(scrnIndex, X_ERROR, @@ -3003,10 +2994,14 @@ case 8: case 16: case 24: +#if !HAVE_CFB8_32 + case 32: +#endif ret = fbScreenInit(pScreen, FBStart, pScrn->virtualX, pScrn->virtualY, pScrn->xDpi, pScrn->yDpi, displayWidth, pScrn->bitsPerPixel); +#if HAVE_CFB8_32 init_picture = 1; break; case 32: @@ -3022,6 +3017,7 @@ displayWidth, pScrn->bitsPerPixel); init_picture = 1; } +#endif break; default: xf86DrvMsg(scrnIndex, X_ERROR, @@ -3059,7 +3055,9 @@ } /* must be after RGB ordering fixed */ +#if HAVE_CFB8_32 if (init_picture) +#endif fbPictureInit(pScreen, 0, 0); if (!pGlint->NoAccel) { switch (pGlint->Chipset) @@ -3188,11 +3186,13 @@ } } +#if HAVE_CFB8_32 if((pScrn->overlayFlags & OVERLAY_8_32_PLANAR) && (pScrn->bitsPerPixel == 32)) { if(!xf86Overlay8Plus32Init(pScreen)) return FALSE; } +#endif if(pGlint->ShadowFB) ShadowFBInit(pScreen, GLINTRefreshArea); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-glint-1.2.1/src/glintpcirename.h new/xf86-video-glint-1.2.2/src/glintpcirename.h --- old/xf86-video-glint-1.2.1/src/glintpcirename.h 2008-06-24 00:04:21.000000000 +0200 +++ new/xf86-video-glint-1.2.2/src/glintpcirename.h 2008-12-22 05:31:59.000000000 +0100 @@ -77,6 +77,9 @@ #define PCI_WRITE_LONG(_pcidev, _value, _offset) \ pciWriteLong(PCI_CFG_TAG(_pcidev), (_offset), (_value)) +#define PCI_WRITE_BYTE(_pcidev, _value, _offset) \ + pciWriteByte(PCI_CFG_TAG(_pcidev), (_offset), (_value)) + #else /* XSERVER_LIBPCIACCESS */ typedef struct pci_device *pciVideoPtr; @@ -117,6 +120,9 @@ #define PCI_WRITE_LONG(_pcidev, _value, _offset) \ pci_device_cfg_write_u32((_pcidev), (_value), (_offset)) +#define PCI_WRITE_BYTE(_pcidev, _value, _offset) \ + pci_device_cfg_write_u8((_pcidev), (_value), (_offset)) + #endif /* XSERVER_LIBPCIACCESS */ #endif /* SISPCIRENAME_H */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-glint-1.2.1/src/pm3_dac.c new/xf86-video-glint-1.2.2/src/pm3_dac.c --- old/xf86-video-glint-1.2.1/src/pm3_dac.c 2008-06-24 00:04:21.000000000 +0200 +++ new/xf86-video-glint-1.2.2/src/pm3_dac.c 2008-12-22 05:31:59.000000000 +0100 @@ -437,9 +437,9 @@ "VX1 secondary enabling VGA before int10\n"); /* Enable VGA on the current card. */ - pciWriteByte( pGlint->PciTag, 0xf8, 0 ); - pciWriteByte( pGlint->PciTag, 0xf4, 0 ); - pciWriteByte( pGlint->PciTag, 0xfc, 0 ); + PCI_WRITE_BYTE(pGlint->PciInfo, 0, 0xf8); + PCI_WRITE_BYTE(pGlint->PciInfo, 0, 0xf4); + PCI_WRITE_BYTE(pGlint->PciInfo, 0, 0xfc); /* The card we are on should be VGA-enabled now, so run int10. */ if (xf86LoadSubModule(pScrn, "int10")) { @@ -455,9 +455,9 @@ "VX1 secondary disabling VGA after int10\n"); /* Finally, disable VGA on the current card. */ - pciWriteByte( pGlint->PciTag, 0xf8, 0x70 ); - pciWriteByte( pGlint->PciTag, 0xf4, 0x01 ); - pciWriteByte( pGlint->PciTag, 0xfc, 0x00 ); + PCI_WRITE_BYTE(pGlint->PciInfo, 0x70, 0xf8); + PCI_WRITE_BYTE(pGlint->PciInfo, 0x01, 0xf4); + PCI_WRITE_BYTE(pGlint->PciInfo, 0x00, 0xfc); } } #endif /* __alpha__ */ ++++++ xf86-video-neomagic-1.2.1.tar.bz2 -> xf86-video-neomagic-1.2.2.tar.bz2 ++++++ ++++ 11918 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-neomagic-1.2.1/config.h.in new/xf86-video-neomagic-1.2.2/config.h.in --- old/xf86-video-neomagic-1.2.1/config.h.in 2008-05-21 21:50:38.000000000 +0200 +++ new/xf86-video-neomagic-1.2.2/config.h.in 2008-12-22 05:37:38.000000000 +0100 @@ -8,6 +8,9 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Have ISA support */ +#undef HAVE_ISA + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-neomagic-1.2.1/configure.ac new/xf86-video-neomagic-1.2.2/configure.ac --- old/xf86-video-neomagic-1.2.1/configure.ac 2008-05-21 21:50:00.000000000 +0200 +++ new/xf86-video-neomagic-1.2.2/configure.ac 2008-12-22 05:37:16.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-neomagic], - 1.2.1, + 1.2.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-neomagic) @@ -59,6 +59,14 @@ PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto $REQUIRED_MODULES]) sdkdir=$(pkg-config --variable=sdkdir xorg-server) +save_CFLAGS="$CFLAGS" +CFLAGS="$XORG_CFLAGS" +AC_CHECK_DECL(xf86ConfigIsaEntity, + [AC_DEFINE(HAVE_ISA, 1, [Have ISA support])], + [], + [#include "xf86.h"]) +CFLAGS="$save_CFLAGS" + # Checks for libraries. SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $XORG_CFLAGS" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-neomagic-1.2.1/src/neo_driver.c new/xf86-video-neomagic-1.2.2/src/neo_driver.c --- old/xf86-video-neomagic-1.2.1/src/neo_driver.c 2008-05-21 21:49:50.000000000 +0200 +++ new/xf86-video-neomagic-1.2.2/src/neo_driver.c 2008-12-22 05:37:05.000000000 +0100 @@ -62,9 +62,6 @@ /* Drivers that need to access the PCI config space directly need this */ #include "xf86Pci.h" -/* This is used for module versioning */ -#include "xf86Version.h" - /* All drivers using the vgahw module need this */ #include "vgaHW.h" @@ -325,6 +322,7 @@ { -1, -1, RES_UNDEFINED} }; +#ifdef HAVE_ISA static IsaChipsets NEOISAchipsets[] = { { NM2070, RES_EXCLUSIVE_VGA }, { NM2090, RES_EXCLUSIVE_VGA }, @@ -334,6 +332,7 @@ { NM2200, RES_EXCLUSIVE_VGA }, { -1, RES_UNDEFINED } }; +#endif /* The options supported by the Neomagic Driver */ typedef enum { @@ -646,7 +645,8 @@ xfree(usedChips); } } - + +#ifdef HAVE_ISA /* Isa Bus */ numUsed = xf86MatchIsaInstances(NEO_NAME,NEOChipsets,NEOISAchipsets, @@ -677,11 +677,13 @@ } xfree(usedChips); } +#endif xfree(devSections); return foundScreen; } +#ifdef HAVE_ISA static int neoFindIsaDevice(GDevPtr dev) { @@ -708,7 +710,7 @@ return -1; } } - +#endif /* Mandatory */ Bool ++++++ xf86-video-rendition-4.2.0.tar.bz2 -> xf86-video-rendition-4.2.1.tar.bz2 ++++++ ++++ 60456 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-rendition-4.2.0/ChangeLog new/xf86-video-rendition-4.2.1/ChangeLog --- old/xf86-video-rendition-4.2.0/ChangeLog 2008-03-19 19:47:10.000000000 +0100 +++ new/xf86-video-rendition-4.2.1/ChangeLog 2009-02-24 16:15:44.000000000 +0100 @@ -1,3 +1,21 @@ +commit 29c9c203a1541df36685b6bedd3d4955c5882508 +Author: Alan Coopersmith <alan.coopersmith@sun.com> +Date: Fri Jan 9 16:32:50 2009 -0800 + + Remove xorgconfig & xorgcfg from See Also list in man page + +commit 1de42780432957381a05fc565f04124df7f536e0 +Author: Adam Jackson <ajax@redhat.com> +Date: Fri Aug 15 14:06:54 2008 -0400 + + Uninclude xf86Version.h + +commit 6a565d3a8caad1d44e9cfc724fc8298b3ce023e5 +Author: Adam Jackson <ajax@redhat.com> +Date: Wed Mar 19 14:50:31 2008 -0400 + + rendition 4.2.0 + commit e943057ef844a7a3153b6158f3dd26ae02296e98 Author: Adam Jackson <ajax@redhat.com> Date: Wed Mar 19 14:45:52 2008 -0400 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-rendition-4.2.0/config.h.in new/xf86-video-rendition-4.2.1/config.h.in --- old/xf86-video-rendition-4.2.0/config.h.in 2008-03-19 19:47:10.000000000 +0100 +++ new/xf86-video-rendition-4.2.1/config.h.in 2009-02-24 16:15:44.000000000 +0100 @@ -44,6 +44,10 @@ /* Have 4bpp support */ #undef HAVE_XF4BPP +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + /* Name of package */ #undef PACKAGE diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-rendition-4.2.0/configure.ac new/xf86-video-rendition-4.2.1/configure.ac --- old/xf86-video-rendition-4.2.0/configure.ac 2008-03-19 19:46:00.000000000 +0100 +++ new/xf86-video-rendition-4.2.1/configure.ac 2009-02-24 16:15:10.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-rendition], - 4.2.0, + 4.2.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-rendition) @@ -84,6 +84,7 @@ XORG_MANPAGE_SECTIONS XORG_RELEASE_VERSION +XORG_CHANGELOG XORG_CHECK_LINUXDOC diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-rendition-4.2.0/Makefile.am new/xf86-video-rendition-4.2.1/Makefile.am --- old/xf86-video-rendition-4.2.0/Makefile.am 2008-03-19 15:30:59.000000000 +0100 +++ new/xf86-video-rendition-4.2.1/Makefile.am 2009-02-24 16:15:22.000000000 +0100 @@ -33,6 +33,6 @@ .PHONY: ChangeLog ChangeLog: - (GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2) + $(CHANGELOG_CMD) dist-hook: ChangeLog diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-rendition-4.2.0/man/rendition.man new/xf86-video-rendition-4.2.1/man/rendition.man --- old/xf86-video-rendition-4.2.0/man/rendition.man 2008-03-19 15:30:59.000000000 +0100 +++ new/xf86-video-rendition-4.2.1/man/rendition.man 2009-02-24 16:12:28.000000000 +0100 @@ -107,6 +107,6 @@ .B "Option \*qMTRR\*q" to let the driver request write-combining of memory access on the video board. .SH "SEE ALSO" -__xservername__(1), __xconfigfile__(__filemansuffix__), xorgconfig(1), Xserver(1), X(__miscmansuffix__) +__xservername__(1), __xconfigfile__(__filemansuffix__), Xserver(1), X(__miscmansuffix__) .SH AUTHORS Authors include: Marc Langenbach, Dejan Ilic diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-rendition-4.2.0/src/rendition.h new/xf86-video-rendition-4.2.1/src/rendition.h --- old/xf86-video-rendition-4.2.0/src/rendition.h 2008-03-19 19:41:58.000000000 +0100 +++ new/xf86-video-rendition-4.2.1/src/rendition.h 2008-08-15 20:06:48.000000000 +0200 @@ -14,9 +14,6 @@ /* Everything using inb/outb, etc needs "compiler.h" */ #include "compiler.h" -/* This is used for module versioning */ -#include "xf86Version.h" - /* Drivers for PCI hardware need this */ #include "xf86PciInfo.h" ++++++ xf86-video-s3-0.6.0.tar.bz2 -> xf86-video-s3-0.6.1.tar.bz2 ++++++ ++++ 13369 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/ChangeLog new/xf86-video-s3-0.6.1/ChangeLog --- old/xf86-video-s3-0.6.0/ChangeLog 2008-03-19 15:31:01.000000000 +0100 +++ new/xf86-video-s3-0.6.1/ChangeLog 2008-12-22 06:24:47.000000000 +0100 @@ -1,3 +1,27 @@ +2008-07-06 Evgeny M. Zubok <evgeny.zubok@tochka.ru> + + * src/s3_video.c: + + Streams Processor initialization. + + XVideo support for 16, 24 and 32 bpp (only for TRIO64V2). + + * src/s3_driver.c: + + Add XVideo option (enabled by default). + + Replace "swcursor" by "hwcursor" option (HW cursor + not implemented yet for all chipsets). + + Close bug #5527: 24-bit colour depth support (24bpp and + 32bpp framebuffer) for TRIO64V2. Acceleration doesn't work + with packed colour mode (24 bpp FB) but works with 32bpp + framebuffer mode (hardware limitation? -- need data). + + Fix system hang-up when switching between console and X session. + + Some minor changes of driver messages. + 2008-02-23 Evgeny M. Zubok <evgeny.zubok@tochka.ru> * src/s3_driver.c: Add DPMS support for S3 Trio64V2 and possibly diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/configure.ac new/xf86-video-s3-0.6.1/configure.ac --- old/xf86-video-s3-0.6.0/configure.ac 2008-03-19 19:53:21.000000000 +0100 +++ new/xf86-video-s3-0.6.1/configure.ac 2008-12-22 06:25:40.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-s3], - 0.6.0, + 0.6.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-s3) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/src/Makefile.am new/xf86-video-s3-0.6.1/src/Makefile.am --- old/xf86-video-s3-0.6.0/src/Makefile.am 2008-03-19 19:54:46.000000000 +0100 +++ new/xf86-video-s3-0.6.1/src/Makefile.am 2008-12-22 06:24:47.000000000 +0100 @@ -39,13 +39,12 @@ s3_pcirename.h \ s3_reg.h \ s3_Ti.c \ - s3_Trio64DAC.c \ - s3_video.c + s3_Trio64DAC.c noinst_LTLIBRARIES = libs3_accel_newmmio.la libs3_accel_pio.la s3_drv_la_LIBADD = libs3_accel_newmmio.la libs3_accel_pio.la -libs3_accel_newmmio_la_SOURCES = s3_accel.c +libs3_accel_newmmio_la_SOURCES = s3_accel.c s3_video.c libs3_accel_newmmio_la_CFLAGS = $(AM_CFLAGS) -DS3_NEWMMIO=1 libs3_accel_pio_la_SOURCES = s3_accel.c diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/src/newmmio.h new/xf86-video-s3-0.6.1/src/newmmio.h --- old/xf86-video-s3-0.6.0/src/newmmio.h 2008-03-19 19:53:10.000000000 +0100 +++ new/xf86-video-s3-0.6.1/src/newmmio.h 2008-12-22 06:24:47.000000000 +0100 @@ -248,10 +248,10 @@ #define WaitQueue(v) \ - if(!(pS3->PCIRetry)) { \ + if(!(pS3->PCIRetry)) { \ mem_barrier(); \ - while(inb(GP_STAT) & (0x0100 >> (v))); \ - } + while(INB_GP_STAT() & (0x0100 >> (v))); \ + } #define CMD_REG_WIDTH 0x200 /* select 32bit command register */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/src/s3_accel.c new/xf86-video-s3-0.6.1/src/s3_accel.c --- old/xf86-video-s3-0.6.0/src/s3_accel.c 2008-03-19 19:53:10.000000000 +0100 +++ new/xf86-video-s3-0.6.1/src/s3_accel.c 2008-12-22 06:24:47.000000000 +0100 @@ -140,7 +140,7 @@ } } - +#if 0 static void S3SetupForColor8x8PatternFill(ScrnInfoPtr pScrn, int patx, int paty, int rop, unsigned int planemask, @@ -182,6 +182,7 @@ SET_MULT_MISC(CMD_REG_WIDTH); } } +#endif #ifdef S3_NEWMMIO static void S3SetupForCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, @@ -569,9 +570,22 @@ pXAA->SetupForScreenToScreenCopy = S3SetupForScreenToScreenCopy; pXAA->SubsequentScreenToScreenCopy = S3SubsequentScreenToScreenCopy; + pXAA->ScreenToScreenCopyFlags = NO_TRANSPARENCY; +#if 0 +/* + 8x8 color pattern filling doesn't work properly after introducing + framebuffer manager initialization before XAA initialization. There + are problems with addressing a colour patterns from offscreen area. +*/ pXAA->SetupForColor8x8PatternFill = S3SetupForColor8x8PatternFill; pXAA->SubsequentColor8x8PatternFillRect = S3SubsequentColor8x8PatternFillRect; + pXAA->Color8x8PatternFillFlags = NO_TRANSPARENCY | + HARDWARE_PATTERN_SCREEN_ORIGIN | + BIT_ORDER_IN_BYTE_MSBFIRST; + + pXAA->CachePixelGranularity = 0; +#endif #ifdef S3_NEWMMIO pXAA->SetupForCPUToScreenColorExpandFill = diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/src/s3_driver.c new/xf86-video-s3-0.6.1/src/s3_driver.c --- old/xf86-video-s3-0.6.0/src/s3_driver.c 2008-03-19 19:53:10.000000000 +0100 +++ new/xf86-video-s3-0.6.1/src/s3_driver.c 2008-12-22 06:30:35.000000000 +0100 @@ -43,7 +43,6 @@ #include "xf86_OSproc.h" #include "xf86Pci.h" #include "xf86PciInfo.h" -#include "xf86Version.h" #include "xf86Resources.h" #include "xf86fbman.h" #include "xf86cmap.h" @@ -54,6 +53,7 @@ #include "micmap.h" #include "mibstore.h" #include "fb.h" +#include "inputstr.h" #include "IBM.h" #include "TI.h" @@ -152,20 +152,22 @@ typedef enum { OPTION_NOACCEL, - OPTION_SWCURS, + OPTION_HWCURS, OPTION_SLOW_DRAM_REFRESH, OPTION_SLOW_DRAM, OPTION_SLOW_EDODRAM, - OPTION_SLOW_VRAM + OPTION_SLOW_VRAM, + OPTION_XVIDEO } S3Opts; static OptionInfoRec S3Options[] = { { OPTION_NOACCEL, "noaccel", OPTV_BOOLEAN, {0}, FALSE }, - { OPTION_SWCURS, "swcursor", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_HWCURS, "hwcursor", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_SLOW_DRAM_REFRESH, "slow_dram_refresh", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_SLOW_DRAM, "slow_dram", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_SLOW_EDODRAM, "slow_edodram", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_SLOW_VRAM, "slow_vram", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_XVIDEO, "XVideo", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; @@ -388,21 +390,20 @@ pScrn->monitor = pScrn->confScreen->monitor; if (!xf86SetDepthBpp(pScrn, 0, 0, 0, Support24bppFb | Support32bppFb)) - return FALSE; + return FALSE; switch (pScrn->depth) { - case 8: - case 15: - case 16: - case 24: - case 32: - /* OK */ - break; - default: - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Given depth (%d) is not supported by this driver\n", - pScrn->depth); - return FALSE; + case 8: + case 15: + case 16: + case 24: + /* OK */ + break; + default: + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Given depth (%d) is not supported by this driver\n", + pScrn->depth); + return FALSE; } xf86PrintDepthBpp(pScrn); @@ -427,37 +428,13 @@ xf86CollectOptions(pScrn, NULL); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, S3Options); - if (xf86ReturnOptValBool(S3Options, OPTION_NOACCEL, FALSE)) { - pS3->NoAccel = TRUE; - xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: NoAccel - acceleration disabled\n"); - } else - pS3->NoAccel = FALSE; - if (xf86ReturnOptValBool(S3Options, OPTION_SWCURS, FALSE)) { - pS3->SWCursor = TRUE; - xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: SWCursor - using software cursor\n"); - } else - pS3->SWCursor = FALSE; - if (xf86ReturnOptValBool(S3Options, OPTION_SLOW_DRAM_REFRESH, FALSE)) { - pS3->SlowDRAMRefresh = TRUE; - xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: Slow DRAM Refresh enabled\n"); - } else - pS3->SlowDRAMRefresh = FALSE; - if (xf86ReturnOptValBool(S3Options, OPTION_SLOW_DRAM, FALSE)) { - pS3->SlowDRAM = TRUE; - xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: Slow DRAM enabled\n"); - } else - pS3->SlowDRAM = FALSE; - if (xf86ReturnOptValBool(S3Options, OPTION_SLOW_EDODRAM, FALSE)) { - pS3->SlowEDODRAM = TRUE; - xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: Slow EDO DRAM enabled\n"); - } else - pS3->SlowEDODRAM = FALSE; - if (xf86ReturnOptValBool(S3Options, OPTION_SLOW_DRAM, FALSE)) { - pS3->SlowVRAM = TRUE; - xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: Slow VRAM enabled\n"); - } else - pS3->SlowVRAM = FALSE; - + pS3->XVideo = xf86ReturnOptValBool(S3Options, OPTION_XVIDEO, TRUE); + pS3->NoAccel = xf86ReturnOptValBool(S3Options, OPTION_NOACCEL, FALSE); + pS3->HWCursor = xf86ReturnOptValBool(S3Options, OPTION_HWCURS, FALSE); + pS3->SlowDRAMRefresh = xf86ReturnOptValBool(S3Options, OPTION_SLOW_DRAM_REFRESH, FALSE); + pS3->SlowDRAM = xf86ReturnOptValBool(S3Options, OPTION_SLOW_DRAM, FALSE); + pS3->SlowEDODRAM = xf86ReturnOptValBool(S3Options, OPTION_SLOW_EDODRAM, FALSE); + pS3->SlowVRAM = xf86ReturnOptValBool(S3Options, OPTION_SLOW_VRAM, FALSE); if (pScrn->numEntities > 1) { S3FreeRec(pScrn); return FALSE; @@ -532,6 +509,11 @@ break; } + if (HAS_STREAMS_PROCESSOR() && pS3->S3NewMMIO) + pS3->hasStreams = TRUE; + else + pS3->hasStreams = FALSE; + pS3->FBAddress = PCI_REGION_BASE(pS3->PciInfo, 0, REGION_MEM); pScrn->memPhysBase = pS3->FBAddress; pScrn->fbOffset = 0; @@ -581,9 +563,10 @@ if (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) { + /* disable DAC power saving to avoid bright left edge */ outb (0x3d4, 0x86); outb (0x3d5, 0x80); - + /* disable the stream display fetch length control */ outb (0x3d4, 0x90); outb (0x3d5, 0x00); } @@ -664,17 +647,28 @@ #endif switch(pScrn->bitsPerPixel) { case 8: - pS3->MaxClock = 135000; + if (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) + pS3->MaxClock = 170000; + else + pS3->MaxClock = 135000; + + pScrn->rgbBits = 6; break; case 16: pS3->MaxClock = 80000; + pScrn->rgbBits = 6; break; case 24: case 32: - pS3->MaxClock = 50000; + if (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) + pS3->MaxClock = 56700; + else + pS3->MaxClock = 50000; + + pScrn->rgbBits = 8; break; } - pScrn->rgbBits = 6; + pS3->LoadPalette = S3GenericLoadPalette; } @@ -684,7 +678,7 @@ return FALSE; } - if (pS3->SWCursor) + if (!pS3->HWCursor) pS3->CursorInit = NULL; pS3->RefClock = S3GetRefClock(pScrn); @@ -749,6 +743,7 @@ { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; S3Ptr pS3 = S3PTR(pScrn); + BoxRec ScreenArea; pScrn->fbOffset = 0; @@ -811,31 +806,71 @@ miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); + /* framebuffer manager setup */ + ScreenArea.x1 = 0; + ScreenArea.y1 = 0; + ScreenArea.x2 = pScrn->displayWidth; + ScreenArea.y2 = (pScrn->videoRam * 1024) / pS3->s3BppDisplayWidth; + + if (!xf86InitFBManager(pScreen, &ScreenArea)) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Memory manager initialization to (%d,%d) (%d,%d) failed\n", + ScreenArea.x1, ScreenArea.y1, + ScreenArea.x2, ScreenArea.y2); + return FALSE; + } else + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Memory manager initialized to (%d,%d) (%d,%d)\n", + ScreenArea.x1, ScreenArea.y1, + ScreenArea.x2, ScreenArea.y2); + + + /* 2D acceleration setup */ + + if (pS3->NoAccel) + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, + "Acceleration disabled (by option)\n"); + + /* It seems that acceleration isn't supported for 24-bit packed + colour. Disable it for S3 Trio64V2 */ + if (!pS3->NoAccel && (pScrn->bitsPerPixel == 24) && + (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX)) { + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Acceleration isn't supported for 24 bpp. Disabled.\n"); + pS3->NoAccel = TRUE; + } + if (!pS3->NoAccel) { - if (pS3->S3NewMMIO) { + if (pS3->S3NewMMIO) if (S3AccelInitNewMMIO(pScreen)) { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Acceleration enabled\n"); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using NewMMIO\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Acceleration enabled\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Using NewMMIO\n"); } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Acceleration initialization failed\n"); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Acceleration disabled\n"); + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Acceleration initialization failed\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Acceleration disabled\n"); } - } else { + else { if (S3AccelInitPIO(pScreen)) { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Acceleration enabled\n"); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using PIO\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Acceleration enabled\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Using PIO\n"); } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Acceleration initialization failed\n"); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Acceleration disabled\n"); + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Acceleration initialization failed\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Acceleration disabled\n"); } } - } else { - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Acceleration disabled by option\n"); } - + miDCInitialize(pScreen, xf86GetPointerScreenFuncs()); - /* hw cursor setup */ + /* HW cursor setup */ + if (pS3->CursorInit) { if (pS3->CursorInit(pScreen)) xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using HW cursor\n"); @@ -869,10 +904,54 @@ pScrn->racIoFlags = pScrn->racMemFlags = RAC_COLORMAP | RAC_FB | RAC_VIEWPORT | RAC_CURSOR; -#if 0 - S3InitVideo(pScreen); -#endif + if (pS3->SlowEDODRAM) + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "SlowEDODRAM: Setting 2-cycle EDO\n"); + + if (pS3->SlowVRAM) + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "SlowVRAM: -RAS low time is 4.5 MCLKs\n"); + + if (pS3->SlowDRAM) + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "SlowDRAM: -RAS precharge time is 3.5 MCLKs\n"); + + if (pS3->SlowDRAMRefresh) + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "SlowDRAMRefresh: three refresh cycles per scanline\n"); + + /* XVideo setup */ + + if (pS3->XVideo) { + if (!pS3->hasStreams) { + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Overlay video isn't supported by video hardware. Disabled.\n"); + pS3->XVideo = FALSE; + } else if (pScrn->bitsPerPixel < 16) { + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Overlay video isn't supported for %d bpp. Disabled.\n", pScrn->bitsPerPixel); + pS3->XVideo = FALSE; + } + } else + xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, + "Overlay video disabled by option\n"); + /* At present time we support XV only for chips with New MMIO */ + if ((pS3->XVideo) && (pS3->S3NewMMIO)) + S3InitVideo(pScreen); + + switch (pScrn->bitsPerPixel) { + case 8: + pS3->Streams_FIFO = FIFO_PS16_SS8; + break; + case 15: + case 16: + pS3->Streams_FIFO = FIFO_PS12_SS12; + break; + case 24: + case 32: + pS3->Streams_FIFO = FIFO_PS8_SS16; + break; + } + return TRUE; } @@ -1053,7 +1132,7 @@ void** result = (void**)&pS3->FBBase; int err = pci_device_map_range(pS3->PciInfo, pS3->FBAddress, - pS3->videoRam * 1024, + pScrn->videoRam * 1024, PCI_DEV_MAP_FLAG_WRITABLE | PCI_DEV_MAP_FLAG_WRITE_COMBINE, result); @@ -1107,8 +1186,12 @@ shift = 1; /* XXX IBMRGB */ else if (pS3->Chipset == PCI_CHIP_TRIO || pS3->Chipset == PCI_CHIP_TRIO64UVP || - pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) - shift = -(pS3->s3Bpp >> 1); + pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) { + if (pS3->s3Bpp == 2) + shift = -1; + else + shift = 0; + } return shift; } @@ -1134,13 +1217,22 @@ pS3->s3ScissB = ((pScrn->videoRam * 1024) / pS3->s3BppDisplayWidth) - 1; pS3->s3ScissR = pScrn->displayWidth - 1; - if (mode->HTotal == mode->CrtcHTotal) { + /* + Set correct blanking for S3 Trio64V2. It's also needed + to clear cr33_5. + */ + if (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) + mode->CrtcHBlankStart = mode->CrtcHDisplay + 8; + + if ((mode->HTotal == mode->CrtcHTotal) && (pS3->pixMuxShift != 0)) { if (pS3->pixMuxShift > 0) { /* XXX hack */ /* mode->Flags |= V_PIXMUX; */ mode->CrtcHTotal >>= pS3->pixMuxShift; mode->CrtcHDisplay >>= pS3->pixMuxShift; + mode->CrtcHBlankStart >>= pS3->pixMuxShift; + mode->CrtcHBlankEnd >>= pS3->pixMuxShift; mode->CrtcHSyncStart >>= pS3->pixMuxShift; mode->CrtcHSyncEnd >>= pS3->pixMuxShift; mode->CrtcHSkew >>= pS3->pixMuxShift; @@ -1149,6 +1241,8 @@ mode->CrtcHTotal <<= -pS3->pixMuxShift; mode->CrtcHDisplay <<= -pS3->pixMuxShift; + mode->CrtcHBlankStart <<= -pS3->pixMuxShift; + mode->CrtcHBlankEnd <<= -pS3->pixMuxShift; mode->CrtcHSyncStart <<= -pS3->pixMuxShift; mode->CrtcHSyncEnd <<= -pS3->pixMuxShift; mode->CrtcHSkew <<= -pS3->pixMuxShift; @@ -1202,13 +1296,12 @@ } /* We need to set this first - S3 *is* broken */ - outw(vgaCRIndex, (pVga->CRTC[17] << 8) | 17); + outw(vgaCRIndex, (pVga->CRTC[17] << 8) | 17); for(r=0; r<25; r++) outw(vgaCRIndex, (pVga->CRTC[r] << 8) | r); - for(r=0; r<9; r++) { + for(r=0; r<9; r++) outw(0x3ce, (pVga->Graphics[r] << 8) | r); - } inb(vgaIOBase + 0x0a); @@ -1235,19 +1328,14 @@ if ((pS3->Chipset == PCI_CHIP_964_0) || (pS3->Chipset == PCI_CHIP_964_1)) new->cr33 = 0x20; + else if (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) + new->cr33 &= ~0x20; outb(vgaCRReg, new->cr33); new->cr34 = 0x10; outb(vgaCRIndex, 0x34); outb(vgaCRReg, new->cr34); - if (pS3->SlowDRAMRefresh) - new->cr3a = 0xb7; - else - new->cr3a = 0xb5; - outb(vgaCRIndex, 0x3a); - outb(vgaCRReg, new->cr3a); - if (pS3->Chipset != PCI_CHIP_AURORA64VP) { new->cr3b = (pVga->CRTC[0] + pVga->CRTC[4] + 1) / 2; outb(vgaCRIndex, 0x3b); @@ -1302,7 +1390,7 @@ tmp |= 0x10; break; case 24: - tmp |= 0x20; + tmp |= 0x20; /* there is no such value in spec s3.txt */ break; case 32: tmp |= 0x30; @@ -1373,6 +1461,16 @@ new->cr60 = n; outb(vgaCRReg, new->cr60); + if (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) { + new->cr60 = 255; + outb(vgaCRIndex, 0x60); + outb(vgaCRReg, new->cr60); + + new->cr54 = 31 << 3; + outb(vgaCRIndex, 0x54); + outb(vgaCRReg, new->cr54); + } + outb(vgaCRIndex, 0x55); new->cr55 = (inb(vgaCRReg) & 0x08) | 0x40; outb(vgaCRReg, new->cr55); @@ -1387,10 +1485,10 @@ { int i; unsigned int j; - - i = ((((mode->CrtcHTotal >> 3) - 5) & 0x100) >> 8) | - ((((mode->CrtcHDisplay >> 3) - 1) & 0x100) >> 7) | - ((((mode->CrtcHSyncStart >> 3) - 1) & 0x100) >> 6) | + + i = ((((mode->CrtcHTotal >> 3) - 5) & 0x100) >> 8) | + ((((mode->CrtcHDisplay >> 3) - 1) & 0x100) >> 7) | + ((((mode->CrtcHSyncStart >> 3) - 1) & 0x100) >> 6) | ((mode->CrtcHSyncStart & 0x800) >> 7); if ((mode->CrtcHSyncEnd >> 3) - (mode->CrtcHSyncStart >> 3) > 64) i |= 0x08; @@ -1452,6 +1550,33 @@ outb(vgaCRReg, new->cr42); } + if (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) { + unsigned char a; + + outb(vgaCRIndex, 0x67); + a = inb(vgaCRReg) & 0xfe; + + switch (pScrn->depth) { + case 8: + break; + case 15: + a |= (3 << 4); + break; + case 16: + a |= (5 << 4); + break; + case 24: + a |= (13 << 4); + break; + } + + if (pS3->hasStreams) + a |= (3 << 2); + + WaitVSync(); /* Wait for VSync before setting mode */ + outb(vgaCRReg, a); + } + if (pS3->Chipset == PCI_CHIP_968) { unsigned char a; @@ -1513,6 +1638,35 @@ new->cr66 |= 0x80; outb(vgaCRReg, new->cr66); + if (pS3->SlowDRAMRefresh) + new->cr3a = 0xb7; + else + new->cr3a = 0xb5; + outb(vgaCRIndex, 0x3a); + outb(vgaCRReg, new->cr3a); + + /* + Set 3.5 MCLKs for -RAS low, 2.5 MCLKs for -RAS precharge, + disable -CAS/-OE adjustment. It seems that cr68 has different + format for 96x and TRIOs + */ + if (!((pS3->Chipset == PCI_CHIP_968) || + (pS3->Chipset == PCI_CHIP_964_0) || + (pS3->Chipset == PCI_CHIP_964_1))) { + + outb(vgaCRIndex, 0x39); + outb(vgaCRReg, 0xa5); + + outb(vgaCRIndex, 0x68); + tmp = inb(vgaCRReg) & ~0x0f; + outb(vgaCRReg, tmp | 0x0f); + + /* Enable 1-cycle EDO access */ + outb(vgaCRIndex, 0x36); + tmp = inb(vgaCRReg); + outb(vgaCRReg, tmp & 0xf3); + } + if (pS3->SlowVRAM) { /* * some Diamond Stealth 64 VRAM cards have a problem with @@ -1530,7 +1684,7 @@ if (pS3->SlowDRAM) { /* * fixes some pixel errors for a SPEA Trio64V+ card - * increas -RAS precharge timing from 2.5 MCLKs + * increase -RAS precharge timing from 2.5 MCLKs * to 3.5 MCLKs */ outb(vgaCRIndex, 0x39); @@ -1543,7 +1697,7 @@ if (pS3->SlowEDODRAM) { /* * fixes some pixel errors for a SPEA Trio64V+ card - * increas from 1-cycle to 2-cycle EDO mode + * increase from 1-cycle to 2-cycle EDO mode */ outb(vgaCRIndex, 0x39); @@ -1626,13 +1780,8 @@ WaitQueue(5); SET_SCISSORS(0, 0, pS3->s3ScissR, pS3->s3ScissB); - outb(vgaCRIndex, 0x6f); - -#if 0 - if (((pScrn->bitsPerPixel == 16) || - (pScrn->bitsPerPixel == 24)) && (pS3->S3NewMMIO)) + if (pS3->hasStreams) S3InitStreams(pScrn, mode); -#endif return TRUE; } @@ -1755,7 +1904,7 @@ { int px, py, a; - miPointerPosition(&px, &py); + miPointerGetPosition(inputInfo.pointer, &px, &py); if (pS3->s3Bpp == 1) a = 4 - 1; @@ -1784,7 +1933,7 @@ S3Ptr pS3 = S3PTR(pScrn); int vgaCRIndex = pS3->vgaCRIndex, vgaCRReg = pS3->vgaCRReg; -#if 1 +#if 0 outb(vgaCRIndex, 0x31); ErrorF("cr31 = 0x%x\n", inb(vgaCRReg)); outb(vgaCRIndex, 0x32); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/src/s3.h new/xf86-video-s3-0.6.1/src/s3.h --- old/xf86-video-s3-0.6.0/src/s3.h 2008-03-19 19:53:10.000000000 +0100 +++ new/xf86-video-s3-0.6.1/src/s3.h 2008-12-22 06:24:47.000000000 +0100 @@ -64,7 +64,7 @@ typedef struct { unsigned char brightness; unsigned char contrast; - FBAreaPtr area; + FBLinearPtr area; RegionRec clip; CARD32 colorKey; CARD32 videoStatus; @@ -98,12 +98,15 @@ OptionInfoPtr Options; unsigned int Flags; Bool NoAccel; - Bool SWCursor; + Bool HWCursor; Bool SlowDRAMRefresh; Bool SlowDRAM; Bool SlowEDODRAM; Bool SlowVRAM; Bool S3NewMMIO; + Bool hasStreams; + int Streams_FIFO; + Bool XVideo; Bool PCIRetry; Bool ColorExpandBug; @@ -159,7 +162,7 @@ unsigned char *imageBuffer; int imageWidth; int imageHeight; - Bool hwCursor; + Bool hwCursor; } S3Rec, *S3Ptr; #define S3PTR(p) ((S3Ptr)((p)->driverPrivate)) @@ -234,9 +237,14 @@ #define S3_964_SERIES() ((pS3->Chipset == PCI_CHIP_964_0) || \ (pS3->Chipset == PCI_CHIP_964_1)) + #define S3_TRIO_SERIES() ((pS3->Chipset == PCI_CHIP_TRIO) || \ (pS3->Chipset == PCI_CHIP_AURORA64VP) || \ (pS3->Chipset == PCI_CHIP_TRIO64UVP) || \ (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX)) +#define HAS_STREAMS_PROCESSOR() ((pS3->Chipset == PCI_CHIP_AURORA64VP) || \ + (pS3->Chipset == PCI_CHIP_TRIO64UVP) || \ + (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX)) + #endif /* _S3_H */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/src/s3_reg.h new/xf86-video-s3-0.6.1/src/s3_reg.h --- old/xf86-video-s3-0.6.0/src/s3_reg.h 2008-03-19 19:53:10.000000000 +0100 +++ new/xf86-video-s3-0.6.1/src/s3_reg.h 2008-12-22 06:24:47.000000000 +0100 @@ -139,6 +139,16 @@ #define VECDIR_315 0x00e0 #define SSVDRAW 0x0010 +/* + * Some values for Streams FIFO. + * primary stream threshold | secondary stream threshold | + * secondary stream slots (can be 0, 8, 12, 16, 24) from 24 total + */ +#define FIFO_PS0_SS24 (0 << 10) | (12 << 5) | 24 +#define FIFO_PS8_SS16 (8 << 10) | (12 << 5) | 16 +#define FIFO_PS12_SS12 (6 << 10) | (8 << 5) | 12 +#define FIFO_PS16_SS8 (8 << 10) | (4 << 5) | 8 +#define FIFO_PS24_SS0 (12 << 10) | (0 << 5) | 0 #define S3_OUTW(p,n) outw(p, n) #define S3_OUTL(p,n) outl(p, n) @@ -153,6 +163,10 @@ while(inw(GP_STAT) & GPBUSY); \ } while(0) +#define WaitVSync() { \ + while (inb(0x3da) & 8); \ + while (!(inb(0x3da) & 8)); \ +} #ifdef S3_NEWMMIO #include "newmmio.h" @@ -162,13 +176,15 @@ */ #define SET_BLEND_CNTL(val) ((mmtr)s3MmioMem)->streams_regs.regs.blend_cntl = (val) #define SET_PSTREAM_CNTL(val) ((mmtr)s3MmioMem)->streams_regs.regs.prim_stream_cntl = (val) -#define SET_PSTREAM_FBADDR(val) ((mmtr)s3MmioMem)->streams_regs.regs.prim_fbaddr0 = (val) +#define SET_PSTREAM_FBADDR0(val) ((mmtr)s3MmioMem)->streams_regs.regs.prim_fbaddr0 = (val) +#define SET_PSTREAM_FBADDR1(val) ((mmtr)s3MmioMem)->streams_regs.regs.prim_fbaddr1 = (val) #define SET_PSTREAM_STRIDE(val) ((mmtr)s3MmioMem)->streams_regs.regs.prim_stream_stride = (val) #define SET_PSTREAM_START(val) ((mmtr)s3MmioMem)->streams_regs.regs.prim_start_coord = (val) #define SET_PSTREAM_WIND(val) ((mmtr)s3MmioMem)->streams_regs.regs.prim_window_size = (val) #define SET_SSTREAM_CNTL(val) ((mmtr)s3MmioMem)->streams_regs.regs.second_stream_cntl = (val) #define SET_SSTRETCH(val) ((mmtr)s3MmioMem)->streams_regs.regs.second_stream_stretch = (val) -#define SET_SSTREAM_FBADDR(val) ((mmtr)s3MmioMem)->streams_regs.regs.second_fbaddr0 = (val) +#define SET_SSTREAM_FBADDR0(val) ((mmtr)s3MmioMem)->streams_regs.regs.second_fbaddr0 = (val) +#define SET_SSTREAM_FBADDR1(val) ((mmtr)s3MmioMem)->streams_regs.regs.second_fbaddr1 = (val) #define SET_SSTREAM_STRIDE(val) ((mmtr)s3MmioMem)->streams_regs.regs.second_stream_stride = (val) #define SET_SSTREAM_START(val) ((mmtr)s3MmioMem)->streams_regs.regs.second_start_coord = (val) #define SET_SSTREAM_WIND(val) ((mmtr)s3MmioMem)->streams_regs.regs.second_window_size = (val) @@ -178,6 +194,7 @@ #define SET_CHROMA_KEY(val) ((mmtr)s3MmioMem)->streams_regs.regs.col_chroma_key_cntl = (val) #define SET_DOUBLE_BUFFER(val) ((mmtr)s3MmioMem)->streams_regs.regs.double_buffer = (val) #define SET_OPAQUE_OVERLAY(val) ((mmtr)s3MmioMem)->streams_regs.regs.opaq_overlay_cntl = (val) +#define SET_FIFO_CNTL(val) ((mmtr)s3MmioMem)->streams_regs.regs.streams_fifo = (val) #else diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/src/s3_Trio64DAC.c new/xf86-video-s3-0.6.1/src/s3_Trio64DAC.c --- old/xf86-video-s3-0.6.0/src/s3_Trio64DAC.c 2008-03-19 19:53:10.000000000 +0100 +++ new/xf86-video-s3-0.6.1/src/s3_Trio64DAC.c 2008-12-22 06:24:47.000000000 +0100 @@ -35,6 +35,7 @@ #include "compiler.h" #include "s3.h" +#include "s3_reg.h" /* this is really quite dumb */ Bool S3Trio64DACProbe(ScrnInfoPtr pScrn) @@ -232,33 +233,30 @@ outb(0x3c4, 0x08); outb(0x3c5, 0x06); /* unlock extended CR9-18 */ - - if (clk != 10) { - outb(0x3c4, 0x12); - outb(0x3c5, n); - outb(0x3c4, 0x13); - outb(0x3c5, m); - - outb(0x3c4, 0x15); - tmp = inb(0x3c5) & ~0x21; - outb(0x3c5, tmp | 0x02); - outb(0x3c5, tmp | 0x22); - outb(0x3c5, tmp | 0x02); - } else { - outb(0x3c4, 0x10); - outb(0x3c5, n); - outb(0x3c4, 0x11); - outb(0x3c5, m); - outb(0x3c4, 0x1a); - outb(0x3c5, n); - - outb(0x3c4, 0x15); - tmp = inb(0x3c5) & ~0x21; - outb(0x3c5, tmp | 0x01); - outb(0x3c5, tmp | 0x21); - outb(0x3c5, tmp | 0x01); - outb(0x3c5, tmp); - } + + outb(0x3c4, 0x12); /* write N1 and N2 to DCLK PLL */ + outb(0x3c5, n); + outb(0x3c4, 0x13); /* write M to DCLK PLL */ + outb(0x3c5, m); + +#if 0 +/* this code was in previous driver version but it was never called. + So I decide to comment it. */ + outb(0x3c4, 0x10); + outb(0x3c5, n); + outb(0x3c4, 0x11); + outb(0x3c5, m); */ + + outb(0x3c4, 0x1a); + outb(0x3c5, n); +#endif + /* Toggle cr15_5 by sequence 0->1->0 to immediately apply + new PLL parameters */ + outb(0x3c4, 0x15); + tmp = inb(0x3c5) & ~0x20; + outb(0x3c5, tmp); + outb(0x3c5, tmp | 0x20); + outb(0x3c5, tmp); outb(0x3c4, 0x08); outb(0x3c5, 0x00); /* lock em */ @@ -331,18 +329,17 @@ S3TrioSetClock(pScrn, mode->Clock, 2, 1, 1, 31, 0, 3, 2, 135000, 270000); - - outb(0x3c4, 1); + outb(0x3c4, 0x01); blank = inb(0x3c5); outb(0x3c5, blank | 0x20); /* blank the screen */ outb(0x3c4, 0x08); sr8 = inb(0x3c5); - outb(0x3c5, 0x06); + outb(0x3c5, 0x06); /* unlock extended sequenser register */ - outb(0x3c4, 0x0d0); - tmp = inb(0x3c5) & ~1; - outb(0x3c5, tmp); + outb(0x3c4, 0x0d); + tmp = inb(0x3c5) & ~0x01; + outb(0x3c5, tmp); /* VCLK, HSYNC, VSYNC are outputs */ outb(0x3c4, 0x15); sr15 = inb(0x3c5) & ~0x10; @@ -352,11 +349,6 @@ outb(pS3->vgaCRIndex, 0x33); cr33 = inb(pS3->vgaCRReg) & ~0x28; - if (pS3->Chipset == PCI_CHIP_TRIO64V2_DXGX) - { - cr33 |= 0x20; - } - /* ! pixmux */ switch (pScrn->depth) { case 8: @@ -369,6 +361,7 @@ cr33 |= 0x08; pixmux = 0x50; break; + case 24: case 32: pixmux = 0xd0; break; @@ -377,6 +370,7 @@ outb(pS3->vgaCRReg, cr33); outb(pS3->vgaCRIndex, 0x67); + WaitVSync(); outb(pS3->vgaCRReg, pixmux | invert_vclk); outb(0x3c4, 0x15); @@ -392,6 +386,6 @@ outb(0x3c4, 0x08); outb(0x3c5, sr8); - outb(0x3c4, 1); + outb(0x3c4, 0x01); outb(0x3c5, blank); /* unblank the screen */ } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3-0.6.0/src/s3_video.c new/xf86-video-s3-0.6.1/src/s3_video.c --- old/xf86-video-s3-0.6.0/src/s3_video.c 2008-03-19 19:53:10.000000000 +0100 +++ new/xf86-video-s3-0.6.1/src/s3_video.c 2008-12-22 06:24:47.000000000 +0100 @@ -29,8 +29,6 @@ #include "config.h" #endif -#define S3_NEWMMIO /* previously defined in Imakefile in monolith */ - #include "xf86.h" #include "xf86_OSproc.h" @@ -59,7 +57,7 @@ static int S3QueryImageAttributes(ScrnInfoPtr, int, unsigned short *, unsigned short *, int *, int *); static void S3ResetVideoOverlay(ScrnInfoPtr); - +static FBLinearPtr S3XVMemAlloc(ScrnInfoPtr pScrn, pointer pVideo, int size); void S3InitVideo(ScreenPtr pScreen) @@ -70,12 +68,8 @@ XF86VideoAdaptorPtr newAdaptor = NULL; int num_adaptors; - if (((pScrn->bitsPerPixel == 16) || - (pScrn->bitsPerPixel == 24)) && (pS3->S3NewMMIO)) { - newAdaptor = S3SetupImageVideoOverlay(pScreen); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using overlay video\n"); - } else - return; + newAdaptor = S3SetupImageVideoOverlay(pScreen); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using overlay video\n"); num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors); @@ -92,7 +86,7 @@ newAdaptors[num_adaptors] = newAdaptor; adaptors = newAdaptors; num_adaptors++; - } + } } } @@ -122,12 +116,42 @@ }; +static FBLinearPtr S3XVMemAlloc(ScrnInfoPtr pScrn, pointer pVideo, int size) +{ + FBLinearPtr pLinear = (FBLinearPtr)pVideo; + ScreenPtr pScreen = pScrn->pScreen; + if (pLinear) { + if ((pLinear->size >= size) || + xf86ResizeOffscreenLinear(pLinear, size)) { + pLinear->MoveLinearCallback = NULL; + pLinear->RemoveLinearCallback = NULL; + return pLinear; + } + xf86FreeOffscreenLinear(pLinear); + } + pLinear = xf86AllocateOffscreenLinear(pScreen, size, 16, + NULL, NULL, NULL); + + if (!pLinear) { + int maxSize; + + xf86QueryLargestOffscreenLinear(pScreen, &maxSize, 16, + PRIORITY_EXTREME); + if (maxSize < size) + return NULL; + + xf86PurgeUnlockedOffscreenAreas(pScreen); + pLinear = xf86AllocateOffscreenLinear(pScreen, size, 16, + NULL, NULL, NULL); + } + return pLinear; +} static XF86VideoFormatRec Formats[NUM_FORMATS_TEXTURE] = { - /*{15, TrueColor},*/ {16, TrueColor}, {24, TrueColor} /* , - {15, DirectColor}*/, {16, DirectColor}, {24, DirectColor} + {16, TrueColor}, {24, TrueColor}, + {16, DirectColor}, {24, DirectColor} }; @@ -188,7 +212,7 @@ return NULL; if(!(pPriv = xcalloc(1, sizeof(S3PortPrivRec) + - (sizeof(DevUnion) * S3_MAX_PORTS)))) + (sizeof(DevUnion) * S3_MAX_PORTS)))) { xfree(adapt); return NULL; @@ -199,15 +223,16 @@ for(i = 0; i < S3_MAX_PORTS; i++) adapt->pPortPrivates[i].val = i; - pPriv->colorKey = (1 << pScrn->offset.red) | (1 << pScrn->offset.green) | - (((pScrn->mask.blue >> pScrn->offset.blue) - 1) << pScrn->offset.blue); + pPriv->colorKey = (1 << pScrn->offset.red) | + (1 << pScrn->offset.green) | + (((pScrn->mask.blue >> pScrn->offset.blue) - 1) << pScrn->offset.blue); pPriv->videoStatus = 0; pPriv->lastPort = -1; pS3->adaptor = adapt; pS3->portPrivate = pPriv; - + return adapt; } @@ -262,11 +287,13 @@ REGION_EMPTY(pScrn->pScreen, &pPriv->clip); if (exit) { + SET_FIFO_CNTL(0x00080000 | FIFO_PS24_SS0); + if (pPriv->videoStatus & CLIENT_VIDEO_ON) SET_BLEND_CNTL(0x01000000); - + if (pPriv->area) { - xf86FreeOffscreenArea(pPriv->area); + xf86FreeOffscreenLinear(pPriv->area); pPriv->area = NULL; } @@ -274,47 +301,6 @@ } } - -static FBAreaPtr S3AllocateMemory(ScrnInfoPtr pScrn, FBAreaPtr area, - int numlines) -{ - ScreenPtr pScreen; - FBAreaPtr new_area; - - if(area) { - if((area->box.y2 - area->box.y1) >= numlines) - return area; - - if(xf86ResizeOffscreenArea(area, pScrn->displayWidth, numlines)) - return area; - - xf86FreeOffscreenArea(area); - } - - pScreen = screenInfo.screens[pScrn->scrnIndex]; - - new_area = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth, - numlines, 0, NULL, NULL, NULL); - - if(!new_area) { - int max_w, max_h; - - xf86QueryLargestOffscreenArea(pScreen, &max_w, &max_h, 0, - FAVOR_WIDTH_THEN_AREA, PRIORITY_EXTREME); - - if((max_w < pScrn->displayWidth) || (max_h < numlines)) - return NULL; - - xf86PurgeUnlockedOffscreenAreas(pScreen); - new_area = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth, - numlines, 0, NULL, NULL, NULL); - } - - return new_area; -} - - - static void S3DisplayVideoOverlay(ScrnInfoPtr pScrn, int id, int offset, short width, short height, int pitch, int x1, int y1, int x2, int y2, @@ -330,139 +316,162 @@ else tmp = 2; - SET_SSTREAM_CNTL(tmp << 28 | 0x01000000 | - ((((src_w-1)<<1)-(drw_w-1)) & 0xfff)); - SET_SSTRETCH(((src_w - 1) & 0x7ff) | (((src_w-drw_w) & 0x7ff) << 16)); + SET_SSTREAM_CNTL((tmp << 28) | 0x01000000 | + ((((src_w - 1) << 1) - (drw_w - 1)) & 0xfff)); + SET_SSTRETCH(((src_w - 1) & 0x7ff) | + (((src_w - drw_w) & 0x7ff) << 16)); SET_BLEND_CNTL(0x05000000); - SET_SSTREAM_FBADDR(offset & 0x3fffff); + SET_SSTREAM_FBADDR0(offset & 0x3fffff); + SET_SSTREAM_FBADDR1(offset & 0x3fffff); SET_SSTREAM_STRIDE(pitch & 0xfff); + SET_SSTREAM_START(((dstBox->x1 + 1) << 16) | (dstBox->y1 + 1)); + SET_SSTREAM_WIND((((drw_w - 1) << 16) | drw_h) & 0x7ff07ff); SET_K1_VSCALE(src_h - 1); SET_K2_VSCALE((src_h - drw_h) & 0x7ff); - - SET_DDA_VERT((((~drw_h)-1)) & 0xfff); - - SET_SSTREAM_START(((dstBox->x1 +1) << 16) | (dstBox->y1 +1)); - SET_SSTREAM_WIND(( ((drw_w-1) << 16) | (drw_h ) ) & 0x7ff07ff); + SET_DDA_VERT(((~drw_h - 1)) & 0xfff); SET_CHROMA_KEY(0x10000000 | ((pScrn->weight.red-1) << 24) | ((pPriv->colorKey & pScrn->mask.red) >> pScrn->offset.red) << - (16 + 8-pScrn->weight.red) | + (16 + 8-pScrn->weight.red) | ((pPriv->colorKey & pScrn->mask.green) >> pScrn->offset.green) << - (8 + 8-pScrn->weight.green) | + (8 + 8-pScrn->weight.green) | ((pPriv->colorKey & pScrn->mask.blue) >> pScrn->offset.blue) << - (8-pScrn->weight.blue)); -} + (8-pScrn->weight.blue)); + SET_FIFO_CNTL(0x00080000 | pS3->Streams_FIFO); +} static int S3PutImage(ScrnInfoPtr pScrn, short src_x, short src_y, - short drw_x, short drw_y, short src_w, short src_h, - short drw_w, short drw_h, int id, unsigned char *buf, - short width, short height, Bool sync, RegionPtr clipBoxes, - pointer data, DrawablePtr pDraw) + short drw_x, short drw_y, short src_w, short src_h, + short drw_w, short drw_h, int id, unsigned char *buf, + short width, short height, Bool sync, + RegionPtr clipBoxes, pointer data, DrawablePtr pDraw) { S3Ptr pS3 = S3PTR(pScrn); S3PortPrivPtr pPriv = pS3->portPrivate; INT32 x1, x2, y1, y2; - unsigned char *dst_start; - int pitch, new_h, offset, offset2=0, offset3=0; - int srcPitch, srcPitch2=0, dstPitch; - int top, left, npixels, nlines; + CARD8 *dst_start; + int pitch, new_h, offset, offsetV = 0, offsetU = 0; + int srcPitch, srcPitchUV = 0, dstPitch, dstSize; + int top, bottom, right, left, npixels, nlines; BoxRec dstBox; - CARD32 tmp; + CARD32 tmp; + int cpp = (pScrn->bitsPerPixel + 7) >> 3; - /* Clip */ - x1 = src_x; - x2 = src_x + src_w; - y1 = src_y; - y2 = src_y + src_h; + /* Clip */ + x1 = src_x; + x2 = src_x + src_w; + y1 = src_y; + y2 = src_y + src_h; - dstBox.x1 = drw_x; - dstBox.x2 = drw_x + drw_w; - dstBox.y1 = drw_y; - dstBox.y2 = drw_y + drw_h; + dstBox.x1 = drw_x; + dstBox.x2 = drw_x + drw_w; + dstBox.y1 = drw_y; + dstBox.y2 = drw_y + drw_h; - if(!xf86XVClipVideoHelper(&dstBox, &x1, &x2, &y1, &y2, - clipBoxes, width, height)) - return Success; - - /*if(!pMga->TexturedVideo) {*/ - dstBox.x1 -= pScrn->frameX0; - dstBox.x2 -= pScrn->frameX0; - dstBox.y1 -= pScrn->frameY0; - dstBox.y2 -= pScrn->frameY0; - /*}*/ - - pitch = pScrn->bitsPerPixel * pScrn->displayWidth >> 3; - dstPitch = ((width << 1) + 15) & ~15; - new_h = ((dstPitch * height) + pitch - 1) / pitch; + if(!xf86XVClipVideoHelper(&dstBox, &x1, &x2, &y1, &y2, clipBoxes, + width, height)) + return Success; - switch(id) { - case FOURCC_YV12: - case FOURCC_I420: - srcPitch = (width + 3) & ~3; - offset2 = srcPitch * height; - srcPitch2 = ((width >> 1) + 3) & ~3; - offset3 = (srcPitch2 * (height >> 1)) + offset2; - break; - case FOURCC_UYVY: - case FOURCC_YUY2: - default: - srcPitch = (width << 1); - break; - } + dstBox.x1 -= pScrn->frameX0; + dstBox.x2 -= pScrn->frameX0; + dstBox.y1 -= pScrn->frameY0; + dstBox.y2 -= pScrn->frameY0; + + /* requested size in bytes */ + dstPitch = ((width << 1) + 15) & ~15; + dstSize = dstPitch * height; + + pPriv->area = S3XVMemAlloc(pScrn, pPriv->area, + (dstSize + cpp - 1) / cpp); + if (!pPriv->area) + return BadAlloc; + + offset = pPriv->area->offset * cpp; + dst_start = pS3->FBBase + offset; + + switch (id) { + case FOURCC_YV12: + case FOURCC_I420: + left = (x1 >> 16) & ~1; + right = ((x2 + 0x1ffff) >> 16) & ~1; + top = (y1 >> 16) & ~1; + bottom = ((y2 + 0x1ffff) >> 16) & ~1; + + if ((right < width) && ((x1 & 0x1ffff) <= (x2 & 0x1ffff))) + right += 2; + if ((bottom < height) && ((y1 & 0x1ffff) <= (y2 & 0x1ffff))) + bottom += 2; + + npixels = right - left; + nlines = bottom - top; + + srcPitch = (width + 3) & ~3; + offsetV = srcPitch * height; + srcPitchUV = ((width >> 1) + 3) & ~3; + offsetU = ((height >> 1) * srcPitchUV) + offsetV; + + tmp = ((top >> 1) * srcPitchUV) + (left >> 1); + offsetV += tmp; + offsetU += tmp; + + if (id == FOURCC_I420) + { + tmp = offsetV; + offsetV = offsetU; + offsetU = tmp; + } + + dst_start += top * dstPitch + (left << 1); + + xf86XVCopyYUV12ToPacked(buf + (top * srcPitch) + left, + buf + offsetV, buf + offsetU, + dst_start, srcPitch, srcPitchUV, + dstPitch, nlines, npixels); + break; + + case FOURCC_UYVY: + case FOURCC_YUY2: + default: + left = (x1 >> 16) & ~1; + right = ((x2 + 0x1ffff) >> 16) & ~1; + top = y1 >> 16; + bottom = (y2 + 0x0ffff) >> 16; + + if ((right < width) && ((x1 & 0x1ffff) <= (x2 & 0x1ffff))) + right += 2; + if ((bottom < height) && ((y1 & 0x0ffff) <= (y2 & 0x0ffff))) + bottom++; + + npixels = right - left; + nlines = bottom - top; + + srcPitch = width << 1; + buf += (top * srcPitch) + (left << 1); + dst_start += top * dstPitch + (left << 1); + + xf86XVCopyPacked(buf, dst_start, srcPitch, dstPitch, + nlines, npixels); + break; + } + + /* update cliplist */ + if(!REGION_EQUAL(pScrn->pScreen, &pPriv->clip, clipBoxes)) { + REGION_COPY(pScrn->pScreen, &pPriv->clip, clipBoxes); + /* draw these */ + xf86XVFillKeyHelper(pScrn->pScreen, pPriv->colorKey, + clipBoxes); + } - if(!(pPriv->area = S3AllocateMemory(pScrn, pPriv->area, new_h))) - return BadAlloc; + offset += (left << 1) + (top * dstPitch); + S3DisplayVideoOverlay(pScrn, id, offset, width, height, dstPitch, + x1, y1, x2, y2, &dstBox, + src_w, src_h, drw_w, drw_h); - /* copy data */ - top = y1 >> 16; - left = (x1 >> 16) & ~1; - npixels = ((((x2 + 0xffff) >> 16) + 1) & ~1) - left; - left <<= 1; - - offset = pPriv->area->box.y1 * pitch; - dst_start = pS3->FBBase + offset + left + (top * dstPitch); - switch(id) { - case FOURCC_YV12: - case FOURCC_I420: - top &= ~1; - tmp = ((top >> 1) * srcPitch2) + (left >> 2); - offset2 += tmp; - offset3 += tmp; - if(id == FOURCC_I420) { - tmp = offset2; - offset2 = offset3; - offset3 = tmp; - } - nlines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top; - xf86XVCopyYUV12ToPacked(buf + (top * srcPitch) + (left >> 1), - buf + offset2, buf + offset3, dst_start, - srcPitch, srcPitch2, dstPitch, nlines, npixels); - break; - case FOURCC_UYVY: - case FOURCC_YUY2: - default: - buf += (top * srcPitch) + left; - nlines = ((y2 + 0xffff) >> 16) - top; - xf86XVCopyPacked(buf, dst_start, srcPitch, dstPitch, nlines, npixels); - break; - } - - /* update cliplist */ - if(!REGION_EQUAL(pScrn->pScreen, &pPriv->clip, clipBoxes)) { - REGION_COPY(pScrn->pScreen, &pPriv->clip, clipBoxes); - /* draw these */ - xf86XVFillKeyHelper(pScrn->pScreen, pPriv->colorKey, clipBoxes); - } - - offset += left + (top * dstPitch); - S3DisplayVideoOverlay(pScrn, id, offset, width, height, dstPitch, - x1, y1, x2, y2, &dstBox, src_w, src_h, drw_w, drw_h); - - pPriv->videoStatus = CLIENT_VIDEO_ON; - return Success; + pPriv->videoStatus = CLIENT_VIDEO_ON; + return Success; } @@ -472,54 +481,92 @@ int *pitches, int *offsets) { int size, tmp; - - *w = (*w + 1) & ~1; - if(offsets) offsets[0] = 0; - - switch(id) { - case FOURCC_YV12: - case FOURCC_I420: - *h = (*h + 1) & ~1; - size = (*w + 3) & ~3; - if(pitches) pitches[0] = size; - size *= *h; - if(offsets) offsets[1] = size; - tmp = ((*w >> 1) + 3) & ~3; - if(pitches) pitches[1] = pitches[2] = tmp; - tmp *= (*h >> 1); - size += tmp; - if(offsets) offsets[2] = size; - size += tmp; - break; - case FOURCC_UYVY: - case FOURCC_YUY2: - default: - size = *w << 1; - if(pitches) pitches[0] = size; - size *= *h; - break; - } + + *w = (*w + 1) & ~1; + if(offsets) offsets[0] = 0; + + switch(id) { + case FOURCC_YV12: + case FOURCC_I420: + *h = (*h + 1) & ~1; + size = (*w + 3) & ~3; + if(pitches) pitches[0] = size; + size *= *h; + if(offsets) offsets[1] = size; + tmp = ((*w >> 1) + 3) & ~3; + if(pitches) pitches[1] = pitches[2] = tmp; + tmp *= (*h >> 1); + size += tmp; + if(offsets) offsets[2] = size; + size += tmp; + break; + case FOURCC_UYVY: + case FOURCC_YUY2: + default: + size = *w << 1; + if(pitches) pitches[0] = size; + size *= *h; + break; + } - return size; + return size; } - void S3InitStreams(ScrnInfoPtr pScrn, DisplayModePtr mode) { S3Ptr pS3 = S3PTR(pScrn); unsigned int pst_wind = (mode->HDisplay-1) << 16 | (mode->VDisplay); - SET_PSTREAM_CNTL(0x05000000 & 0x77000000); - SET_CHROMA_KEY(0x00); - SET_SSTREAM_CNTL(0x03000000); - SET_BLEND_CNTL(0x01000000); - SET_PSTREAM_STRIDE((pScrn->displayWidth * 2) & 0x0fff); - SET_SSTREAM_STRIDE(0x01); - SET_OPAQUE_OVERLAY(0x40000000); - SET_PSTREAM_START(0x00010001); + WaitVSync(); + + switch (pScrn->bitsPerPixel) { + case 8: + SET_PSTREAM_CNTL(0x00000000); + break; + case 15: + SET_PSTREAM_CNTL(0x03000000); + break; + case 16: + SET_PSTREAM_CNTL(0x05000000); + break; + case 24: + SET_PSTREAM_CNTL(0x06000000); + break; + case 32: + SET_PSTREAM_CNTL(0x07000000); + break; + } + + SET_PSTREAM_FBADDR0(0x00000000); + SET_PSTREAM_FBADDR1(0x00000000); + + SET_PSTREAM_STRIDE(pS3->s3BppDisplayWidth & 0x0fff); + SET_PSTREAM_WIND(pst_wind & 0x07ff07ff); + SET_PSTREAM_START(0x00010001); + + SET_CHROMA_KEY(0x00000000); + SET_SSTRETCH(0x00000000); + SET_BLEND_CNTL(0x01000000); + SET_DOUBLE_BUFFER(0x00000000); + + SET_SSTREAM_CNTL(0x03000000); + SET_SSTREAM_FBADDR0(0x00000000); + SET_SSTREAM_FBADDR1(0x00000000); + SET_SSTREAM_STRIDE(0x00000001); SET_SSTREAM_START(0x07ff07ff); SET_SSTREAM_WIND(0x00010001); + + SET_OPAQUE_OVERLAY(0x40000000); + SET_K1_VSCALE(0x00000000); + SET_K2_VSCALE(0x00000000); + SET_DDA_VERT(0x00000000); + + /* + ps thr | ss thr | ss fifo slots + set primary stream FIFO to 24 slots and 12 slots for threshold + */ + SET_FIFO_CNTL(0x00080000 | FIFO_PS24_SS0); } ++++++ xf86-video-s3virge-1.10.1.tar.bz2 -> xf86-video-s3virge-1.10.2.tar.bz2 ++++++ ++++ 11652 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3virge-1.10.1/configure.ac new/xf86-video-s3virge-1.10.2/configure.ac --- old/xf86-video-s3virge-1.10.1/configure.ac 2008-05-21 21:54:36.000000000 +0200 +++ new/xf86-video-s3virge-1.10.2/configure.ac 2008-12-22 06:35:13.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-s3virge], - 1.10.1, + 1.10.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-s3virge) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-s3virge-1.10.1/src/s3v_driver.c new/xf86-video-s3virge-1.10.2/src/s3v_driver.c --- old/xf86-video-s3virge-1.10.1/src/s3v_driver.c 2008-05-21 21:54:10.000000000 +0200 +++ new/xf86-video-s3virge-1.10.2/src/s3v_driver.c 2008-12-22 06:23:36.000000000 +0100 @@ -1232,12 +1232,12 @@ * Toshiba Tecra 5x0/7x0 seems to use 28.636 MHz * Compaq Armada 7x00 uses 14.318 MHz */ - if (find_bios_string(ps3v->PciTag, BIOS_BASE, "COMPAQ M5 BIOS", NULL) != NULL) { + if (find_bios_string(ps3v, BIOS_BASE, "COMPAQ M5 BIOS", NULL) != NULL) { if (xf86GetVerbosity()) xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "COMPAQ M5 BIOS found\n"); /* ps3v->refclk_fact = 1.0; */ } - else if (find_bios_string(ps3v->PciTag, BIOS_BASE, "TOSHIBA Video BIOS", NULL) != NULL) { + else if (find_bios_string(ps3v, BIOS_BASE, "TOSHIBA Video BIOS", NULL) != NULL) { if (xf86GetVerbosity()) xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "TOSHIBA Video BIOS found\n"); /* ps3v->refclk_fact = 2.0; */ @@ -2651,8 +2651,8 @@ case 16: case 24: case 32: - ret = fbScreenInit(pScreen, FBStart, pScrn->virtualX, - pScrn->virtualY, pScrn->xDpi, pScrn->yDpi, + ret = fbScreenInit(pScreen, FBStart, width, + height, pScrn->xDpi, pScrn->yDpi, displayWidth, pScrn->bitsPerPixel); break; default: ++++++ xf86-video-siliconmotion-1.6.0.tar.bz2 -> xf86-video-siliconmotion-1.7.0.tar.bz2 ++++++ ++++ 30677 lines of diff (skipped) ++++++ xf86-video-sis-0.10.0.tar.bz2 -> xf86-video-sis-0.10.1.tar.bz2 ++++++ ++++ 12928 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-sis-0.10.0/configure.ac new/xf86-video-sis-0.10.1/configure.ac --- old/xf86-video-sis-0.10.0/configure.ac 2008-03-19 20:28:25.000000000 +0100 +++ new/xf86-video-sis-0.10.1/configure.ac 2008-12-22 05:38:15.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-sis], - 0.10.0, + 0.10.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-sis) @@ -58,7 +58,6 @@ XORG_DRIVER_CHECK_EXT(RANDR, randrproto) XORG_DRIVER_CHECK_EXT(RENDER, renderproto) XORG_DRIVER_CHECK_EXT(XV, videoproto) -XORG_DRIVER_CHECK_EXT(XF86MISC, xf86miscproto) XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) # Checks for pkg-config packages diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-sis-0.10.0/src/sis_driver.c new/xf86-video-sis-0.10.1/src/sis_driver.c --- old/xf86-video-sis-0.10.0/src/sis_driver.c 2008-03-19 20:28:09.000000000 +0100 +++ new/xf86-video-sis-0.10.1/src/sis_driver.c 2008-12-22 05:37:57.000000000 +0100 @@ -57,8 +57,6 @@ #include "mibank.h" #include "mipointer.h" #include "mibstore.h" -#define _XF86MISC_SERVER_ -#include <X11/extensions/xf86misc.h> #include "edid.h" #define SIS_NEED_inSISREG @@ -669,11 +667,7 @@ pScrn->LeaveVT = SISLeaveVT; pScrn->FreeScreen = SISFreeScreen; pScrn->ValidMode = SISValidMode; -#ifdef X_XF86MiscPassMessage - if(xf86GetVersion() >= XF86_VERSION_NUMERIC(4,3,99,2,0)) { - pScrn->HandleMessage = SISHandleMessage; - } -#endif + foundScreen = TRUE; } @@ -7337,11 +7331,12 @@ xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "Unable to map IO dense aperture. %s (%d)\n", strerror (err), err); -#endif + } +#endif /* XSERVER_LIBPCIACCESS */ } pSiS->IOBaseDense = pSiSEnt->IOBaseDense; - } else -#endif + } else { +#endif /* SISDUALHEAD */ #ifndef XSERVER_LIBPCIACCESS pSiS->IOBaseDense = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_MMIO, pSiS->PciTag, pSiS->IOAddress, (pSiS->mmioSize * 1024)); @@ -7357,8 +7352,11 @@ xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "Unable to map IO dense aperture. %s (%d)\n", strerror (err), err); + } +#endif /* XSERVER_LIBPCIACCESS */ +#ifdef SISDUALHEAD + } #endif - if(pSiS->IOBaseDense == NULL) { SISErrorLog(pScrn, "Could not map MMIO dense area\n"); return FALSE; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-sis-0.10.0/src/sis_driver.h new/xf86-video-sis-0.10.1/src/sis_driver.h --- old/xf86-video-sis-0.10.0/src/sis_driver.h 2008-03-19 20:28:09.000000000 +0100 +++ new/xf86-video-sis-0.10.1/src/sis_driver.h 2008-12-22 05:37:57.000000000 +0100 @@ -1577,10 +1577,6 @@ #ifdef SISDUALHEAD static Bool SISSaveScreenDH(ScreenPtr pScreen, int mode); #endif -#ifdef X_XF86MiscPassMessage -extern int SISHandleMessage(int scrnIndex, const char *msgtype, - const char *msgval, char **retmsg); -#endif static void SISFreeScreen(int scrnIndex, int flags); static ModeStatus SISValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-sis-0.10.0/src/sis_utility.c new/xf86-video-sis-0.10.1/src/sis_utility.c --- old/xf86-video-sis-0.10.0/src/sis_utility.c 2008-03-19 20:28:09.000000000 +0100 +++ new/xf86-video-sis-0.10.1/src/sis_utility.c 2008-12-22 05:37:57.000000000 +0100 @@ -38,8 +38,6 @@ #define NEED_EVENTS #include <X11/X.h> #include "dixstruct.h" -#define _XF86MISC_SERVER_ -#include <X11/extensions/xf86misc.h> #include "sis_videostr.h" @@ -255,9 +253,6 @@ int (*HandleSiSDirectCommand[SISCTRL_MAX_SCREENS])(xSiSCtrlCommandReply *); } xSiSCtrlScreenTable; -#ifdef X_XF86MiscPassMessage -int SISHandleMessage(int scrnIndex, const char *msgtype, const char *msgval, char **retmsg); -#endif void SiSCtrlExtInit(ScrnInfoPtr pScrn); void SiSCtrlExtUnregister(SISPtr pSiS, int index); @@ -853,19 +848,6 @@ #endif /*********************************** - * MessageHandler interface * - * (unused now; use extension) * - ***********************************/ - -#ifdef X_XF86MiscPassMessage -int -SISHandleMessage(int scrnIndex, const char *msgtype, const char *msgval, char **retmsg) -{ - return BadMatch; -} -#endif - -/*********************************** * SiSCtrl extension interface * ***********************************/ ++++++ xf86-video-tdfx-1.4.0.tar.bz2 -> xf86-video-tdfx-1.4.1.tar.bz2 ++++++ ++++ 12508 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.0/configure.ac new/xf86-video-tdfx-1.4.1/configure.ac --- old/xf86-video-tdfx-1.4.0/configure.ac 2008-03-19 20:37:53.000000000 +0100 +++ new/xf86-video-tdfx-1.4.1/configure.ac 2008-12-22 06:20:18.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-tdfx], - 1.4.0, + 1.4.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-tdfx) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.0/src/tdfx_driver.c new/xf86-video-tdfx-1.4.1/src/tdfx_driver.c --- old/xf86-video-tdfx-1.4.0/src/tdfx_driver.c 2008-03-19 20:37:46.000000000 +0100 +++ new/xf86-video-tdfx-1.4.1/src/tdfx_driver.c 2008-12-22 06:20:01.000000000 +0100 @@ -956,6 +956,7 @@ #ifdef XSERVER_LIBPCIACCESS match = pTDFX->PciInfo[0]; + pTDFX->ChipType = DEVICE_ID(match); #else match=pTDFX->PciInfo=xf86GetPciInfoForEntity(pTDFX->pEnt->index); TDFXFindChips(pScrn, match); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tdfx-1.4.0/src/tdfx_priv.c new/xf86-video-tdfx-1.4.1/src/tdfx_priv.c --- old/xf86-video-tdfx-1.4.0/src/tdfx_priv.c 2008-03-19 20:37:46.000000000 +0100 +++ new/xf86-video-tdfx-1.4.1/src/tdfx_priv.c 2008-12-22 06:20:01.000000000 +0100 @@ -104,7 +104,7 @@ { TDFXPtr pTDFX; int oldValue; - long start_sec, end_sec, dummy; + struct timeval start, stop; pTDFX=TDFXPTR(pScrn); ErrorF("Resetting FIFO\n"); @@ -113,17 +113,17 @@ /* Toggle the reset bits */ oldValue=TDFXReadLongMMIO(pTDFX, MISCINIT0); TDFXWriteLongMMIO(pTDFX, MISCINIT0, oldValue|0x23); - xf86getsecs(&start_sec, &dummy); + gettimeofday(&start, NULL); do { - xf86getsecs(&end_sec, &dummy); - } while (end_sec-start_sec<2); + gettimeofday(&stop, NULL); + } while (stop.tv_sec - start.tv_sec < 2); TDFXWriteLongMMIO(pTDFX, MISCINIT0, oldValue); oldValue=TDFXReadLongMMIO(pTDFX, MISCINIT1); TDFXWriteLongMMIO(pTDFX, MISCINIT1, oldValue|BIT(19)); - xf86getsecs(&start_sec, &dummy); + gettimeofday(&start, NULL); do { - xf86getsecs(&end_sec, &dummy); - } while (end_sec-start_sec<2); + gettimeofday(&stop, NULL); + } while (stop.tv_sec - start.tv_sec < 2); TDFXWriteLongMMIO(pTDFX, MISCINIT1, oldValue); InstallFifo(pScrn); } @@ -141,14 +141,16 @@ TDFXPtr pTDFX; int i, cnt, resets=0; int stat; - long start_sec, end_sec, dummy, readptr; + long tmp, readptr; + struct timeval start, stop; TDFXTRACEACCEL("TDFXSyncFifo start\n"); pTDFX=TDFXPTR(pScrn); TDFXSendNOPFifo(pScrn); i=0; cnt=0; - start_sec=0; + start.tv_sec=0; + readptr=TDFXReadLongMMIO(pTDFX, SST_FIFO_RDPTRL0); do { readptr=TDFXReadLongMMIO(pTDFX, SST_FIFO_RDPTRL0); @@ -156,15 +158,15 @@ if (stat&SST_BUSY) i=0; else i++; cnt++; if (cnt==1000) { - if (!start_sec) { - xf86getsecs(&start_sec, &dummy); + if (!start.tv_sec) { + gettimeofday(&start, NULL); } else { - xf86getsecs(&end_sec, &dummy); - if (end_sec-start_sec>3) { - dummy=TDFXReadLongMMIO(pTDFX, SST_FIFO_RDPTRL0); - if (dummy==readptr) { + gettimeofday(&stop, NULL); + if (stop.tv_sec - start.tv_sec > 3) { + tmp = TDFXReadLongMMIO(pTDFX, SST_FIFO_RDPTRL0); + if (tmp == readptr) { TDFXResetFifo(pScrn); - readptr=dummy; + readptr = tmp; resets++; if (resets==3) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -172,7 +174,7 @@ return; } } - start_sec=0; + start.tv_sec=0; } } cnt=0; ++++++ xf86-video-trident-1.3.0.tar.bz2 -> xf86-video-trident-1.3.1.tar.bz2 ++++++ ++++ 12412 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-trident-1.3.0/config.h.in new/xf86-video-trident-1.3.1/config.h.in --- old/xf86-video-trident-1.3.0/config.h.in 2008-03-19 20:40:54.000000000 +0100 +++ new/xf86-video-trident-1.3.1/config.h.in 2008-12-22 05:00:39.000000000 +0100 @@ -8,6 +8,9 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Have ISA support */ +#undef HAVE_ISA + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-trident-1.3.0/configure.ac new/xf86-video-trident-1.3.1/configure.ac --- old/xf86-video-trident-1.3.0/configure.ac 2008-03-19 20:40:40.000000000 +0100 +++ new/xf86-video-trident-1.3.1/configure.ac 2008-12-22 05:00:22.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-trident], - 1.3.0, + 1.3.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-trident) @@ -58,6 +58,14 @@ PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto $REQUIRED_MODULES]) sdkdir=$(pkg-config --variable=sdkdir xorg-server) +save_CFLAGS="$CFLAGS" +CFLAGS="$XORG_CFLAGS" +AC_CHECK_DECL(xf86ConfigIsaEntity, + [AC_DEFINE(HAVE_ISA, 1, [Have ISA support])], + [], + [#include "xf86.h"]) +CFLAGS="$save_CFLAGS" + SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $XORG_CFLAGS" AC_CHECK_DECL(XSERVER_LIBPCIACCESS, diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-trident-1.3.0/src/Makefile.am new/xf86-video-trident-1.3.1/src/Makefile.am --- old/xf86-video-trident-1.3.0/src/Makefile.am 2008-03-19 20:41:41.000000000 +0100 +++ new/xf86-video-trident-1.3.1/src/Makefile.am 2008-12-22 04:59:18.000000000 +0100 @@ -26,6 +26,7 @@ AM_CFLAGS = @XORG_CFLAGS@ trident_drv_la_LTLIBRARIES = trident_drv.la trident_drv_la_LDFLAGS = -module -avoid-version +trident_drv_la_LIBADD = -lm trident_drv_ladir = @moduledir@/drivers trident_drv_la_SOURCES = \ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-trident-1.3.0/src/trident_dac.c new/xf86-video-trident-1.3.1/src/trident_dac.c --- old/xf86-video-trident-1.3.0/src/trident_dac.c 2008-03-19 20:40:10.000000000 +0100 +++ new/xf86-video-trident-1.3.1/src/trident_dac.c 2008-12-22 04:59:18.000000000 +0100 @@ -28,7 +28,6 @@ #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86Version.h" #include "xf86PciInfo.h" #include "xf86Pci.h" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-trident-1.3.0/src/trident_driver.c new/xf86-video-trident-1.3.1/src/trident_driver.c --- old/xf86-video-trident-1.3.0/src/trident_driver.c 2008-03-19 20:40:10.000000000 +0100 +++ new/xf86-video-trident-1.3.1/src/trident_driver.c 2008-12-22 04:59:18.000000000 +0100 @@ -40,7 +40,6 @@ #include "xf86.h" #include "xf86_OSproc.h" #include "xf86Resources.h" -#include "xf86Version.h" #include "xf86PciInfo.h" #include "xf86Pci.h" #include "xf86cmap.h" @@ -174,6 +173,7 @@ { -1, NULL } }; +#ifdef HAVE_ISA static IsaChipsets TRIDENTISAchipsets[] = { { TVGA9000, RES_EXCLUSIVE_VGA }, { TVGA9000i, RES_EXCLUSIVE_VGA }, @@ -185,6 +185,7 @@ { TGUI9440AGi, RES_EXCLUSIVE_VGA }, { -1, RES_UNDEFINED } }; +#endif static PciChipsets TRIDENTPciChipsets[] = { { CYBER9320, PCI_CHIP_9320, RES_SHARED_VGA }, @@ -809,6 +810,7 @@ return(TRUE); } +#ifdef HAVE_ISA static int TridentFindIsaDevice(GDevPtr dev) { @@ -899,6 +901,7 @@ } return found; } +#endif /* Mandatory */ @@ -975,6 +978,7 @@ } } +#ifdef HAVE_ISA /* Isa Bus */ numUsed = xf86MatchIsaInstances(TRIDENT_NAME,TRIDENTChipsets, TRIDENTISAchipsets, @@ -1005,7 +1009,8 @@ } xfree(usedChips); } - +#endif + xfree(devSections); return foundScreen; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-trident-1.3.0/src/trident.h new/xf86-video-trident-1.3.1/src/trident.h --- old/xf86-video-trident-1.3.0/src/trident.h 2008-03-19 20:40:10.000000000 +0100 +++ new/xf86-video-trident-1.3.1/src/trident.h 2008-12-22 04:59:18.000000000 +0100 @@ -322,8 +322,12 @@ #define IsPciCard (pTrident->pEnt->location.type == BUS_PCI) -#define IsPrimaryCard ((xf86IsPrimaryPci(pTrident->PciInfo)) || \ +#ifdef HAVE_ISA +# define IsPrimaryCard ((xf86IsPrimaryPci(pTrident->PciInfo)) || \ (xf86IsPrimaryIsa())) +#else +# define IsPrimaryCard (xf86IsPrimaryPci(pTrident->PciInfo)) +#endif #define HAS_DST_TRANS ((pTrident->Chipset == PROVIDIA9682) || \ (pTrident->Chipset == PROVIDIA9685) || \ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-trident-1.3.0/src/tridenthelper.c new/xf86-video-trident-1.3.1/src/tridenthelper.c --- old/xf86-video-trident-1.3.0/src/tridenthelper.c 2008-03-19 20:40:10.000000000 +0100 +++ new/xf86-video-trident-1.3.1/src/tridenthelper.c 2008-12-22 04:59:18.000000000 +0100 @@ -28,7 +28,6 @@ #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86Version.h" #include "xf86PciInfo.h" #include "xf86Pci.h" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-trident-1.3.0/src/tvga_dac.c new/xf86-video-trident-1.3.1/src/tvga_dac.c --- old/xf86-video-trident-1.3.0/src/tvga_dac.c 2008-03-19 20:40:10.000000000 +0100 +++ new/xf86-video-trident-1.3.1/src/tvga_dac.c 2008-12-22 04:59:18.000000000 +0100 @@ -28,7 +28,6 @@ #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86Version.h" #include "xf86PciInfo.h" #include "xf86Pci.h" ++++++ xf86-video-tseng-1.2.0.tar.bz2 -> xf86-video-tseng-1.2.1.tar.bz2 ++++++ ++++ 12512 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tseng-1.2.0/configure.ac new/xf86-video-tseng-1.2.1/configure.ac --- old/xf86-video-tseng-1.2.0/configure.ac 2008-03-19 21:03:05.000000000 +0100 +++ new/xf86-video-tseng-1.2.1/configure.ac 2008-12-22 06:02:30.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-tseng], - 1.2.0, + 1.2.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-tseng) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tseng-1.2.0/src/tseng_driver.c new/xf86-video-tseng-1.2.1/src/tseng_driver.c --- old/xf86-video-tseng-1.2.0/src/tseng_driver.c 2008-03-19 20:45:11.000000000 +0100 +++ new/xf86-video-tseng-1.2.1/src/tseng_driver.c 2008-12-22 06:02:16.000000000 +0100 @@ -1453,18 +1453,22 @@ */ switch (pScrn->bitsPerPixel) { +#if HAVE_XF1BPP case 1: ret = xf1bppScreenInit(pScreen, pTseng->FbBase, pScrn->virtualX, pScrn->virtualY, pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth); break; +#endif +#if HAVE_XF4BPP case 4: ret = xf4bppScreenInit(pScreen, pTseng->FbBase, pScrn->virtualX, pScrn->virtualY, pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth); break; +#endif default: ret = fbScreenInit(pScreen, pTseng->FbBase, pScrn->virtualX, pScrn->virtualY, @@ -1493,8 +1497,10 @@ } } +#if HAVE_XF1BPP /* must be after RGB ordering fixed */ if (pScrn->bitsPerPixel > 4) +#endif fbPictureInit(pScreen, 0, 0); if (pScrn->depth >= 8) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-tseng-1.2.0/src/tseng.h new/xf86-video-tseng-1.2.1/src/tseng.h --- old/xf86-video-tseng-1.2.0/src/tseng.h 2008-03-19 21:01:54.000000000 +0100 +++ new/xf86-video-tseng-1.2.1/src/tseng.h 2008-12-22 06:02:16.000000000 +0100 @@ -15,9 +15,6 @@ /* Everything using inb/outb, etc needs "compiler.h" */ #include "compiler.h" -/* This is used for module versioning */ -#include "xf86Version.h" - /* Drivers for PCI hardware need this */ #include "xf86PciInfo.h" ++++++ xf86-video-vesa-2.0.0.tar.bz2 -> xf86-video-vesa-2.2.0.tar.bz2 ++++++ ++++ 58683 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-vesa-2.0.0/config.h.in new/xf86-video-vesa-2.2.0/config.h.in --- old/xf86-video-vesa-2.0.0/config.h.in 2008-07-01 19:41:41.000000000 +0200 +++ new/xf86-video-vesa-2.2.0/config.h.in 2009-02-18 00:03:57.000000000 +0100 @@ -8,6 +8,9 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H +/* Have ISA support */ +#undef HAVE_ISA + /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H @@ -32,6 +35,10 @@ /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + /* Name of package */ #undef PACKAGE diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-vesa-2.0.0/configure.ac new/xf86-video-vesa-2.2.0/configure.ac --- old/xf86-video-vesa-2.0.0/configure.ac 2008-07-01 19:40:40.000000000 +0200 +++ new/xf86-video-vesa-2.2.0/configure.ac 2009-02-18 00:03:35.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-vesa], - 2.0.0, + 2.2.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-vesa) @@ -58,6 +58,14 @@ save_CFLAGS="$CFLAGS" CFLAGS="$XORG_CFLAGS" +AC_CHECK_DECL(xf86ConfigIsaEntity, + [AC_DEFINE(HAVE_ISA, 1, [Have ISA support])], + [], + [#include "xf86.h"]) +CFLAGS="$save_CFLAGS" + +save_CFLAGS="$CFLAGS" +CFLAGS="$XORG_CFLAGS" AC_CHECK_DECL(XSERVER_LIBPCIACCESS, [XSERVER_LIBPCIACCESS=yes], [XSERVER_LIBPCIACCESS=no], [#include "xorg-server.h"]) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-vesa-2.0.0/man/vesa.man new/xf86-video-vesa-2.2.0/man/vesa.man --- old/xf86-video-vesa-2.0.0/man/vesa.man 2008-03-19 15:31:25.000000000 +0100 +++ new/xf86-video-vesa-2.2.0/man/vesa.man 2009-02-05 21:52:43.000000000 +0100 @@ -54,6 +54,6 @@ to turn this option off. Default: on. .SH "SEE ALSO" -__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgcfg(__appmansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__) +__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__) .SH AUTHORS Authors include: Paulo Ce\'sar Pereira de Andrade. diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-vesa-2.0.0/README new/xf86-video-vesa-2.2.0/README --- old/xf86-video-vesa-2.0.0/README 1970-01-01 01:00:00.000000000 +0100 +++ new/xf86-video-vesa-2.2.0/README 2009-02-05 21:52:43.000000000 +0100 @@ -0,0 +1,20 @@ +xf86-video-vesa - Generic VESA video driver for the Xorg X server + +Please submit bugs & patches to the Xorg bugzilla: + + https://bugs.freedesktop.org/enter_bug.cgi?product=xorg + +All questions regarding this software should be directed at the +Xorg mailing list: + + http://lists.freedesktop.org/mailman/listinfo/xorg + +The master development code repository can be found at: + + git://anongit.freedesktop.org/git/xorg/driver/xf86-video-vesa + + http://cgit.freedesktop.org/xorg/driver/xf86-video-vesa + +For more information on the git code manager, see: + + http://wiki.x.org/wiki/GitPage diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-vesa-2.0.0/src/vesa.c new/xf86-video-vesa-2.2.0/src/vesa.c --- old/xf86-video-vesa-2.0.0/src/vesa.c 2008-07-01 19:40:04.000000000 +0200 +++ new/xf86-video-vesa-2.2.0/src/vesa.c 2009-02-05 22:15:07.000000000 +0100 @@ -31,6 +31,14 @@ * Adam Jackson <ajax@redhat.com> */ +/* + * TODO: + * - PanelID might give us useful size hints. + * - Port to RANDR 1.2 setup to make mode selection slightly better + * - Port to RANDR 1.2 to drop the old-school DGA junk + * - VBE/SCI for secondary DDC method? + */ + #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -93,8 +101,6 @@ static Bool VESASaveRestore(ScrnInfoPtr pScrn, vbeSaveRestoreFunction function); -static void *VESAWindowPlanar(ScreenPtr pScrn, CARD32 row, CARD32 offset, - int mode, CARD32 *size, void *closure); static void *VESAWindowLinear(ScreenPtr pScrn, CARD32 row, CARD32 offset, int mode, CARD32 *size, void *closure); static void *VESAWindowWindowed(ScreenPtr pScrn, CARD32 row, CARD32 offset, @@ -125,15 +131,19 @@ {-1, NULL} }; +#ifndef XSERVER_LIBPCIACCESS static PciChipsets VESAPCIchipsets[] = { { CHIP_VESA_GENERIC, PCI_CHIP_VGA, RES_SHARED_VGA }, { -1, -1, RES_UNDEFINED }, }; +#endif +#ifdef HAVE_ISA static IsaChipsets VESAISAchipsets[] = { {CHIP_VESA_GENERIC, RES_EXCLUSIVE_VGA}, {-1, 0 } }; +#endif /* @@ -278,7 +288,7 @@ ScrnInfoPtr pScrn = xf86Screens[scrn]; VESAPtr pVesa = VESAGetRec(pScrn); MonPtr mon = pScrn->monitor; - ModeStatus ret; + ModeStatus ret = MODE_BAD; DisplayModePtr mode; float v; @@ -438,6 +448,7 @@ } #endif +#ifdef HAVE_ISA /* Isa Bus */ numUsed = xf86MatchIsaInstances(VESA_NAME,VESAChipsets, VESAISAchipsets, drv, @@ -457,12 +468,14 @@ } xfree(usedChips); } +#endif xfree(devSections); return (foundScreen); } +#ifdef HAVE_ISA static int VESAFindIsaDevice(GDevPtr dev) { @@ -487,6 +500,7 @@ #endif return (int)CHIP_VESA_GENERIC; } +#endif static void VESAFreeRec(ScrnInfoPtr pScrn) @@ -522,6 +536,22 @@ pScrn->driverPrivate = NULL; } +static int +VESAValidateModes(ScrnInfoPtr pScrn) +{ + VESAPtr pVesa = VESAGetRec(pScrn); + DisplayModePtr mode; + + for (mode = pScrn->monitor->Modes; mode; mode = mode->next) + mode->status = MODE_OK; + + return VBEValidateModes(pScrn, NULL, pScrn->display->modes, + NULL, NULL, 0, 2048, 1, 0, 2048, + pScrn->display->virtualX, + pScrn->display->virtualY, + pVesa->mapSize, LOOKUP_BEST_REFRESH); +} + /* * This function is called once for each screen at the start of the first * server generation to initialise the screen for all server generations. @@ -668,27 +698,37 @@ VBESetModeNames(pScrn->modePool); pVesa->strict_validation = TRUE; - i = VBEValidateModes(pScrn, NULL, pScrn->display->modes, - NULL, NULL, 0, 2048, 1, 0, 2048, - pScrn->display->virtualX, - pScrn->display->virtualY, - pVesa->mapSize, LOOKUP_BEST_REFRESH); + i = VESAValidateModes(pScrn); if (i <= 0) { - DisplayModePtr mode; xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "No valid modes left. Trying less strict filter...\n"); - for (mode = pScrn->monitor->Modes; mode; mode = mode->next) - mode->status = MODE_OK; + "No valid modes left. Trying less strict filter...\n"); pVesa->strict_validation = FALSE; - i = VBEValidateModes(pScrn, NULL, pScrn->display->modes, - NULL, NULL, 0, 2048, 1, 0, 2048, - pScrn->display->virtualX, - pScrn->display->virtualY, - pVesa->mapSize, LOOKUP_BEST_REFRESH); + i = VESAValidateModes(pScrn); } + if (i <= 0) do { + Bool changed = FALSE; + /* maybe there's more modes at the bottom... */ + if (pScrn->monitor->vrefresh[0].lo > 50) { + changed = TRUE; + pScrn->monitor->vrefresh[0].lo = 50; + } + if (pScrn->monitor->hsync[0].lo > 31.5) { + changed = TRUE; + pScrn->monitor->hsync[0].lo = 31.5; + } + + if (!changed) + break; + + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "No valid modes left. Trying aggressive sync range...\n"); + i = VESAValidateModes(pScrn); + } while (0); + if (i <= 0) { + /* alright, i'm out of ideas */ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes\n"); vbeFree(pVesa->pVbe); return (FALSE); @@ -1091,6 +1131,10 @@ data = (VbeModeInfoData*)pMode->Private; + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Setting up VESA Mode 0x%X (%dx%d)\n", + data->mode & 0x7FF, pMode->HDisplay, pMode->VDisplay); + /* careful, setting the bit means don't clear the screen */ mode = data->mode | (pVesa->ModeSetClearScreen ? 0 : (1U << 15)); @@ -1232,28 +1276,6 @@ pVesa->base = NULL; } -void * -VESAWindowPlanar(ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, - CARD32 *size, void *closure) -{ - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - VESAPtr pVesa = VESAGetRec(pScrn); - VbeModeInfoBlock *data = ((VbeModeInfoData*)(pScrn->currentMode->Private))->data; - int window; - int mask = 1 << (offset & 3); - - outb(pVesa->ioBase + VGA_SEQ_INDEX, 2); - outb(pVesa->ioBase + VGA_SEQ_DATA, mask); - offset = (offset >> 2) + pVesa->maxBytesPerScanline * row; - window = offset / (data->WinGranularity * 1024); - pVesa->windowAoffset = window * data->WinGranularity * 1024; - VESABankSwitch(pScreen, window); - *size = data->WinSize * 1024 - (offset - pVesa->windowAoffset); - - return (void *)((unsigned long)pVesa->base + - (offset - pVesa->windowAoffset)); -} - static void * VESAWindowLinear(ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, CARD32 *size, void *closure) @@ -1393,13 +1415,6 @@ outb(pVesa->ioBase + (VGA_IOBASE_COLOR + VGA_CRTC_INDEX_OFFSET), index); \ outb(pVesa->ioBase + (VGA_IOBASE_COLOR + VGA_CRTC_DATA_OFFSET), value) -static int -ReadCrtc(VESAPtr pVesa, int index) -{ - outb(pVesa->ioBase + (VGA_IOBASE_COLOR + VGA_CRTC_INDEX_OFFSET), index); - return inb(pVesa->ioBase + (VGA_IOBASE_COLOR + VGA_CRTC_DATA_OFFSET)); -} - static void SeqReset(VESAPtr pVesa, Bool start) { @@ -1656,45 +1671,13 @@ int flags) { VESAPtr pVesa = VESAGetRec(pScrn); - unsigned char seq1 = 0, crtc17 = 0; if (!pScrn->vtSema) return; - switch (mode) { - case DPMSModeOn: - /* Screen: On; HSync: On, VSync: On */ - seq1 = 0x00; - crtc17 = 0x80; - break; - case DPMSModeStandby: - /* Screen: Off; HSync: Off, VSync: On -- Not Supported */ - seq1 = 0x20; - crtc17 = 0x80; - break; - case DPMSModeSuspend: - /* Screen: Off; HSync: On, VSync: Off -- Not Supported */ - seq1 = 0x20; - crtc17 = 0x80; - break; - case DPMSModeOff: - /* Screen: Off; HSync: Off, VSync: Off */ - seq1 = 0x20; - crtc17 = 0x00; - break; - } - WriteSeq(0x00, 0x01); /* Synchronous Reset */ - seq1 |= ReadSeq(pVesa, 0x01) & ~0x20; - WriteSeq(0x01, seq1); - crtc17 |= ReadCrtc(pVesa, 0x17) & ~0x80; - usleep(10000); - WriteCrtc(0x17, crtc17); - WriteSeq(0x00, 0x03); /* End Reset */ + VBEDPMSSet(pVesa->pVbe, mode); } - - - /*********************************************************************** * DGA stuff ***********************************************************************/ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-vesa-2.0.0/src/vesa.h new/xf86-video-vesa-2.2.0/src/vesa.h --- old/xf86-video-vesa-2.0.0/src/vesa.h 2008-07-01 19:23:12.000000000 +0200 +++ new/xf86-video-vesa-2.2.0/src/vesa.h 2008-08-15 19:55:41.000000000 +0200 @@ -78,9 +78,9 @@ #define VESA_VERSION 4000 #define VESA_NAME "VESA" #define VESA_DRIVER_NAME "vesa" -#define VESA_MAJOR_VERSION 1 -#define VESA_MINOR_VERSION 3 -#define VESA_PATCHLEVEL 0 +#define VESA_MAJOR_VERSION PACKAGE_VERSION_MAJOR +#define VESA_MINOR_VERSION PACKAGE_VERSION_MINOR +#define VESA_PATCHLEVEL PACKAGE_VERSION_PATCHLEVEL /*XXX*/ ++++++ xf86-video-voodoo-1.2.0.tar.bz2 -> xf86-video-voodoo-1.2.1.tar.bz2 ++++++ ++++ 60000 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-voodoo-1.2.0/config.h.in new/xf86-video-voodoo-1.2.1/config.h.in --- old/xf86-video-voodoo-1.2.0/config.h.in 2008-03-19 22:08:04.000000000 +0100 +++ new/xf86-video-voodoo-1.2.1/config.h.in 2009-02-24 16:28:40.000000000 +0100 @@ -38,6 +38,10 @@ /* Have 4bpp support */ #undef HAVE_XF4BPP +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + /* Name of package */ #undef PACKAGE diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-voodoo-1.2.0/configure.ac new/xf86-video-voodoo-1.2.1/configure.ac --- old/xf86-video-voodoo-1.2.0/configure.ac 2008-03-19 22:07:36.000000000 +0100 +++ new/xf86-video-voodoo-1.2.1/configure.ac 2009-02-24 16:28:29.000000000 +0100 @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-voodoo], - 1.2.0, + 1.2.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-voodoo) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-voodoo-1.2.0/src/voodoo_dga.c new/xf86-video-voodoo-1.2.1/src/voodoo_dga.c --- old/xf86-video-voodoo-1.2.0/src/voodoo_dga.c 2008-03-19 15:31:33.000000000 +0100 +++ new/xf86-video-voodoo-1.2.1/src/voodoo_dga.c 2008-08-15 21:55:43.000000000 +0200 @@ -42,13 +42,11 @@ #include "micmap.h" #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86Version.h" #include "xf86PciInfo.h" #include "xf86Pci.h" #include "xf86cmap.h" #include "shadowfb.h" #include "vgaHW.h" -#include "xf86DDC.h" #include "xf86RAC.h" #include "xf86Resources.h" #include "compiler.h" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-voodoo-1.2.0/src/voodoo_driver.c new/xf86-video-voodoo-1.2.1/src/voodoo_driver.c --- old/xf86-video-voodoo-1.2.0/src/voodoo_driver.c 2008-03-19 22:07:12.000000000 +0100 +++ new/xf86-video-voodoo-1.2.1/src/voodoo_driver.c 2009-02-24 16:27:23.000000000 +0100 @@ -47,15 +47,15 @@ #include "fb.h" #include "mibank.h" #include "micmap.h" +#include "mipointer.h" #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86Version.h" +#include "xorgVersion.h" #include "xf86PciInfo.h" #include "xf86Pci.h" #include "xf86cmap.h" #include "shadowfb.h" #include "vgaHW.h" -#include "xf86DDC.h" #include "xf86RAC.h" #include "xf86Resources.h" #include "compiler.h" @@ -110,12 +110,14 @@ typedef enum { OPTION_NOACCEL, - OPTION_SHADOW_FB + OPTION_SHADOW_FB, + OPTION_PASS_THROUGH, } VoodooOpts; static const OptionInfoRec VoodooOptions[] = { { OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_PASS_THROUGH,"PassThrough", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; @@ -162,7 +164,7 @@ MODULEVENDORSTRING, MODINFOSTRING1, MODINFOSTRING2, - XF86_VERSION_CURRENT, + XORG_VERSION_CURRENT, VOODOO_MAJOR_VERSION, VOODOO_MINOR_VERSION, VOODOO_PATCHLEVEL, ABI_CLASS_VIDEODRV, /* This is a video driver */ ABI_VIDEODRV_VERSION, @@ -436,6 +438,9 @@ pVoo->Accel = 0; } + if (xf86ReturnOptValBool(pVoo->Options, OPTION_PASS_THROUGH, FALSE)) + pVoo->PassThrough = 1; + if (xf86ReturnOptValBool(pVoo->Options, OPTION_NOACCEL, FALSE)) { pVoo->ShadowFB = 1; pVoo->Accel = 0; @@ -544,6 +549,7 @@ } /* Set the current mode to the first in the list */ + xf86SetCrtcForModes(pScrn, 0); pScrn->currentMode = pScrn->modes; /* Do some checking, we will not support a virtual framebuffer larger than @@ -914,8 +920,10 @@ pVoo = VoodooPTR(pScrn); pVoo->Blanked = TRUE; - if (!Closing || !(pVoo->OnAtExit)) - VoodooBlank(pVoo); + if (!Closing) + VoodooBlank(pVoo); + if (Closing && pVoo->PassThrough) + VoodooRestorePassThrough(pVoo); } static void diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-voodoo-1.2.0/src/voodoo.h new/xf86-video-voodoo-1.2.1/src/voodoo.h --- old/xf86-video-voodoo-1.2.0/src/voodoo.h 2008-03-19 15:31:33.000000000 +0100 +++ new/xf86-video-voodoo-1.2.1/src/voodoo.h 2009-02-24 16:27:23.000000000 +0100 @@ -13,7 +13,7 @@ CloseScreenProcPtr CloseScreen; /* Wrapped Close */ XAAInfoRecPtr AccelInfoRec; /* Cached Accel rec for close */ Bool Blanked; - Bool OnAtExit; + Bool PassThrough; /* Set to restore pass through on exit */ EntityInfoPtr pEnt; OptionInfoPtr Options; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-voodoo-1.2.0/src/voodoo_hardware.c new/xf86-video-voodoo-1.2.1/src/voodoo_hardware.c --- old/xf86-video-voodoo-1.2.0/src/voodoo_hardware.c 2008-03-19 15:31:33.000000000 +0100 +++ new/xf86-video-voodoo-1.2.1/src/voodoo_hardware.c 2009-02-24 16:27:23.000000000 +0100 @@ -43,13 +43,11 @@ #include "micmap.h" #include "xf86.h" #include "xf86_OSproc.h" -#include "xf86Version.h" #include "xf86PciInfo.h" #include "xf86Pci.h" #include "xf86cmap.h" #include "shadowfb.h" #include "vgaHW.h" -#include "xf86DDC.h" #include "xf86RAC.h" #include "xf86Resources.h" #include "xaa.h" @@ -65,6 +63,24 @@ #include "mipict.h" #include "dixstruct.h" +#include <unistd.h> + + +#if 0 +static void VoodooReadWriteBank(ScreenPtr pScreen, int bank); +#endif +static Bool VoodooSetupForCPUToScreenAlphaTexture(ScrnInfoPtr pScrn, int op, + CARD16 red, CARD16 green, CARD16 blue, CARD16 alpha, int alphaType, + CARD8 *alphaPtr, int alphaPitch, int width, int height, int flags); +static void VoodooSubsequentCPUToScreenAlphaTexture(ScrnInfoPtr pScrn, + int dstx, int dsty, int srcx, int srcy, int width, int height); +static Bool VoodooSetupForCPUToScreenTexture(ScrnInfoPtr pScrn, int op, + int texType, CARD8 *texPtr, int texPitch, int width, int height, + int flags); +static void VoodooSubsequentCPUToScreenTexture(ScrnInfoPtr pScrn, + int dstx, int dsty, int srcx, int srcy, int width, int height); + + static int debug = 0; /* @@ -669,6 +685,17 @@ } /* + * Voodoo exit logic + */ + +void VoodooRestorePassThrough(VoodooPtr pVoo) +{ + pci_enable(pVoo, 1, 0, 0); + mmio32_w(pVoo, 0x210, 0); + pci_enable(pVoo, 0, 0, 1); +} + +/* * Copiers for Voodoo1 * * Voodoo1 has no CPU to screen blit, and also lacks SGRAM fill @@ -814,7 +841,8 @@ mmio32_w(pVoo, 0x114, pVoo->lfbMode); } -void VoodooReadWriteBank(ScreenPtr pScreen, int bank) +#if 0 +static void VoodooReadWriteBank(ScreenPtr pScreen, int bank) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; VoodooPtr pVoo = VoodooPTR(pScrn); @@ -832,6 +860,7 @@ } mmio32_w(pVoo, 0x114, pVoo->lfbMode); } +#endif /* * We normally want to load all four rop variants at once so @@ -951,6 +980,9 @@ int rop, unsigned int planemask) { VoodooPtr pVoo = VoodooPTR(pScrn); + if (debug) + ErrorF("Setup for solid fill colour %04X, rop %d, Mask %04X.\n", + color, rop, planemask); Voodoo2Setup2D(pVoo); mmio32_w_chuck(pVoo, 0x2EC, ropxlate[rop]); /* rop */ mmio32_w_chuck(pVoo, 0x2F0, color); /* fg color */ @@ -961,6 +993,8 @@ int w, int h) { VoodooPtr pVoo = VoodooPTR(pScrn); + if (debug) + ErrorF("Fill (%d, %d) for (%d, %d)\n", x, y, w, h); wait_idle(pVoo); mmio32_w_chuck(pVoo, 0x2E4, (y<<16) | x); /* Dst x,y */ /* Set size and fire */ @@ -1183,9 +1217,9 @@ */ -Bool VoodooSetupForCPUToScreenAlphaTexture(ScrnInfoPtr pScrn, int op, CARD16 red, - CARD16 green, CARD16 blue, CARD16 alpha, int alphaType, CARD8 *alphaPtr, - int alphaPitch, int width, int height, int flags) +static Bool VoodooSetupForCPUToScreenAlphaTexture(ScrnInfoPtr pScrn, int op, + CARD16 red, CARD16 green, CARD16 blue, CARD16 alpha, int alphaType, + CARD8 *alphaPtr, int alphaPitch, int width, int height, int flags) { VoodooPtr pVoo = VoodooPTR(pScrn); @@ -1210,7 +1244,8 @@ return TRUE; } -void VoodooSubsequentCPUToScreenAlphaTexture(ScrnInfoPtr pScrn, int dstx, int dsty, int srcx, int srcy, int width, int height) +static void VoodooSubsequentCPUToScreenAlphaTexture(ScrnInfoPtr pScrn, + int dstx, int dsty, int srcx, int srcy, int width, int height) { VoodooPtr pVoo = VoodooPTR(pScrn); /* 32bit LFB write mode */ @@ -1258,8 +1293,9 @@ mmio32_w(pVoo, 0x10C, 0); } -Bool VoodooSetupForCPUToScreenTexture(ScrnInfoPtr pScrn, int op, int texType, - CARD8 *texPtr, int texPitch, int width, int height, int flags) +static Bool VoodooSetupForCPUToScreenTexture(ScrnInfoPtr pScrn, int op, + int texType, CARD8 *texPtr, int texPitch, int width, int height, + int flags) { VoodooPtr pVoo = VoodooPTR(pScrn); @@ -1283,7 +1319,8 @@ return TRUE; } -void VoodooSubsequentCPUToScreenTexture(ScrnInfoPtr pScrn, int dstx, int dsty, int srcx, int srcy, int width, int height) +static void VoodooSubsequentCPUToScreenTexture(ScrnInfoPtr pScrn, + int dstx, int dsty, int srcx, int srcy, int width, int height) { VoodooPtr pVoo = VoodooPTR(pScrn); /* 32bit LFB write mode */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-voodoo-1.2.0/src/voodoo_pcirename.h new/xf86-video-voodoo-1.2.1/src/voodoo_pcirename.h --- old/xf86-video-voodoo-1.2.0/src/voodoo_pcirename.h 2008-03-19 15:31:33.000000000 +0100 +++ new/xf86-video-voodoo-1.2.1/src/voodoo_pcirename.h 2008-08-15 19:55:45.000000000 +0200 @@ -26,8 +26,8 @@ * library. The main purpose being to facilitate source code compatibility. */ -#ifndef TRIDENTPCIRENAME_H -#define TRIDENTPCIRENAME_H +#ifndef VOODOOPCIRENAME_H +#define VOODOOPCIRENAME_H enum region_type { REGION_MEM, @@ -119,4 +119,4 @@ #endif /* XSERVER_LIBPCIACCESS */ -#endif /* TRIDENTPCIRENAME_H */ +#endif /* VOODOOPCIRENAME_H */ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org