Hello community,
here is the log from the commit of package xorg-x11-driver-video
checked in at Sat Jul 5 01:46:48 CEST 2008.
--------
--- xorg-x11-driver-video/xorg-x11-driver-video.changes 2008-06-27 18:08:12.000000000 +0200
+++ xorg-x11-driver-video/xorg-x11-driver-video.changes 2008-07-03 15:44:21.468384000 +0200
@@ -1,0 +2,41 @@
+Thu Jul 3 13:12:25 CEST 2008 - sndirsch@suse.de
+
+- xf86-video-mga 1.4.9
+ * adds support for G200EV, G200WB
+ * bugfixes
+- xf86-video-vesa 2.0.0
+- xf86-video-xgixp 1.7.99.3 (disabled at the moment due to missing
+ drm bits)
+- xf86-video-intel-2.3.2.diff
+ * fixed build against libdrm 2.3.1
+- due to missing libpciaccess support disabled build of
+ * xf86-video-ati 6.6.3
+ * xf86-video-cyrix
+ * xf86-video-i810
+ * xf86-video-imstt
+ * xf86-video-tga
+ * xf86-video-via
+
+-------------------------------------------------------------------
+Tue Jul 1 05:14:43 CEST 2008 - sndirsch@suse.de
+
+- xf86-video-nv 2.1.10
+ * Fix build by using CARD32 instead of uint32_t, like we do
+ everywhere else.
+ * More G8x chips.
+- obsoletes xf86-video-nv.diff
+
+-------------------------------------------------------------------
+Mon Jun 30 21:56:57 CEST 2008 - sndirsch@suse.de
+
+- xf86-video-glint 1.2.1
+ * Fix regression from pciaccess conversion (bfo #16060)
+
+-------------------------------------------------------------------
+Mon Jun 30 20:58:54 CEST 2008 - sndirsch@suse.de
+
+- xf86-video-nv.diff
+ * G80: Handle extended I2C ports and LVDS panels with DDC-based
+ EDIDs.
+
+-------------------------------------------------------------------
Old:
----
xf86-video-glint-1.1.1.tar.bz2
xf86-video-glint.diff
xf86-video-mga-1.4.8.tar.bz2
xf86-video-nv-2.1.9.tar.bz2
xf86-video-nv.diff
xf86-video-vesa-1.3.0.tar.bz2
xf86-video-xgixp-7945371.tar.bz2
New:
----
xf86-video-glint-1.2.1.tar.bz2
xf86-video-intel-2.3.2.diff
xf86-video-mga-1.4.9.tar.bz2
xf86-video-nv-2.1.10.tar.bz2
xf86-video-vesa-2.0.0.tar.bz2
xf86-video-xgixp-1.7.99.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-video.spec ++++++
--- /var/tmp/diff_new_pack.yQ7041/_old 2008-07-05 01:44:42.000000000 +0200
+++ /var/tmp/diff_new_pack.yQ7041/_new 2008-07-05 01:44:42.000000000 +0200
@@ -15,7 +15,7 @@
BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk
Url: http://xorg.freedesktop.org/
Version: 7.3
-Release: 143
+Release: 145
License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -31,16 +31,16 @@
Source6: xf86-video-cyrix-X11R7.1-1.1.0.tar.bz2
Source7: xf86-video-dummy-0.3.0.tar.bz2
Source8: xf86-video-fbdev-0.4.0.tar.bz2
-Source9: xf86-video-glint-1.1.1.tar.bz2
+Source9: xf86-video-glint-1.2.1.tar.bz2
Source10: xf86-video-i128-1.3.0.tar.bz2
Source11: xf86-video-i740-1.2.0.tar.bz2
Source12: xf86-video-i810-1.7.4.tar.bz2
Source13: xf86-video-imstt-X11R7.1-1.1.0.tar.bz2
-Source14: xf86-video-mga-1.4.8.tar.bz2
+Source14: xf86-video-mga-1.4.9.tar.bz2
Source15: xf86-video-neomagic-1.2.1.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.9.tar.bz2
+Source18: xf86-video-nv-2.1.10.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
@@ -53,7 +53,7 @@
Source35: xf86-video-trident-1.3.0.tar.bz2
Source36: xf86-video-tseng-1.2.0.tar.bz2
Source37: xf86-video-v4l-0.2.0.tar.bz2
-Source38: xf86-video-vesa-1.3.0.tar.bz2
+Source38: xf86-video-vesa-2.0.0.tar.bz2
Source39: xf86-video-vga-X11R7.1-4.1.0.tar.bz2
Source40: xf86-video-via-0.2.2.tar.bz2
Source41: xf86-video-vmware-10.16.2.tar.bz2
@@ -66,13 +66,14 @@
Source50: xf86-video-xgi-1.5.0.tar.bz2
Source51: xf86-video-geode-2.10.0.tar.bz2
Source52: xf86-video-ati-6.6.3.tar.bz2
-Source53: xf86-video-xgixp-7945371.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
Source100: sax2-hwinfo-data.tar.gz
Patch: xf86-video-intel.diff
+Patch1: xf86-video-intel-2.3.2.diff
Patch3: ps_nv.diff
-Patch4: xf86-video-nv.diff
+#Patch4: xf86-video-nv.diff
Patch10: xf86-video-tdfx.diff
Patch12: xf86-video-mga-hal.diff
Patch14: xf86-video-rendition.diff
@@ -90,7 +91,6 @@
Patch101: xf86-video-ati-6.6.3-compile-cfb.patch
Patch102: xf86-video-ati-6.6.3-if0.patch
Patch103: xf86-video-ati-6.7.197-r128-xvideo.patch
-Patch104: xf86-video-glint.diff
%description
This package contains X.Org video drivers.
@@ -135,13 +135,14 @@
popd
pushd xf86-video-intel-*
%patch -p0
+%patch1 -p1
%patch52 -p0
popd
pushd xf86-video-nv-*
%patch3 -p0
-%patch4 -p1
+#%patch4 -p1
popd
-pushd xf86-video-mga-1.4.8/src
+pushd xf86-video-mga-1.4.9/src
tar xzf %{SOURCE44}
%ifarch %ix86
%patch12 -p1
@@ -165,25 +166,27 @@
pushd xf86-video-s3virge-*
%patch51
popd
-pushd xf86-video-glint-*
-%patch104 -p0
-popd
%build
for dir in xf86-video-nv-* \
- xf86-video-mga-1.9.100 xf86-video-ati-6.9.* xf86-video-ati-6.6.3 \
+ xf86-video-mga-1.9.100 xf86-video-ati-6.9.* \
$(ls | grep -v -e xf86-video-impact \
-e xf86-video-nv \
-e xf86-video-mga-1.9.100 \
-e xf86-video-ati-6.6.3 \
-e xf86-video-ati-6.9 \
+ -e xf86-video-cyrix \
+ -e xf86-video-i810 \
+ -e xf86-video-imstt \
+ -e xf86-video-tga \
+ -e xf86-video-via \
+ -e xf86-video-xgixp \
); do
pushd $dir
case $dir in
- xf86-video-mga-1.4.8 | \
+ xf86-video-mga-1.4.9 | \
xf86-video-intel-* | \
xf86-video-mga-1.9.100 | \
- xf86-video-ati-6.6.3 | \
xf86-video-ati-6.9.* | \
xf86-video-xgixp | \
xf86-video-nsc-*) autoreconf -fi ;;
@@ -198,20 +201,25 @@
%install
for dir in xf86-video-nv-* \
xf86-video-mga-1.9.100 \
- xf86-video-ati-6.6.3 \
xf86-video-ati-6.9.* \
$(ls | grep -v -e xf86-video-impact \
-e xf86-video-nv \
-e xf86-video-mga-1.9.100 \
-e xf86-video-ati-6.6.3 \
-e xf86-video-ati-6.9 \
+ -e xf86-video-cyrix \
+ -e xf86-video-i810 \
+ -e xf86-video-imstt \
+ -e xf86-video-tga \
+ -e xf86-video-via \
+ -e xf86-video-xgixp \
); do
make -C $dir install DESTDIR=$RPM_BUILD_ROOT
done
ln -snf nv_drv.so \
$RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/nvidia_drv.so
%ifarch %ix86
-pushd xf86-video-mga-1.4.8/src
+pushd xf86-video-mga-1.4.9/src
gcc -m32 \
-o $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/mga_hal_drv.so \
-shared \
@@ -261,6 +269,35 @@
/var/lib/hardware/ids/20.%{name}
%changelog
+* Thu Jul 03 2008 sndirsch@suse.de
+- xf86-video-mga 1.4.9
+ * adds support for G200EV, G200WB
+ * bugfixes
+- xf86-video-vesa 2.0.0
+- xf86-video-xgixp 1.7.99.3 (disabled at the moment due to missing
+ drm bits)
+- xf86-video-intel-2.3.2.diff
+ * fixed build against libdrm 2.3.1
+- due to missing libpciaccess support disabled build of
+ * xf86-video-ati 6.6.3
+ * xf86-video-cyrix
+ * xf86-video-i810
+ * xf86-video-imstt
+ * xf86-video-tga
+ * xf86-video-via
+* Tue Jul 01 2008 sndirsch@suse.de
+- xf86-video-nv 2.1.10
+ * Fix build by using CARD32 instead of uint32_t, like we do
+ everywhere else.
+ * More G8x chips.
+- obsoletes xf86-video-nv.diff
+* Mon Jun 30 2008 sndirsch@suse.de
+- xf86-video-glint 1.2.1
+ * Fix regression from pciaccess conversion (bfo #16060)
+* Mon Jun 30 2008 sndirsch@suse.de
+- xf86-video-nv.diff
+ * G80: Handle extended I2C ports and LVDS panels with DDC-based
+ EDIDs.
* Fri Jun 27 2008 sndirsch@suse.de
- xf86-video-radeon 6.9.0
* Version 6.9.0 of the radeon driver. Lots of stuff since 6.8.0
++++++ sax2-hwinfo-data.tar.gz ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/usr/share/sax/api/data/cdb/Cards.20.xorg-x11-driver-video new/usr/share/sax/api/data/cdb/Cards.20.xorg-x11-driver-video
--- old/usr/share/sax/api/data/cdb/Cards.20.xorg-x11-driver-video 2008-06-25 04:39:38.000000000 +0200
+++ new/usr/share/sax/api/data/cdb/Cards.20.xorg-x11-driver-video 2008-07-03 16:50:25.000000000 +0200
@@ -85,3 +85,9 @@
ATI: 3D Rage IIC 215IIC {
Driver = ati
}
+Matrox:G200 EV {
+ Driver = mga
+}
+Matrox:G200 WB {
+ Driver = mga
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/usr/share/sax/sysp/maps/update/Identity.map.20.xorg-x11-driver-video new/usr/share/sax/sysp/maps/update/Identity.map.20.xorg-x11-driver-video
--- old/usr/share/sax/sysp/maps/update/Identity.map.20.xorg-x11-driver-video 2008-06-25 04:43:32.000000000 +0200
+++ new/usr/share/sax/sysp/maps/update/Identity.map.20.xorg-x11-driver-video 2008-07-03 16:52:59.000000000 +0200
@@ -29,3 +29,5 @@
NAME=Intel&DEVICE=IGD&VID=0x8086&DID=0x2A42&SERVER=intel&EXT=&OPT=&RAW=&PROFILE=&SCRIPT3D=&PACKAGE3D=&FLAG=DEFAULT
NAME=Intel&DEVICE=IGD&VID=0x8086&DID=0x2A42&SERVER=intel&EXT=&OPT=&RAW=&PROFILE=&SCRIPT3D=&PACKAGE3D=&FLAG=3D
NAME=ATI&DEVICE=3D Rage IIC 215IIC &VID=0x1002&DID=0x4756&SERVER=ati&EXT=&OPT=&RAW=&PROFILE=&SCRIPT3D=&PACKAGE3D=&FLAG=DEFAULT
+NAME=Matrox&DEVICE=G200 EV&VID=0x102b&DID=0x0530&SERVER=mga&EXT=&OPT=&RAW=&PROFILE=&SCRIPT3D=&PACKAGE3D=&FLAG=DEFAULT
+NAME=Matrox&DEVICE=G200 WB&VID=0x102b&DID=0x0532&SERVER=mga&EXT=&OPT=&RAW=&PROFILE=&SCRIPT3D=&PACKAGE3D=&FLAG=DEFAULT
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/var/lib/hardware/ids/20.xorg-x11-driver-video new/var/lib/hardware/ids/20.xorg-x11-driver-video
--- old/var/lib/hardware/ids/20.xorg-x11-driver-video 2008-06-25 04:49:09.000000000 +0200
+++ new/var/lib/hardware/ids/20.xorg-x11-driver-video 2008-07-03 16:56:25.000000000 +0200
@@ -150,3 +150,13 @@
&device.id pci 0x4756
+device.name 3D Rage IIC 215IIC
+driver.xfree 4|ati
+
+ vendor.id pci 0x102b
+&device.id pci 0x0530
++device.name G200 VE
++driver.xfree 4|mga
+
+ vendor.id pci 0x102b
+&device.id pci 0x0532
++device.name G200 WB
++driver.xfree 4|mga
++++++ xf86-video-glint-1.1.1.tar.bz2 -> xf86-video-glint-1.2.1.tar.bz2 ++++++
++++ 24578 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.1.1/config.h.in new/xf86-video-glint-1.2.1/config.h.in
--- old/xf86-video-glint-1.1.1/config.h.in 2006-04-08 03:23:13.000000000 +0200
+++ new/xf86-video-glint-1.2.1/config.h.in 2008-06-30 17:56:57.000000000 +0200
@@ -50,6 +50,15 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
+/* Major version of this package */
+#undef PACKAGE_VERSION_MAJOR
+
+/* Minor version of this package */
+#undef PACKAGE_VERSION_MINOR
+
+/* Patch version of this package */
+#undef PACKAGE_VERSION_PATCHLEVEL
+
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
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.1.1/configure.ac new/xf86-video-glint-1.2.1/configure.ac
--- old/xf86-video-glint-1.1.1/configure.ac 2006-04-08 03:21:45.000000000 +0200
+++ new/xf86-video-glint-1.2.1/configure.ac 2008-06-30 17:49:15.000000000 +0200
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-glint],
- 1.1.1,
+ 1.2.1,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-glint)
@@ -64,6 +64,12 @@
sdkdir=$(pkg-config --variable=sdkdir xorg-server)
# Checks for libraries.
+SAVE_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
+AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
+ [XSERVER_LIBPCIACCESS=yes],[XSERVER_LIBPCIACCESS=no],
+ [#include "xorg-server.h"])
+CPPFLAGS="$SAVE_CPPFLAGS"
# Checks for header files.
AC_HEADER_STDC
@@ -96,6 +102,13 @@
AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
fi
+if test "x$XSERVER_LIBPCIACCESS" = xyes; then
+ PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
+ XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
+fi
+AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+
+
AC_SUBST([DRI_CFLAGS])
AC_SUBST([XORG_CFLAGS])
AC_SUBST([moduledir])
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.1.1/DRI.txt new/xf86-video-glint-1.2.1/DRI.txt
--- old/xf86-video-glint-1.1.1/DRI.txt 2004-04-23 21:33:32.000000000 +0200
+++ new/xf86-video-glint-1.2.1/DRI.txt 2008-06-24 00:04:17.000000000 +0200
@@ -9,7 +9,7 @@
of this document provided the copyright notice and this permission
notice are preserved on all copies.
-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.1 1999/06/14 07:31:50 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.2 2000/02/23 04:47:06 martin Exp $
GLINT State Transition Strategy
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.1.1/man/Makefile.am new/xf86-video-glint-1.2.1/man/Makefile.am
--- old/xf86-video-glint-1.1.1/man/Makefile.am 2005-12-06 23:48:34.000000000 +0100
+++ new/xf86-video-glint-1.2.1/man/Makefile.am 2008-06-24 00:04:21.000000000 +0200
@@ -1,4 +1,3 @@
-# $Id: Makefile.am,v 1.5 2005/11/28 22:04:09 alanc Exp $
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
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.1.1/missing new/xf86-video-glint-1.2.1/missing
--- old/xf86-video-glint-1.1.1/missing 2006-04-07 17:51:29.000000000 +0200
+++ new/xf86-video-glint-1.2.1/missing 2008-06-30 17:56:58.000000000 +0200
@@ -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 , 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-glint-1.1.1/README.pm3 new/xf86-video-glint-1.2.1/README.pm3
--- old/xf86-video-glint-1.1.1/README.pm3 2004-04-23 21:33:32.000000000 +0200
+++ new/xf86-video-glint-1.2.1/README.pm3 2007-04-22 05:15:38.000000000 +0200
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/README.pm3,v 1.12 2001/08/18 11:37:30 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/README.pm3,v 1.13 2002/05/07 23:15:58 alanh Exp $ */
STATUS as of Tue, 8 May 2001 19:01:39 +0200
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.1.1/src/glint_common.h new/xf86-video-glint-1.2.1/src/glint_common.h
--- old/xf86-video-glint-1.1.1/src/glint_common.h 2004-04-23 21:33:32.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/glint_common.h 2007-04-22 05:15:38.000000000 +0200
@@ -25,7 +25,7 @@
* Converted to common header format:
* Jens Owen
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_common.h,v 1.1 2002/10/30 12:52:15 alanh Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_common.h,v 1.2 2003/04/03 16:52:18 dawes Exp $
*
*/
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.1.1/src/glint_dri.c new/xf86-video-glint-1.2.1/src/glint_dri.c
--- old/xf86-video-glint-1.1.1/src/glint_dri.c 2006-04-04 14:06:57.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/glint_dri.c 2008-06-24 00:04:21.000000000 +0200
@@ -489,16 +489,18 @@
if (xf86LoaderCheckSymbol("DRICreatePCIBusID")) {
pDRIInfo->busIdString = DRICreatePCIBusID(pGlint->PciInfo);
} else {
+#ifndef XSERVER_LIBPCIACCESS
pDRIInfo->busIdString = xalloc(64); /* Freed in DRIDestroyInfoRec */
sprintf(pDRIInfo->busIdString, "PCI:%d:%d:%d",
((pciConfigPtr)pGlint->PciInfo->thisCard)->busnum,
((pciConfigPtr)pGlint->PciInfo->thisCard)->devnum,
((pciConfigPtr)pGlint->PciInfo->thisCard)->funcnum);
+#endif
}
pDRIInfo->ddxDriverMajorVersion = GLINT_MAJOR_VERSION;
pDRIInfo->ddxDriverMinorVersion = GLINT_MINOR_VERSION;
pDRIInfo->ddxDriverPatchVersion = GLINT_PATCHLEVEL;
- pDRIInfo->frameBufferPhysicalAddress = pGlint->FbAddress;
+ pDRIInfo->frameBufferPhysicalAddress = (pointer) pGlint->FbAddress;
pDRIInfo->frameBufferSize = pGlint->FbMapSize;
pDRIInfo->frameBufferStride =
pScrn->displayWidth * (pScrn->bitsPerPixel >> 3);
@@ -775,12 +777,9 @@
if (pGlint->irq <= 0) {
pGlint->irq = drmGetInterruptFromBusID(pGlint->drmSubFD,
- ((pciConfigPtr)pGlint->PciInfo
- ->thisCard)->busnum,
- ((pciConfigPtr)pGlint->PciInfo
- ->thisCard)->devnum,
- ((pciConfigPtr)pGlint->PciInfo
- ->thisCard)->funcnum);
+ PCI_CFG_BUS(pGlint->PciInfo),
+ PCI_CFG_DEV(pGlint->PciInfo),
+ PCI_CFG_FUNC(pGlint->PciInfo));
}
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-glint-1.1.1/src/glint_dri.h new/xf86-video-glint-1.2.1/src/glint_dri.h
--- old/xf86-video-glint-1.1.1/src/glint_dri.h 2004-04-23 21:33:32.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/glint_dri.h 2007-04-22 05:15:38.000000000 +0200
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h,v 1.6 2002/02/22 21:45:16 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h,v 1.7 2002/10/30 12:52:16 alanh Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
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.1.1/src/glint_driver.c new/xf86-video-glint-1.2.1/src/glint_driver.c
--- old/xf86-video-glint-1.1.1/src/glint_driver.c 2006-04-07 21:06:52.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/glint_driver.c 2008-06-24 00:07:01.000000000 +0200
@@ -344,7 +344,7 @@
#ifdef XFree86LOADER
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
static const char *drmSymbols[] = {
"drmAddBufs",
"drmAddMap",
@@ -414,7 +414,7 @@
xaaSymbols, xf8_32bppSymbols,
shadowSymbols, fbdevHWSymbols, GLINTint10Symbols,
vbeSymbols, ramdacSymbols,
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
drmSymbols, driSymbols,
#endif
NULL);
@@ -651,10 +651,12 @@
&devSections)) <= 0) {
return FALSE;
}
-
+
+#ifndef XSERVER_LIBPCIACCESS
checkusedPci = xf86GetPciVideoInfo();
- if (checkusedPci == NULL && devSections /* for xf86DoProbe */) {
+ if (checkusedPci == NULL && devSections /* for xf86DoProbe */)
+ {
/*
* Changed the behaviour to try probing using the FBDev support
* when no PCI cards have been found. This is for systems without
@@ -721,8 +723,9 @@
xfree(devSections);
- } else if (checkusedPci) {
-
+ } else if (checkusedPci)
+#endif
+{
if (flags & PROBE_DETECT) {
/* HACK, Currently when -configuring, we only return VGA
* based chips. Manual configuring is necessary to poke
@@ -745,8 +748,8 @@
if (!(flags & PROBE_DETECT))
for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = NULL;
- GLINTEntPtr pGlintEnt = NULL;
- DevUnion *pPriv;
+ GLINTEntPtr pGlintEnt = NULL;
+ DevUnion *pPriv;
pPci = xf86GetPciInfoForEntity(usedChips[i]);
/* Allocate a ScrnInfoRec and claim the slot */
@@ -756,14 +759,16 @@
/* Claim specifics, when we KNOW ! the board */
-
+#ifndef XSERVER_LIBPCIACCESS
/* Appian Jeronimo J2000 */
- if ((pPci->subsysVendor == 0x1097) &&
- (pPci->subsysCard == 0x3d32)) {
+ if ((PCI_SUB_VENDOR_ID(pPci) == 0x1097) &&
+ (PCI_SUB_DEVICE_ID(pPci) == 0x3d32)) {
int eIndex;
+ int init_func;
+
if (!xf86IsEntityShared(usedChips[i])) {
eIndex = xf86ClaimPciSlot(pPci->bus,
- pPci->device,
+ pPci->device,
1,
drv, -1 /* XXX */,
NULL, FALSE);
@@ -778,15 +783,15 @@
}
} else
/* Only claim other chips when GAMMA is used */
- if ((pPci->chipType == PCI_CHIP_GAMMA) ||
- (pPci->chipType == PCI_CHIP_GAMMA2) ||
- (pPci->chipType == PCI_CHIP_DELTA)) {
+ if ((PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_GAMMA) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_GAMMA2) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_DELTA)) {
while (*checkusedPci != NULL) {
int eIndex;
/* make sure we claim all but our source device */
- if ((pPci->bus == (*checkusedPci)->bus &&
- pPci->device == (*checkusedPci)->device) &&
- pPci->func != (*checkusedPci)->func) {
+ if ((pPci->bus == PCI_DEV_BUS(*checkusedPci) &&
+ pPci->device == PCI_DEV_DEV((*checkusedPci)) &&
+ pPci->func != PCI_DEV_FUNC(*checkusedPci))) {
/* Claim other entities on the same card */
eIndex = xf86ClaimPciSlot((*checkusedPci)->bus,
@@ -799,9 +804,9 @@
xf86AddEntityToScreen(pScrn,eIndex);
} else {
ErrorF("BusID %d:%d:%d already claimed\n",
- (*checkusedPci)->bus,
- (*checkusedPci)->device,
- (*checkusedPci)->func);
+ PCI_DEV_BUS(*checkusedPci),
+ PCI_DEV_DEV(*checkusedPci),
+ PCI_DEV_FUNC(*checkusedPci));
xfree(usedChips);
return FALSE;
}
@@ -809,6 +814,7 @@
checkusedPci++;
}
}
+#endif
/* Fill in what we can of the ScrnInfoRec */
pScrn->driverVersion = GLINT_VERSION;
@@ -825,8 +831,8 @@
/* Allow sharing if Appian J2000 detected */
/* (later Diamond FireGL3000 support too) */
- if ((pPci->subsysVendor == 0x1097) &&
- (pPci->subsysCard == 0x3d32)) {
+ if ((PCI_SUB_VENDOR_ID(pPci) == 0x1097) &&
+ (PCI_SUB_DEVICE_ID(pPci) == 0x3d32)) {
xf86SetEntitySharable(usedChips[i]);
/* Allocate an entity private if necessary */
if (GLINTEntityIndex < 0)
@@ -1031,8 +1037,10 @@
if (pGlint->pEnt->location.type == BUS_PCI)
{
pGlint->PciInfo = xf86GetPciInfoForEntity(pGlint->pEnt->index);
+#ifndef XSERVER_LIBPCIACCESS
pGlint->PciTag = pciTag(pGlint->PciInfo->bus, pGlint->PciInfo->device,
pGlint->PciInfo->func);
+#endif
}
pGlint->InFifoSpace = 0; /* Force a Read of FIFO space on first run */
@@ -1046,14 +1054,14 @@
for (i = 1; i < pScrn->numEntities; i++) {
pEnt = xf86GetEntityInfo(pScrn->entityList[i]);
pPci = xf86GetPciInfoForEntity(pEnt->index);
- if ( (pPci->chipType == PCI_CHIP_MX) ||
- (pPci->chipType == PCI_CHIP_PERMEDIA) ||
- (pPci->chipType == PCI_CHIP_TI_PERMEDIA) ||
- (pPci->chipType == PCI_CHIP_500TX) ||
- (pPci->chipType == PCI_CHIP_300SX) ||
- (pPci->chipType == PCI_CHIP_R4) ||
- (pPci->chipType == PCI_CHIP_PERMEDIA3) ) {
- pGlint->MultiChip = pPci->chipType;
+ if ( (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_MX) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_PERMEDIA) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_TI_PERMEDIA) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_500TX) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_300SX) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_R4) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_PERMEDIA3) ) {
+ pGlint->MultiChip = PCI_DEV_DEVICE_ID(pPci);
if (pGlint->numMultiDevices >= GLINT_MAX_MULTI_DEVICES) {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"%d multiple chips unsupported, aborting. (Max - 2)\n",
@@ -1071,9 +1079,9 @@
EntityInfoPtr pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
pciVideoPtr pPci = xf86GetPciInfoForEntity(pEnt->index);
- if ( ((pPci->chipType == PCI_CHIP_GAMMA) ||
- (pPci->chipType == PCI_CHIP_GAMMA2) ||
- (pPci->chipType == PCI_CHIP_DELTA)) &&
+ if ( ((PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_GAMMA) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_GAMMA2) ||
+ (PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_DELTA)) &&
(pGlint->numMultiDevices == 0) ) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Gamma/Delta with ZERO connected chips, aborting\n");
@@ -1085,9 +1093,9 @@
EntityInfoPtr pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
pciVideoPtr pPci = xf86GetPciInfoForEntity(pEnt->index);
- if ((pPci->chipType != PCI_CHIP_GAMMA) &&
- (pPci->chipType != PCI_CHIP_GAMMA2) &&
- (pPci->chipType != PCI_CHIP_DELTA)) {
+ if ((PCI_DEV_DEVICE_ID(pPci) != PCI_CHIP_GAMMA) &&
+ (PCI_DEV_DEVICE_ID(pPci) != PCI_CHIP_GAMMA2) &&
+ (PCI_DEV_DEVICE_ID(pPci) != PCI_CHIP_DELTA)) {
GLINTProbeDDC(pScrn, pGlint->pEnt->index);
return TRUE;
} else
@@ -1314,8 +1322,8 @@
pGlint->Chipset);
} else {
from = X_PROBED;
- pGlint->Chipset = pGlint->PciInfo->vendor << 16 |
- pGlint->PciInfo->chipType;
+ pGlint->Chipset = PCI_DEV_VENDOR_ID(pGlint->PciInfo) << 16 |
+ PCI_DEV_DEVICE_ID(pGlint->PciInfo);
pScrn->chipset = (char *)xf86TokenToString(GLINTChipsets,
pGlint->Chipset);
}
@@ -1324,7 +1332,7 @@
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ChipRev override: %d\n",
pGlint->ChipRev);
} else {
- pGlint->ChipRev = pGlint->PciInfo->chipRev;
+ pGlint->ChipRev = PCI_DEV_REVISION(pGlint->PciInfo);
}
}
@@ -1370,7 +1378,7 @@
pGlint->FbAddress = pGlint->pEnt->device->MemBase;
from = X_CONFIG;
} else {
- pGlint->FbAddress = pGlint->PciInfo->memBase[2] & 0xFF800000;
+ pGlint->FbAddress = PCI_REGION_BASE(pGlint->PciInfo, 2, REGION_MEM) & 0xFF800000;
}
if (pGlint->FbAddress)
@@ -1380,11 +1388,11 @@
/* Trap GAMMA & DELTA specification, with no linear address */
/* Find the first GLINT chip and use that address */
if (pGlint->FbAddress == 0) {
- if (pGlint->MultiPciInfo[0]->memBase[2]) {
- pGlint->FbAddress = pGlint->MultiPciInfo[0]->memBase[2];
+ if (PCI_REGION_BASE(pGlint->MultiPciInfo[0], 2, REGION_MEM)) {
+ pGlint->FbAddress = PCI_REGION_BASE(pGlint->MultiPciInfo[0], 2, REGION_MEM);
xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
"FrameBuffer used from first rasterizer chip at 0x%lx\n",
- pGlint->MultiPciInfo[0]->memBase[2]);
+ PCI_REGION_BASE(pGlint->MultiPciInfo[0], 2, REGION_MEM));
} else {
xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
"No FrameBuffer memory - aborting\n");
@@ -1400,7 +1408,7 @@
pGlint->IOAddress = pGlint->pEnt->device->IOBase;
from = X_CONFIG;
} else {
- pGlint->IOAddress = pGlint->PciInfo->memBase[0] & 0xFFFFC000;
+ pGlint->IOAddress = PCI_REGION_BASE(pGlint->PciInfo, 0, REGION_MEM) & 0xFFFFC000;
}
if ((IS_J2000) && (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_GAMMA)) {
@@ -1484,12 +1492,9 @@
/* Delta has a bug, we need to fix it here */
{
int basecopro =
- pGlint->MultiPciInfo[0]->memBase[0] & 0xFFFFC000;
- int basedelta = pGlint->PciInfo->memBase[0] & 0xFFFFC000;
- int glintdelta = pGlint->PciTag;
- int glintcopro = pciTag(pGlint->MultiPciInfo[0]->bus,
- pGlint->MultiPciInfo[0]->device,
- pGlint->MultiPciInfo[0]->func);
+ PCI_REGION_BASE(pGlint->MultiPciInfo[0], 0, REGION_MEM) & 0xFFFFC000;
+ int basedelta = PCI_REGION_BASE(pGlint->PciInfo, 0, REGION_MEM) & 0xFFFFC000;
+ int dummy;
int base3copro, offset;
if( (basedelta & 0x20000) ^ (basecopro & 0x20000) ) {
@@ -1499,7 +1504,7 @@
} else {
offset = 0x1c; /* base3 */
}
- base3copro = pciReadLong(glintcopro, offset);
+ PCI_READ_LONG(pGlint->MultiPciInfo[0], &base3copro, offset);
if( (basecopro & 0x20000) ^ (base3copro & 0x20000) ) {
/*
* oops, still different; we know that base3
@@ -1515,25 +1520,27 @@
* read value
* write new value
*/
- (void) pciReadLong(glintdelta, 0x10);
- pciWriteLong(glintdelta, 0x10, 0xffffffff);
- (void) pciReadLong(glintdelta, 0x10);
- pciWriteLong(glintdelta, 0x10, base3copro);
+ PCI_READ_LONG(pGlint->PciInfo, &dummy, 0x10);
+ PCI_WRITE_LONG(pGlint->PciInfo, 0xffffffff, 0x10);
+ PCI_READ_LONG(pGlint->PciInfo, &dummy, 0x10);
+ PCI_WRITE_LONG(pGlint->PciInfo, base3copro, 0x10);
/*
* additionally,sometimes we see the baserom which might
* confuse the chip, so let's make sure that is disabled
*/
- (void) pciReadLong(glintcopro, 0x30);
- pciWriteLong(glintcopro, 0x30, 0xffffffff);
- (void) pciReadLong(glintcopro, 0x30);
- pciWriteLong(glintcopro, 0x30, 0);
+ PCI_READ_LONG(pGlint->MultiPciInfo[0], &dummy, 0x30);
+ PCI_WRITE_LONG(pGlint->MultiPciInfo[0], 0xffffffff, 0x30);
+ PCI_READ_LONG(pGlint->MultiPciInfo[0], &dummy, 0x30);
+ PCI_WRITE_LONG(pGlint->MultiPciInfo[0], 0, 0x30);
/*
* now update our internal structure accordingly
*/
- pGlint->IOAddress =
+ pGlint->IOAddress = base3copro;
+#ifndef XSERVER_LIBPCIACCESS
pGlint->PciInfo->memBase[0] = base3copro;
+#endif
xf86DrvMsg(pScrn->scrnIndex, from,
"Delta Bug - Changing MMIO registers to 0x%lX\n",
(unsigned long)pGlint->IOAddress);
@@ -2458,17 +2465,47 @@
* Map IO registers to virtual address space
* We always map VGA IO registers - even if we don't need them
*/
+#ifndef XSERVER_LIBPCIACCESS
pGlint->IOBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_MMIO_32BIT,
pGlint->PciTag, pGlint->IOAddress, 0x20000);
+#else
+ {
+ void** result = (void**)&pGlint->IOBase;
+ int err = pci_device_map_range(pGlint->PciInfo,
+ pGlint->IOAddress,
+ 0x20000,
+ PCI_DEV_MAP_FLAG_WRITABLE,
+ result);
+
+ if (err)
+ return FALSE;
+ }
+#endif
if (pGlint->IOBase == NULL)
return FALSE;
if (pGlint->FbMapSize != 0) {
+#ifndef XSERVER_LIBPCIACCESS
pGlint->FbBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_FRAMEBUFFER,
pGlint->PciTag,
pGlint->FbAddress,
pGlint->FbMapSize);
+#else
+ {
+ void** result = (void**)&pGlint->FbBase;
+ int err = pci_device_map_range(pGlint->PciInfo,
+ pGlint->FbAddress,
+ pGlint->FbMapSize,
+ PCI_DEV_MAP_FLAG_WRITABLE |
+ PCI_DEV_MAP_FLAG_WRITE_COMBINE,
+ result);
+
+ if (err)
+ return FALSE;
+ }
+
+#endif
if (pGlint->FbBase == NULL)
return FALSE;
}
@@ -2503,11 +2540,20 @@
/*
* Unmap IO registers to virtual address space
*/
+#ifndef XSERVER_LIBPCIACCESS
xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pGlint->IOBase, 0x20000);
+#else
+ pci_device_unmap_range(pGlint->PciInfo, pGlint->IOBase, 0x20000);
+#endif
pGlint->IOBase = NULL;
- if (pGlint->FbBase != NULL)
+ if (pGlint->FbBase != NULL) {
+#ifndef XSERVER_LIBPCIACCESS
xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pGlint->FbBase, pGlint->FbMapSize);
+#else
+ pci_device_unmap_range(pGlint->PciInfo, pGlint->FbBase, pGlint->FbMapSize);
+#endif
+ }
pGlint->FbBase = NULL;
TRACE_EXIT("GLINTUnmapMem");
@@ -2924,7 +2970,7 @@
return FALSE;
}
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
/*
* Setup DRI after visuals have been established, but before fbScreenInit
* is called. fbScreenInit will eventually call into the drivers
@@ -3153,7 +3199,7 @@
xf86DPMSInit(pScreen, (DPMSSetProcPtr)GLINTDisplayPowerManagementSet, 0);
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if (pGlint->directRenderingEnabled) {
/* Now that mi, cfb, drm and others have done their thing,
* complete the DRI setup.
@@ -3462,7 +3508,7 @@
GLINTPtr pGlint = GLINTPTR(pScrn);
TRACE_ENTER("GLINTCloseScreen");
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
if (pGlint->directRenderingEnabled) {
GLINTDRICloseScreen(pScreen);
}
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.1.1/src/glint.h new/xf86-video-glint-1.2.1/src/glint.h
--- old/xf86-video-glint-1.1.1/src/glint.h 2006-04-08 03:22:04.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/glint.h 2008-06-24 00:04:21.000000000 +0200
@@ -30,13 +30,19 @@
#ifndef _GLINT_H_
#define _GLINT_H_
+#include
+#include
+#include
+
+#include "glintpcirename.h"
+
#include "xaa.h"
#include "xf86RamDac.h"
#include "xf86cmap.h"
#include "xf86i2c.h"
#include "xf86DDC.h"
#include "xf86xv.h"
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
#include "xf86drm.h"
#include "sarea.h"
#define _XF86DRI_SERVER_
@@ -44,18 +50,15 @@
#include "GL/glxint.h"
#include "glint_dripriv.h"
#endif
-#include
-#include
-#include
#define GLINT_MAX_MULTI_DEVICES 2
#define GLINT_VERSION 4000
#define GLINT_NAME "GLINT"
#define GLINT_DRIVER_NAME "glint"
-#define GLINT_MAJOR_VERSION 1
-#define GLINT_MINOR_VERSION 1
-#define GLINT_PATCHLEVEL 1
+#define GLINT_MAJOR_VERSION PACKAGE_VERSION_MAJOR
+#define GLINT_MINOR_VERSION PACKAGE_VERSION_MINOR
+#define GLINT_PATCHLEVEL PACKAGE_VERSION_PATCHLEVEL
typedef struct {
CARD32 glintRegs[0x2000];
@@ -77,7 +80,9 @@
int numMultiDevices;
int MultiChip;
Bool MultiAperture;
+#ifndef XSERVER_LIBPCIACCESS
PCITAG PciTag;
+#endif
EntityInfoPtr pEnt;
GLINTEntPtr entityPrivate;
RamDacHelperRecPtr RamDac;
@@ -169,7 +174,7 @@
void (*VideoTimerCallback)(ScrnInfoPtr, Time);
XF86VideoAdaptorPtr adaptor;
int videoKey;
-#ifdef XF86DRI
+#ifdef XF86DRI_DEVEL
Bool directRenderingEnabled;
Bool PCIMode;
DRIInfoPtr pDRIInfo;
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.1.1/src/glintpcirename.h new/xf86-video-glint-1.2.1/src/glintpcirename.h
--- old/xf86-video-glint-1.1.1/src/glintpcirename.h 1970-01-01 01:00:00.000000000 +0100
+++ new/xf86-video-glint-1.2.1/src/glintpcirename.h 2008-06-24 00:04:21.000000000 +0200
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2007 George Sapountzis
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+/**
+ * Macros for porting drivers from legacy xfree86 PCI code to the pciaccess
+ * library. The main purpose being to facilitate source code compatibility.
+ */
+
+#ifndef SISPCIRENAME_H
+#define SISPCIRENAME_H
+
+enum region_type {
+ REGION_MEM,
+ REGION_IO
+};
+
+#ifndef XSERVER_LIBPCIACCESS
+
+/* pciVideoPtr */
+#define PCI_DEV_VENDOR_ID(_pcidev) ((_pcidev)->vendor)
+#define PCI_DEV_DEVICE_ID(_pcidev) ((_pcidev)->chipType)
+#define PCI_DEV_REVISION(_pcidev) ((_pcidev)->chipRev)
+
+#define PCI_SUB_VENDOR_ID(_pcidev) ((_pcidev)->subsysVendor)
+#define PCI_SUB_DEVICE_ID(_pcidev) ((_pcidev)->subsysCard)
+
+#define PCI_DEV_TAG(_pcidev) pciTag((_pcidev)->bus, \
+ (_pcidev)->device, \
+ (_pcidev)->func)
+#define PCI_DEV_BUS(_pcidev) ((_pcidev)->bus)
+#define PCI_DEV_DEV(_pcidev) ((_pcidev)->device)
+#define PCI_DEV_FUNC(_pcidev) ((_pcidev)->func)
+
+/* pciConfigPtr */
+#define PCI_CFG_TAG(_pcidev) (((pciConfigPtr)(_pcidev)->thisCard)->tag)
+#define PCI_CFG_BUS(_pcidev) (((pciConfigPtr)(_pcidev)->thisCard)->busnum)
+#define PCI_CFG_DEV(_pcidev) (((pciConfigPtr)(_pcidev)->thisCard)->devnum)
+#define PCI_CFG_FUNC(_pcidev) (((pciConfigPtr)(_pcidev)->thisCard)->funcnum)
+
+/* region addr: xfree86 uses different fields for memory regions and I/O ports */
+#define PCI_REGION_BASE(_pcidev, _b, _type) \
+ (((_type) == REGION_MEM) ? (_pcidev)->memBase[(_b)] \
+ : (_pcidev)->ioBase[(_b)])
+
+/* region size: xfree86 uses the log2 of the region size,
+ * but with zero meaning no region, not size of one XXX */
+#define PCI_REGION_SIZE(_pcidev, _b) \
+ (((_pcidev)->size[(_b)] > 0) ? (1 << (_pcidev)->size[(_b)]) : 0)
+
+/* read/write PCI configuration space */
+#define PCI_READ_BYTE(_pcidev, _value_ptr, _offset) \
+ *(_value_ptr) = pciReadByte(PCI_CFG_TAG(_pcidev), (_offset))
+
+#define PCI_READ_LONG(_pcidev, _value_ptr, _offset) \
+ *(_value_ptr) = pciReadLong(PCI_CFG_TAG(_pcidev), (_offset))
+
+#define PCI_WRITE_LONG(_pcidev, _value, _offset) \
+ pciWriteLong(PCI_CFG_TAG(_pcidev), (_offset), (_value))
+
+#else /* XSERVER_LIBPCIACCESS */
+
+typedef struct pci_device *pciVideoPtr;
+
+#define PCI_DEV_VENDOR_ID(_pcidev) ((_pcidev)->vendor_id)
+#define PCI_DEV_DEVICE_ID(_pcidev) ((_pcidev)->device_id)
+#define PCI_DEV_REVISION(_pcidev) ((_pcidev)->revision)
+
+#define PCI_SUB_VENDOR_ID(_pcidev) ((_pcidev)->subvendor_id)
+#define PCI_SUB_DEVICE_ID(_pcidev) ((_pcidev)->subdevice_id)
+
+/* pci-rework functions take a 'pci_device' parameter instead of a tag */
+#define PCI_DEV_TAG(_pcidev) (_pcidev)
+
+/* PCI_DEV macros, typically used in printf's, add domain ? XXX */
+#define PCI_DEV_BUS(_pcidev) ((_pcidev)->bus)
+#define PCI_DEV_DEV(_pcidev) ((_pcidev)->dev)
+#define PCI_DEV_FUNC(_pcidev) ((_pcidev)->func)
+
+/* pci-rework functions take a 'pci_device' parameter instead of a tag */
+#define PCI_CFG_TAG(_pcidev) (_pcidev)
+
+/* PCI_CFG macros, typically used in DRI init, contain the domain */
+#define PCI_CFG_BUS(_pcidev) (((_pcidev)->domain << 8) | \
+ (_pcidev)->bus)
+#define PCI_CFG_DEV(_pcidev) ((_pcidev)->dev)
+#define PCI_CFG_FUNC(_pcidev) ((_pcidev)->func)
+
+#define PCI_REGION_BASE(_pcidev, _b, _type) ((_pcidev)->regions[(_b)].base_addr)
+#define PCI_REGION_SIZE(_pcidev, _b) ((_pcidev)->regions[(_b)].size)
+
+#define PCI_READ_BYTE(_pcidev, _value_ptr, _offset) \
+ pci_device_cfg_read_u8((_pcidev), (_value_ptr), (_offset))
+
+#define PCI_READ_LONG(_pcidev, _value_ptr, _offset) \
+ pci_device_cfg_read_u32((_pcidev), (_value_ptr), (_offset))
+
+#define PCI_WRITE_LONG(_pcidev, _value, _offset) \
+ pci_device_cfg_write_u32((_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.1.1/src/glint_regs.h new/xf86-video-glint-1.2.1/src/glint_regs.h
--- old/xf86-video-glint-1.1.1/src/glint_regs.h 2004-04-23 21:33:32.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/glint_regs.h 2008-06-24 00:04:21.000000000 +0200
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h,v 1.36tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h,v 1.36 2003/01/12 03:55:47 tsi Exp $ */
/*
* glint register file
@@ -34,46 +34,46 @@
#define PCI_CHIP_3DLABS_GAMMA2 0x0E
/* The boards we know */
-#define IS_GLORIAXXL ((pGlint->PciInfo->subsysVendor == 0x1048) && \
- (pGlint->PciInfo->subsysCard == 0x0a42))
+#define IS_GLORIAXXL ((PCI_SUB_VENDOR_ID(pGlint->PciInfo) == 0x1048) && \
+ (PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x0a42))
-#define IS_GLORIASYNERGY ((pGlint->PciInfo->subsysVendor == 0x1048) && \
- (pGlint->PciInfo->subsysCard == 0x0a32))
+#define IS_GLORIASYNERGY ((PCI_SUB_VENDOR_ID(pGlint->PciInfo) == 0x1048) && \
+ (PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x0a32))
-#define IS_GMX2000 ((pGlint->PciInfo->subsysVendor == 0x3d3d) && \
- (pGlint->PciInfo->subsysCard == 0x0106))
+#define IS_GMX2000 ((PCI_SUB_VENDOR_ID(pGlint->PciInfo) == 0x3d3d) && \
+ (PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x0106))
-#define IS_J2000 ((pGlint->PciInfo->subsysVendor == 0x1097) && \
- (pGlint->PciInfo->subsysCard == 0x3d32))
+#define IS_J2000 ((PCI_SUB_VENDOR_ID(pGlint->PciInfo) == 0x1097) && \
+ (PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x3d32))
-#define IS_JPRO ((pGlint->PciInfo->subsysVendor == 0x1097) && \
- (pGlint->PciInfo->subsysCard == 0x3db3))
+#define IS_JPRO ((PCI_SUB_VENDOR_ID(pGlint->PciInfo) == 0x1097) && \
+ (PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x3db3))
/* COMPAQ OEM VX1 PCI
* subsys == 0x0121 if VGA is enabled
* subsys == 0x000a if VGA has never been enabled
*/
-#define IS_PCI_QVX1 (pGlint->PciInfo->subsysVendor == 0x3d3d && \
- ((pGlint->PciInfo->subsysCard == 0x0121) || \
- (pGlint->PciInfo->subsysCard == 0x000a)))
+#define IS_PCI_QVX1 (PCI_SUB_VENDOR_ID(pGlint->PciInfo) == 0x3d3d && \
+ ((PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x0121) || \
+ (PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x000a)))
/* COMPAQ OEM VX1 AGP
* subsys == 0x0144 if VGA is enabled
* subsys == 0x000c if VGA has never been enabled
*/
-#define IS_AGP_QVX1 (pGlint->PciInfo->subsysVendor == 0x3d3d && \
- ((pGlint->PciInfo->subsysCard == 0x0144) || \
- (pGlint->PciInfo->subsysCard == 0x000c)))
+#define IS_AGP_QVX1 (PCI_SUB_VENDOR_ID(pGlint->PciInfo) == 0x3d3d && \
+ ((PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x0144) || \
+ (PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x000c)))
#define IS_QVX1 (IS_PCI_QVX1 || IS_AGP_QVX1)
-#define IS_ELSA_SYNERGY ((pGlint->PciInfo->subsysVendor == 0x1048) && \
- (pGlint->PciInfo->subsysCard == 0x0a32))
+#define IS_ELSA_SYNERGY ((PCI_SUB_VENDOR_ID(pGlint->PciInfo) == 0x1048) && \
+ (PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x0a32))
/* COMPAQ OEM Permedia 2V with VGA disable jumper - 0x13e9 ? */
-#define IS_QPM2V ((pGlint->PciInfo->subsysVendor == 0x13e9) && \
- ((pGlint->PciInfo->subsysCard == 0x0100) || \
- (pGlint->PciInfo->subsysCard == 0x0002)))
+#define IS_QPM2V ((PCI_SUB_VENDOR_ID(pGlint->PciInfo) == 0x13e9) && \
+ ((PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x0100) || \
+ (PCI_SUB_DEVICE_ID(pGlint->PciInfo) == 0x0002)))
/**********************************************
* GLINT 500TX Configuration Region Registers *
@@ -1248,7 +1248,8 @@
#define GLINTDACDelay(x) do { \
int delay = x; \
- while(delay--){(void)GLINT_READ_REG(InFIFOSpace);}; \
+ unsigned char tmp; \
+ while(delay--){tmp = GLINT_READ_REG(InFIFOSpace);}; \
} while(0)
#define GLINT_MASK_WRITE_REG(v,m,r) \
@@ -1281,7 +1282,7 @@
} \
}
-#ifndef XF86DRI
+#ifndef XF86DRI_DEVEL
#define LOADROP(rop) \
{ \
if (pGlint->ROP != rop) { \
@@ -1306,7 +1307,7 @@
} \
}
-#ifndef XF86DRI
+#ifndef XF86DRI_DEVEL
#define DO_PLANEMASK(planemask) \
{ \
if (planemask != pGlint->planemask) { \
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.1.1/src/Makefile.am new/xf86-video-glint-1.2.1/src/Makefile.am
--- old/xf86-video-glint-1.1.1/src/Makefile.am 2005-09-27 22:53:19.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/Makefile.am 2008-06-24 00:04:21.000000000 +0200
@@ -33,6 +33,7 @@
glint_dga.c \
glint_driver.c \
glint.h \
+ glintpcirename.h \
glint_regs.h \
glint_shadow.c \
IBMramdac.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-glint-1.1.1/src/pm2_video.c new/xf86-video-glint-1.2.1/src/pm2_video.c
--- old/xf86-video-glint-1.1.1/src/pm2_video.c 2006-04-08 01:29:32.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/pm2_video.c 2008-06-24 00:04:21.000000000 +0200
@@ -41,6 +41,8 @@
#include
#include
#include
+#include
+#include
#undef MIN
#undef ABS
@@ -2767,9 +2769,9 @@
xvipc.pAPriv = pAPriv; /* Server head ID */
xvipc.op = OP_CONNECT;
- xvipc.a = pGlint->PciInfo->bus;
- xvipc.b = pGlint->PciInfo->device;
- xvipc.c = pGlint->PciInfo->func;
+ xvipc.a = PCI_DEV_BUS(pGlint->PciInfo);
+ xvipc.b = PCI_DEV_DEV(pGlint->PciInfo);
+ xvipc.c = PCI_DEV_FUNC(pGlint->PciInfo);
xvipc.d = pScrn->videoRam << 10; /* XF86Config overrides probing */
@@ -3004,8 +3006,10 @@
break;
}
- if (VideoIO)
- switch (pciReadLong(pGlint->PciTag, PCI_SUBSYSTEM_ID_REG)) {
+ if (VideoIO) {
+ unsigned int temp;
+ PCI_READ_LONG(pGlint->PciInfo, &temp, PCI_SUBSYSTEM_ID_REG);
+ switch (temp) {
case PCI_SUBSYSTEM_ID_WINNER_2000_P2A:
case PCI_SUBSYSTEM_ID_WINNER_2000_P2C:
case PCI_SUBSYSTEM_ID_GLORIA_SYNERGY_P2A:
@@ -3016,7 +3020,7 @@
xf86DrvMsgVerb(pScrn->scrnIndex, X_PROBED, 1, "No Xv vio support for this board\n");
VideoIO = FALSE;
}
-
+ }
if (pGlint->NoAccel && !VideoIO)
return;
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.1.1/src/pm3_accel.c new/xf86-video-glint-1.2.1/src/pm3_accel.c
--- old/xf86-video-glint-1.1.1/src/pm3_accel.c 2006-04-07 21:07:59.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/pm3_accel.c 2007-04-22 05:15:38.000000000 +0200
@@ -1,4 +1,4 @@
-/* $XdotOrg: driver/xf86-video-glint/src/pm3_accel.c,v 1.6 2006/04/07 19:07:59 ajax Exp $ */
+/* $XdotOrg: driver/xf86-video-glint/src/pm3_accel.c,v 1.5 2005/07/11 02:29:49 ajax Exp $ */
/*
* Copyright 2000-2001 by Sven Luther .
*
@@ -67,7 +67,7 @@
#define PM3_OTHERWRITEMASK \
(pGlint->PM3_UsingSGRAM ? PM3FBSoftwareWriteMask : PM3FBHardwareWriteMask )
-#ifndef XF86DRI
+#ifndef XF86DRI_DEVEL
#define PM3_PLANEMASK(planemask) \
{ \
if (planemask != pGlint->planemask) { \
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.1.1/src/pm3_dac.c new/xf86-video-glint-1.2.1/src/pm3_dac.c
--- old/xf86-video-glint-1.1.1/src/pm3_dac.c 2006-04-04 14:06:57.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/pm3_dac.c 2008-06-24 00:04:21.000000000 +0200
@@ -65,10 +65,24 @@
* regardless of memory configuration */
pGlint->FbMapSize = 64*1024*1024;
+#ifndef XSERVER_LIBPCIACCESS
/* Mark as VIDMEM_MMIO to avoid write-combining while detecting memory */
pGlint->FbBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_MMIO,
pGlint->PciTag, pGlint->FbAddress, pGlint->FbMapSize);
+#else
+ {
+ void** result = (void**)&pGlint->FbBase;
+ int err = pci_device_map_range(pGlint->PciInfo,
+ pGlint->FbAddress,
+ pGlint->FbMapSize,
+ PCI_DEV_MAP_FLAG_WRITABLE,
+ result);
+
+ if (err)
+ return FALSE;
+ }
+#endif
if (pGlint->FbBase == NULL)
return 0;
@@ -119,8 +133,12 @@
GLINT_SLOW_WRITE_REG(temp, PM3MemBypassWriteMask);
+#ifndef XSERVER_LIBPCIACCESS
xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pGlint->FbBase,
pGlint->FbMapSize);
+#else
+ pci_device_unmap_range(pGlint->PciInfo, pGlint->FbBase, pGlint->FbMapSize);
+#endif
pGlint->FbBase = NULL;
pGlint->FbMapSize = 0;
@@ -466,10 +484,8 @@
if (pGlint->MultiAperture) {
STOREREG(GMultGLINTAperture, pGlint->realWidth);
- STOREREG(GMultGLINT1,
- pGlint->MultiPciInfo[0]->memBase[2] & 0xFF800000);
- STOREREG(GMultGLINT2,
- pGlint->MultiPciInfo[1]->memBase[2] & 0xFF800000);
+ STOREREG(GMultGLINT1, PCI_REGION_BASE(pGlint->MultiPciInfo[0], 2, REGION_MEM) & 0xFF800000);
+ STOREREG(GMultGLINT2, PCI_REGION_BASE(pGlint->MultiPciInfo[1], 2, REGION_MEM) & 0xFF800000);
}
STOREREG(PM3MemBypassWriteMask, 0xffffffff);
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.1.1/src/pm3_regs.h new/xf86-video-glint-1.2.1/src/pm3_regs.h
--- old/xf86-video-glint-1.1.1/src/pm3_regs.h 2004-04-23 21:33:33.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/pm3_regs.h 2007-04-22 05:15:38.000000000 +0200
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/pm3_regs.h,v 1.9tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/pm3_regs.h,v 1.10 2003/01/12 03:55:47 tsi Exp $ */
/*
* glint register file
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.1.1/src/tx_accel.c new/xf86-video-glint-1.2.1/src/tx_accel.c
--- old/xf86-video-glint-1.1.1/src/tx_accel.c 2006-04-04 14:06:57.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/tx_accel.c 2007-04-22 05:15:38.000000000 +0200
@@ -296,7 +296,7 @@
){
GLINTPtr pGlint = GLINTPTR(pScrn);
-#ifndef XF86DRI
+#ifndef XF86DRI_DEVEL
if (w != pGlint->startxsub) {
GLINT_WRITE_REG(w<<16, StartXSub);
pGlint->startxsub = w;
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.1.1/src/tx_dac.c new/xf86-video-glint-1.2.1/src/tx_dac.c
--- old/xf86-video-glint-1.1.1/src/tx_dac.c 2006-04-04 14:06:57.000000000 +0200
+++ new/xf86-video-glint-1.2.1/src/tx_dac.c 2008-06-24 00:04:21.000000000 +0200
@@ -69,10 +69,8 @@
* as incorrect scanline interleaving when software rendering.
*/
STOREREG(GMultGLINTAperture, pGlint->realWidth);
- STOREREG(GMultGLINT1,
- pGlint->MultiPciInfo[0]->memBase[2] & 0xFF800000);
- STOREREG(GMultGLINT2,
- pGlint->MultiPciInfo[1]->memBase[2] & 0xFF800000);
+ STOREREG(GMultGLINT1, PCI_REGION_BASE(pGlint->MultiPciInfo[0], 2, REGION_MEM) & 0xFF800000);
+ STOREREG(GMultGLINT2, PCI_REGION_BASE(pGlint->MultiPciInfo[1], 2, REGION_MEM) & 0xFF800000);
}
if (IS_GMX2000 || IS_GLORIAXXL) {
++++++ xf86-video-intel-2.3.2.diff ++++++
commit 55678c64bc6e3ed613ea6db14c105c18a0cf28ce
Author: Dave Airlie
Date: Tue Jul 1 18:51:18 2008 +1000
intel: fix drm check.
The -mm check is broken now that 2.3.1 is out.. make it 2.4.0, to be fixed
with GEM etc.
diff --git a/configure.ac b/configure.ac
index af87299..2dabd4f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -201,7 +201,7 @@ if test "$DRI" = yes; then
PKG_CHECK_MODULES(DRI, [libdrm xf86driproto glproto])
AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
- PKG_CHECK_MODULES(DRI_MM, [libdrm >= 2.3.1],[DRI_MM=yes], [DRI_MM=no])
+ PKG_CHECK_MODULES(DRI_MM, [libdrm >= 2.4.0],[DRI_MM=yes], [DRI_MM=no])
if test "x$DRI_MM" = xyes; then
AC_DEFINE(XF86DRI_MM,1,[Extended DRI memory management])
fi
++++++ xf86-video-mga-1.4.8.tar.bz2 -> xf86-video-mga-1.4.9.tar.bz2 ++++++
++++ 4106 lines of diff (skipped)
++++++ xf86-video-nv-2.1.9.tar.bz2 -> xf86-video-nv-2.1.10.tar.bz2 ++++++
++++ 2247 lines of diff (skipped)
++++++ xf86-video-vesa-1.3.0.tar.bz2 -> xf86-video-vesa-2.0.0.tar.bz2 ++++++
++++ 22279 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-1.3.0/config.h.in new/xf86-video-vesa-2.0.0/config.h.in
--- old/xf86-video-vesa-1.3.0/config.h.in 2006-11-30 22:05:46.000000000 +0100
+++ new/xf86-video-vesa-2.0.0/config.h.in 2008-07-01 19:41:41.000000000 +0200
@@ -50,6 +50,15 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
+/* Major version of this package */
+#undef PACKAGE_VERSION_MAJOR
+
+/* Minor version of this package */
+#undef PACKAGE_VERSION_MINOR
+
+/* Patch version of this package */
+#undef PACKAGE_VERSION_PATCHLEVEL
+
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
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-1.3.0/configure.ac new/xf86-video-vesa-2.0.0/configure.ac
--- old/xf86-video-vesa-1.3.0/configure.ac 2006-11-30 22:04:10.000000000 +0100
+++ new/xf86-video-vesa-2.0.0/configure.ac 2008-07-01 19:40:40.000000000 +0200
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-vesa],
- 1.3.0,
+ 2.0.0,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-vesa)
@@ -56,6 +56,18 @@
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(XSERVER_LIBPCIACCESS,
+ [XSERVER_LIBPCIACCESS=yes], [XSERVER_LIBPCIACCESS=no],
+ [#include "xorg-server.h"])
+CFLAGS="$save_CFLAGS"
+
+if test "x$XSERVER_LIBPCIACCESS" = xyes; then
+ PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.10])
+fi
+AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+
CFLAGS="$CFLAGS $XORG_CFLAGS "' -I$(top_srcdir)/src'
INCLUDES="$XORG_INCS -I${sdkdir} "'-I$(top_srcdir)/src -I$(prefix)/include'
AC_SUBST([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-vesa-1.3.0/COPYING new/xf86-video-vesa-2.0.0/COPYING
--- old/xf86-video-vesa-1.3.0/COPYING 2006-11-30 22:02:14.000000000 +0100
+++ new/xf86-video-vesa-2.0.0/COPYING 2008-03-19 15:31:25.000000000 +0100
@@ -1,12 +1,24 @@
-This is a stub file. This package has not yet had its complete licensing
-information compiled. Please see the individual source files for details on
-your rights to use and modify this software.
+Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com)
-Please submit updated COPYING files to the Xorg bugzilla:
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
-https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+CONECTIVA LINUX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
-All licensing questions regarding this software should be directed at the
-Xorg mailing list:
-
-http://lists.freedesktop.org/mailman/listinfo/xorg
+Except as contained in this notice, the name of Conectiva Linux shall
+not be used in advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization from
+Conectiva Linux.
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-1.3.0/man/Makefile.am new/xf86-video-vesa-2.0.0/man/Makefile.am
--- old/xf86-video-vesa-1.3.0/man/Makefile.am 2006-11-30 22:02:14.000000000 +0100
+++ new/xf86-video-vesa-2.0.0/man/Makefile.am 2008-03-19 15:31:25.000000000 +0100
@@ -1,4 +1,3 @@
-# $Id$
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#
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-1.3.0/missing new/xf86-video-vesa-2.0.0/missing
--- old/xf86-video-vesa-1.3.0/missing 2006-11-30 22:05:48.000000000 +0100
+++ new/xf86-video-vesa-2.0.0/missing 2008-06-12 17:36:46.000000000 +0200
@@ -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 , 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-vesa-1.3.0/src/vesa.c new/xf86-video-vesa-2.0.0/src/vesa.c
--- old/xf86-video-vesa-1.3.0/src/vesa.c 2006-11-30 22:03:07.000000000 +0100
+++ new/xf86-video-vesa-2.0.0/src/vesa.c 2008-07-01 19:40:04.000000000 +0200
@@ -1,6 +1,7 @@
#define DEBUG_VERB 2
/*
* Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com)
+ * Copyright 2008 Red Hat, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -27,8 +28,7 @@
*
* Authors: Paulo César Pereira de Andrade
* David Dawes
- *
- * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vesa/vesa.c,v 1.40 2003/11/03 05:11:45 tsi Exp $
+ * Adam Jackson
*/
#ifdef HAVE_CONFIG_H
@@ -48,6 +48,7 @@
/* Colormap handling */
#include "micmap.h"
#include "xf86cmap.h"
+#include "xf86Modes.h"
/* DPMS */
#define DPMS_SERVER
@@ -57,6 +58,10 @@
static const OptionInfoRec * VESAAvailableOptions(int chipid, int busid);
static void VESAIdentify(int flags);
static Bool VESAProbe(DriverPtr drv, int flags);
+#ifdef XSERVER_LIBPCIACCESS
+static Bool VESAPciProbe(DriverPtr drv, int entity_num,
+ struct pci_device *dev, intptr_t match_data);
+#endif
static Bool VESAPreInit(ScrnInfoPtr pScrn, int flags);
static Bool VESAScreenInit(int Index, ScreenPtr pScreen, int argc,
char **argv);
@@ -70,6 +75,7 @@
static void VESAAdjustFrame(int scrnIndex, int x, int y, int flags);
static void VESAFreeScreen(int scrnIndex, int flags);
static void VESAFreeRec(ScrnInfoPtr pScrn);
+static VESAPtr VESAGetRec(ScrnInfoPtr pScrn);
static void
VESADisplayPowerManagementSet(ScrnInfoPtr pScrn, int mode,
@@ -96,28 +102,22 @@
static Bool VESADGAInit(ScrnInfoPtr pScrn, ScreenPtr pScreen);
-/*
- * This contains the functions needed by the server after loading the
- * driver module. It must be supplied, and gets added the driver list by
- * the Module Setup funtion in the dynamic case. In the static case a
- * reference to this is compiled in, and this requires that the name of
- * this DriverRec be an upper-case version of the driver name.
- */
-_X_EXPORT DriverRec VESA = {
- VESA_VERSION,
- VESA_DRIVER_NAME,
- VESAIdentify,
- VESAProbe,
- VESAAvailableOptions,
- NULL,
- 0
-};
-
enum GenericTypes
{
CHIP_VESA_GENERIC
};
+#ifdef XSERVER_LIBPCIACCESS
+static const struct pci_id_match vesa_device_match[] = {
+ {
+ PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY,
+ 0x00030000, 0x00ffffff, CHIP_VESA_GENERIC
+ },
+
+ { 0, 0, 0 },
+};
+#endif
+
/* Supported chipsets */
static SymTabRec VESAChipsets[] =
{
@@ -135,6 +135,31 @@
{-1, 0 }
};
+
+/*
+ * This contains the functions needed by the server after loading the
+ * driver module. It must be supplied, and gets added the driver list by
+ * the Module Setup funtion in the dynamic case. In the static case a
+ * reference to this is compiled in, and this requires that the name of
+ * this DriverRec be an upper-case version of the driver name.
+ */
+_X_EXPORT DriverRec VESA = {
+ VESA_VERSION,
+ VESA_DRIVER_NAME,
+ VESAIdentify,
+ VESAProbe,
+ VESAAvailableOptions,
+ NULL,
+ 0,
+ NULL,
+
+#ifdef XSERVER_LIBPCIACCESS
+ vesa_device_match,
+ VESAPciProbe
+#endif
+};
+
+
typedef enum {
OPTION_SHADOW_FB,
OPTION_DFLT_REFRESH,
@@ -149,69 +174,7 @@
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
-/*
- * List of symbols from other modules that this module references. This
- * list is used to tell the loader that it is OK for symbols here to be
- * unresolved providing that it hasn't been told that they haven't been
- * told that they are essential via a call to xf86LoaderReqSymbols() or
- * xf86LoaderReqSymLists(). The purpose is this is to avoid warnings about
- * unresolved symbols that are not required.
- */
-#ifdef XFree86LOADER
-static const char *miscfbSymbols[] = {
- "xf1bppScreenInit",
- "xf4bppScreenInit",
-#ifdef USE_AFB
- "afbScreenInit",
-#endif
- "mfbScreenInit",
- NULL
-};
-#endif
-
-static const char *fbSymbols[] = {
- "fbPictureInit",
- "fbScreenInit",
- NULL
-};
-
-static const char *shadowSymbols[] = {
- "shadowInit",
- "shadowUpdatePackedWeak",
- "shadowUpdatePlanar4Weak",
- "shadowUpdatePlanar4x8Weak",
- NULL
-};
-
-static const char *vbeSymbols[] = {
- "VBEBankSwitch",
- "VBEExtendedInit",
- "VBEFindSupportedDepths",
- "VBEGetModeInfo",
- "VBEGetVBEInfo",
- "VBEGetVBEMode",
- "VBEPrintModes",
- "VBESaveRestore",
- "VBESetDisplayStart",
- "VBESetGetDACPaletteFormat",
- "VBESetGetLogicalScanlineLength",
- "VBESetGetPaletteData",
- "VBESetModeNames",
- "VBESetModeParameters",
- "VBESetVBEMode",
- "VBEValidateModes",
- "vbeDoEDID",
- "vbeFree",
- NULL
-};
-
#ifdef XFree86LOADER
-static const char *ddcSymbols[] = {
- "xf86PrintEDID",
- "xf86SetDDCproperties",
- NULL
-};
-
/* Module loader interface */
static MODULESETUPPROTO(vesaSetup);
@@ -244,13 +207,7 @@
if (!Initialised)
{
Initialised = TRUE;
- xf86AddDriver(&VESA, Module, 0);
- LoaderRefSymLists(miscfbSymbols,
- fbSymbols,
- shadowSymbols,
- vbeSymbols,
- ddcSymbols,
- NULL);
+ xf86AddDriver(&VESA, Module, 1);
return (pointer)TRUE;
}
@@ -273,11 +230,170 @@
xf86PrintChipsets(VESA_NAME, "driver for VESA chipsets", VESAChipsets);
}
+static VESAPtr
+VESAGetRec(ScrnInfoPtr pScrn)
+{
+ if (!pScrn->driverPrivate)
+ pScrn->driverPrivate = xcalloc(sizeof(VESARec), 1);
+
+ return ((VESAPtr)pScrn->driverPrivate);
+}
+
+/* Only a little like VBESetModeParameters */
+static void
+VESASetModeParameters(vbeInfoPtr pVbe, DisplayModePtr vbemode,
+ DisplayModePtr ddcmode)
+{
+ VbeModeInfoData *data;
+ int clock;
+
+ data = (VbeModeInfoData *)vbemode->Private;
+
+ data->block = xcalloc(sizeof(VbeCRTCInfoBlock), 1);
+ data->block->HorizontalTotal = ddcmode->HTotal;
+ data->block->HorizontalSyncStart = ddcmode->HSyncStart;
+ data->block->HorizontalSyncEnd = ddcmode->HSyncEnd;
+ data->block->VerticalTotal = ddcmode->VTotal;
+ data->block->VerticalSyncStart = ddcmode->VSyncStart;
+ data->block->VerticalSyncEnd = ddcmode->VSyncEnd;
+ data->block->Flags = ((ddcmode->Flags & V_NHSYNC) ? CRTC_NHSYNC : 0) |
+ ((ddcmode->Flags & V_NVSYNC) ? CRTC_NVSYNC : 0);
+ data->block->PixelClock = ddcmode->Clock * 1000;
+
+ /* ask the BIOS to figure out the real clock */
+ clock = VBEGetPixelClock(pVbe, data->mode, data->block->PixelClock);
+ if (clock)
+ data->block->PixelClock = clock;
+
+ data->mode |= (1 << 11);
+ data->block->RefreshRate = 100 * ((double)(data->block->PixelClock) /
+ (double)(ddcmode->HTotal * ddcmode->VTotal));
+}
+
+static ModeStatus
+VESAValidMode(int scrn, DisplayModePtr p, Bool flag, int pass)
+{
+ static int warned = 0;
+ int found = 0;
+ ScrnInfoPtr pScrn = xf86Screens[scrn];
+ VESAPtr pVesa = VESAGetRec(pScrn);
+ MonPtr mon = pScrn->monitor;
+ ModeStatus ret;
+ DisplayModePtr mode;
+ float v;
+
+ pVesa = VESAGetRec(pScrn);
+
+ if (pass != MODECHECK_FINAL) {
+ if (!warned) {
+ xf86DrvMsg(scrn, X_WARNING, "VESAValidMode called unexpectedly\n");
+ warned = 1;
+ }
+ return MODE_OK;
+ }
+
+ /*
+ * This is suboptimal. We pass in just the barest description of a mode
+ * we can get away with to VBEValidateModes, so it can't really throw
+ * out anything we give it. But we need to filter the list so that we
+ * don't populate the mode list with things the monitor can't do.
+ *
+ * So first off, if this isn't a mode we handed to the server (ie,
+ * M_T_BUILTIN), then we know we can't do it.
+ */
+ if (!(p->type & M_T_BUILTIN))
+ return MODE_NOMODE;
+
+ if (pVesa->strict_validation) {
+ /*
+ * If it's our first pass at mode validation, we'll try for a strict
+ * intersection between the VBE and DDC mode lists.
+ */
+ if (pScrn->monitor->DDC) {
+ for (mode = pScrn->monitor->Modes; mode; mode = mode->next) {
+ if (mode->type & M_T_DRIVER &&
+ mode->HDisplay == p->HDisplay &&
+ mode->VDisplay == p->VDisplay) {
+ if (xf86CheckModeForMonitor(mode, mon) == MODE_OK) {
+ found = 1;
+ break;
+ }
+ }
+ if (mode == pScrn->monitor->Last)
+ break;
+ }
+ if (!found)
+ return MODE_NOMODE;
+
+ /* having found a matching mode, stash the CRTC values aside */
+ VESASetModeParameters(pVesa->pVbe, p, mode);
+ return MODE_OK;
+ }
+
+ /* No DDC and no modes make Homer something something... */
+ return MODE_NOMODE;
+ }
+
+ /*
+ * Finally, walk through the vsync rates 1Hz at a time looking for a mode
+ * that will fit. This is assuredly a terrible way to do this, but
+ * there's no obvious method for computing a mode of a given size that
+ * will pass xf86CheckModeForMonitor. XXX this path is terrible, but
+ * then, by this point, you're well into despair territory.
+ */
+ for (v = mon->vrefresh[0].lo; v <= mon->vrefresh[0].hi; v++) {
+ mode = xf86GTFMode(p->HDisplay, p->VDisplay, v, 0, 0);
+ ret = xf86CheckModeForMonitor(mode, mon);
+ xfree(mode);
+ if (ret == MODE_OK)
+ break;
+ }
+
+ return ret;
+}
+
+static void
+VESAInitScrn(ScrnInfoPtr pScrn)
+{
+ pScrn->driverVersion = VESA_VERSION;
+ pScrn->driverName = VESA_DRIVER_NAME;
+ pScrn->name = VESA_NAME;
+ pScrn->Probe = VESAProbe;
+ pScrn->PreInit = VESAPreInit;
+ pScrn->ScreenInit = VESAScreenInit;
+ pScrn->SwitchMode = VESASwitchMode;
+ pScrn->ValidMode = VESAValidMode;
+ pScrn->AdjustFrame = VESAAdjustFrame;
+ pScrn->EnterVT = VESAEnterVT;
+ pScrn->LeaveVT = VESALeaveVT;
+ pScrn->FreeScreen = VESAFreeScreen;
+}
+
/*
* This function is called once, at the start of the first server generation to
* do a minimal probe for supported hardware.
*/
+#ifdef XSERVER_LIBPCIACCESS
+static Bool
+VESAPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev,
+ intptr_t match_data)
+{
+ ScrnInfoPtr pScrn;
+
+ pScrn = xf86ConfigPciEntity(NULL, 0, entity_num, NULL,
+ NULL, NULL, NULL, NULL, NULL);
+ if (pScrn != NULL) {
+ VESAPtr pVesa = VESAGetRec(pScrn);
+
+ VESAInitScrn(pScrn);
+ pVesa->pciInfo = dev;
+ }
+
+ return (pScrn != NULL);
+}
+#endif
+
static Bool
VESAProbe(DriverPtr drv, int flags)
{
@@ -295,6 +411,7 @@
&devSections)) <= 0)
return (FALSE);
+#ifndef XSERVER_LIBPCIACCESS
/* PCI BUS */
if (xf86GetPciVideoInfo()) {
numUsed = xf86MatchPciInstances(VESA_NAME, PCI_VENDOR_GENERIC,
@@ -311,17 +428,7 @@
if ((pScrn = xf86ConfigPciEntity(pScrn,0,usedChips[i],
VESAPCIchipsets,NULL,
NULL,NULL,NULL,NULL))) {
- pScrn->driverVersion = VESA_VERSION;
- pScrn->driverName = VESA_DRIVER_NAME;
- pScrn->name = VESA_NAME;
- pScrn->Probe = VESAProbe;
- pScrn->PreInit = VESAPreInit;
- pScrn->ScreenInit = VESAScreenInit;
- pScrn->SwitchMode = VESASwitchMode;
- pScrn->AdjustFrame = VESAAdjustFrame;
- pScrn->EnterVT = VESAEnterVT;
- pScrn->LeaveVT = VESALeaveVT;
- pScrn->FreeScreen = VESAFreeScreen;
+ VESAInitScrn(pScrn);
foundScreen = TRUE;
}
}
@@ -329,6 +436,7 @@
xfree(usedChips);
}
}
+#endif
/* Isa Bus */
numUsed = xf86MatchIsaInstances(VESA_NAME,VESAChipsets,
@@ -343,18 +451,7 @@
if ((pScrn = xf86ConfigIsaEntity(pScrn, 0,usedChips[i],
VESAISAchipsets, NULL,
NULL, NULL, NULL, NULL))) {
-
- pScrn->driverVersion = VESA_VERSION;
- pScrn->driverName = VESA_DRIVER_NAME;
- pScrn->name = VESA_NAME;
- pScrn->Probe = VESAProbe;
- pScrn->PreInit = VESAPreInit;
- pScrn->ScreenInit = VESAScreenInit;
- pScrn->SwitchMode = VESASwitchMode;
- pScrn->AdjustFrame = VESAAdjustFrame;
- pScrn->EnterVT = VESAEnterVT;
- pScrn->LeaveVT = VESALeaveVT;
- pScrn->FreeScreen = VESAFreeScreen;
+ VESAInitScrn(pScrn);
foundScreen = TRUE;
}
}
@@ -391,15 +488,6 @@
return (int)CHIP_VESA_GENERIC;
}
-static VESAPtr
-VESAGetRec(ScrnInfoPtr pScrn)
-{
- if (!pScrn->driverPrivate)
- pScrn->driverPrivate = xcalloc(sizeof(VESARec), 1);
-
- return ((VESAPtr)pScrn->driverPrivate);
-}
-
static void
VESAFreeRec(ScrnInfoPtr pScrn)
{
@@ -445,14 +533,13 @@
VbeInfoBlock *vbe;
DisplayModePtr pMode;
VbeModeInfoBlock *mode;
- char *mod = NULL;
- const char *reqSym = NULL;
Gamma gzeros = {0.0, 0.0, 0.0};
rgb rzeros = {0, 0, 0};
pointer pDDCModule;
int i;
int flags24 = 0;
int defaultDepth = 0;
+ int defaultBpp = 0;
int depths = 0;
if (flags & PROBE_DETECT)
@@ -460,36 +547,23 @@
pVesa = VESAGetRec(pScrn);
pVesa->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
- pVesa->device = xf86GetDevFromEntity(pScrn->entityList[0],
- pScrn->entityInstanceList[0]);
-
-#if 0
- /* Load vgahw module */
- if (!xf86LoadSubModule(pScrn, "vgahw"))
- return (FALSE);
-
- xf86LoaderReqSymLists(vgahwSymbols, NULL);
-#endif
/* Load vbe module */
if (!xf86LoadSubModule(pScrn, "vbe"))
return (FALSE);
- xf86LoaderReqSymLists(vbeSymbols, NULL);
-
if ((pVesa->pVbe = VBEExtendedInit(NULL, pVesa->pEnt->index,
SET_BIOS_SCRATCH
| RESTORE_BIOS_SCRATCH)) == NULL)
return (FALSE);
+#ifndef XSERVER_LIBPCIACCESS
if (pVesa->pEnt->location.type == BUS_PCI) {
pVesa->pciInfo = xf86GetPciInfoForEntity(pVesa->pEnt->index);
pVesa->pciTag = pciTag(pVesa->pciInfo->bus, pVesa->pciInfo->device,
pVesa->pciInfo->func);
- pVesa->primary = xf86IsPrimaryPci(pVesa->pciInfo);
}
- else
- pVesa->primary = TRUE;
+#endif
pScrn->chipset = "vesa";
pScrn->monitor = pScrn->confScreen->monitor;
@@ -510,31 +584,29 @@
V_MODETYPE_VBE);
/* Preferred order for default depth selection. */
- if (depths & V_DEPTH_16)
+ if (depths & V_DEPTH_24)
+ defaultDepth = 24;
+ else if (depths & V_DEPTH_16)
defaultDepth = 16;
else if (depths & V_DEPTH_15)
defaultDepth = 15;
else if (depths & V_DEPTH_8)
defaultDepth = 8;
- else if (depths & V_DEPTH_24)
- defaultDepth = 24;
else if (depths & V_DEPTH_4)
defaultDepth = 4;
else if (depths & V_DEPTH_1)
defaultDepth = 1;
- /*
- * Setting this avoids a "Driver can't support depth 24" message,
- * which could be misleading.
- */
- if (!flags24)
- flags24 = Support24bppFb;
+ if (defaultDepth == 24 && !(flags24 & Support32bppFb))
+ defaultBpp = 24;
- /* Prefer 24bpp for fb since it potentially allows larger modes. */
+ /* Prefer 32bpp because 1999 called and wants its packed pixels back */
+ if (flags24 & Support32bppFb)
+ flags24 |= SupportConvert24to32 | PreferConvert24to32;
if (flags24 & Support24bppFb)
- flags24 |= SupportConvert32to24 | PreferConvert32to24;
+ flags24 |= SupportConvert32to24;
- if (!xf86SetDepthBpp(pScrn, defaultDepth, 0, 0, flags24)) {
+ if (!xf86SetDepthBpp(pScrn, defaultDepth, 0, defaultBpp, flags24)) {
vbeFree(pVesa->pVbe);
return (FALSE);
}
@@ -595,6 +667,7 @@
VBESetModeNames(pScrn->modePool);
+ pVesa->strict_validation = TRUE;
i = VBEValidateModes(pScrn, NULL, pScrn->display->modes,
NULL, NULL, 0, 2048, 1, 0, 2048,
pScrn->display->virtualX,
@@ -602,6 +675,20 @@
pVesa->mapSize, LOOKUP_BEST_REFRESH);
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;
+ 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);
+ }
+
+ if (i <= 0) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes\n");
vbeFree(pVesa->pVbe);
return (FALSE);
@@ -648,55 +735,18 @@
if (xf86ReturnOptValBool(pVesa->Options, OPTION_DFLT_REFRESH, FALSE))
pVesa->defaultRefresh = TRUE;
+ pVesa->ModeSetClearScreen = FALSE;
if (xf86ReturnOptValBool(pVesa->Options, OPTION_MODESET_CLEAR_SCREEN,
- TRUE))
+ FALSE))
pVesa->ModeSetClearScreen = TRUE;
- if (!pVesa->defaultRefresh)
+ if (!pVesa->defaultRefresh && !pVesa->strict_validation)
VBESetModeParameters(pScrn, pVesa->pVbe);
mode = ((VbeModeInfoData*)pScrn->modes->Private)->data;
switch (mode->MemoryModel) {
- case 0x0: /* Text mode */
- case 0x1: /* CGA graphics */
- case 0x2: /* Hercules graphics */
- case 0x5: /* Non-chain 4, 256 color */
- case 0x7: /* YUV */
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Unsupported Memory Model: %d", mode->MemoryModel);
- break;
- case 0x3: /* Planar */
- if (pVesa->shadowFB) {
- mod = "fb";
- pScrn->bitmapBitOrder = BITMAP_BIT_ORDER;
-
- xf86LoaderReqSymbols("fbPictureInit", NULL);
- }
- else {
- switch (pScrn->bitsPerPixel) {
- case 1:
- mod = "xf1bpp";
- reqSym = "xf1bppScreenInit";
- break;
- case 4:
- mod = "xf4bpp";
- reqSym = "xf4bppScreenInit";
- break;
- default:
-#ifdef USE_AFB
- mod = "afb";
- reqSym = "afbScreenInit";
- break;
-#else
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Unsupported bpp: %d", pScrn->bitsPerPixel);
-#endif
- }
- }
- break;
case 0x4: /* Packed pixel */
- case 0x6: /* Direct Color */
- mod = "fb";
+ case 0x6: /* Direct Color */
pScrn->bitmapBitOrder = BITMAP_BIT_ORDER;
switch (pScrn->bitsPerPixel) {
@@ -712,35 +762,26 @@
return FALSE;
}
break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Unsupported Memory Model: %d", mode->MemoryModel);
+ return FALSE;
}
if (pVesa->shadowFB) {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Using \"Shadow Framebuffer\"\n");
- if (pScrn->depth == 1) {
- mod = "mfb";
- reqSym = "mfbScreenInit";
- }
if (!xf86LoadSubModule(pScrn, "shadow")) {
vbeFree(pVesa->pVbe);
return (FALSE);
}
- xf86LoaderReqSymLists(shadowSymbols, NULL);
}
- if (mod && xf86LoadSubModule(pScrn, mod) == NULL) {
+ if (xf86LoadSubModule(pScrn, "fb") == NULL) {
VESAFreeRec(pScrn);
vbeFree(pVesa->pVbe);
return (FALSE);
}
- if (mod) {
- if (reqSym) {
- xf86LoaderReqSymbols(reqSym, NULL);
- } else {
- xf86LoaderReqSymLists(fbSymbols, NULL);
- }
- }
-
vbeFree(pVesa->pVbe);
return (TRUE);
@@ -763,6 +804,16 @@
return ret;
}
+static void
+vesaEnableDisableFBAccess(int scrnIndex, Bool enable)
+{
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ VESAPtr pVesa = VESAGetRec(pScrn);
+
+ pVesa->accessEnabled = enable;
+ pVesa->EnableDisableFBAccess(scrnIndex, enable);
+}
+
static Bool
VESAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
{
@@ -850,42 +901,8 @@
mode = ((VbeModeInfoData*)pScrn->modes->Private)->data;
switch (mode->MemoryModel) {
- case 0x0: /* Text mode */
- case 0x1: /* CGA graphics */
- case 0x2: /* Hercules graphics */
- case 0x5: /* Non-chain 4, 256 color */
- case 0x7: /* YUV */
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Unsupported Memory Model: %d", mode->MemoryModel);
- return (FALSE);
- case 0x3: /* Planar */
- switch (pScrn->bitsPerPixel) {
- case 1:
- if (!xf1bppScreenInit(pScreen, pVesa->base,
- pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi,
- pScrn->displayWidth))
- return (FALSE);
- break;
- case 4:
- if (!xf4bppScreenInit(pScreen, pVesa->base,
- pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi,
- pScrn->displayWidth))
- return (FALSE);
- break;
- default:
-#ifdef USE_AFB
- if (!afbScreenInit(pScreen, pVesa->base,
- pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth))
-#endif
- return (FALSE);
- break;
- }
- break;
case 0x4: /* Packed pixel */
- case 0x6: /* Direct Color */
+ case 0x6: /* Direct Color */
switch (pScrn->bitsPerPixel) {
case 8:
case 16:
@@ -905,6 +922,10 @@
return (FALSE);
}
break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Unsupported Memory Model: %d", mode->MemoryModel);
+ return (FALSE);
}
@@ -928,14 +949,7 @@
fbPictureInit(pScreen, 0, 0);
if (pVesa->shadowFB) {
- if (mode->MemoryModel == 3) { /* Planar */
- if (pScrn->bitsPerPixel == 8)
- pVesa->update = shadowUpdatePlanar4x8Weak();
- else
- pVesa->update = shadowUpdatePlanar4Weak();
- pVesa->window = VESAWindowPlanar;
- }
- else if (pVesa->mapPhys == 0xa0000) { /* Windowed */
+ if (pVesa->mapPhys == 0xa0000) { /* Windowed */
pVesa->update = shadowUpdatePackedWeak();
pVesa->window = VESAWindowWindowed;
}
@@ -949,7 +963,7 @@
pVesa->CreateScreenResources = pScreen->CreateScreenResources;
pScreen->CreateScreenResources = vesaCreateScreenResources;
}
- else if (pVesa->mapPhys == 0xa0000 && mode->MemoryModel != 0x3) {
+ else if (pVesa->mapPhys == 0xa0000) {
unsigned int bankShift = 0;
while ((unsigned)(64 >> bankShift) != mode->WinGranularity)
bankShift++;
@@ -988,6 +1002,10 @@
VESALoadPalette, NULL, flags))
return (FALSE);
+ pVesa->accessEnabled = TRUE;
+ pVesa->EnableDisableFBAccess = pScrn->EnableDisableFBAccess;
+ pScrn->EnableDisableFBAccess = vesaEnableDisableFBAccess;
+
pVesa->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = VESACloseScreen;
pScreen->SaveScreen = VESASaveScreen;
@@ -1040,6 +1058,7 @@
}
pScrn->vtSema = FALSE;
+ pScrn->EnableDisableFBAccess = pVesa->EnableDisableFBAccess;
pScreen->CreateScreenResources = pVesa->CreateScreenResources;
pScreen->CloseScreen = pVesa->CloseScreen;
return pScreen->CloseScreen(scrnIndex, pScreen);
@@ -1050,12 +1069,12 @@
{
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
VESAPtr pVesa = VESAGetRec(pScrn);
- Bool ret;
+ Bool ret, disableAccess = pVesa->ModeSetClearScreen && pVesa->accessEnabled;
- if (pVesa->ModeSetClearScreen)
+ if (disableAccess)
pScrn->EnableDisableFBAccess(scrnIndex,FALSE);
ret = VESASetMode(xf86Screens[scrnIndex], pMode);
- if (pVesa->ModeSetClearScreen)
+ if (disableAccess)
pScrn->EnableDisableFBAccess(scrnIndex,TRUE);
return ret;
}
@@ -1071,7 +1090,9 @@
pVesa = VESAGetRec(pScrn);
data = (VbeModeInfoData*)pMode->Private;
- mode = data->mode | ( pVesa->ModeSetClearScreen ? (1U << 15) : 0);
+
+ /* careful, setting the bit means don't clear the screen */
+ mode = data->mode | (pVesa->ModeSetClearScreen ? 0 : (1U << 15));
/* enable linear addressing */
if (pVesa->mapPhys != 0xa0000)
@@ -1103,7 +1124,7 @@
VBESetLogicalScanline(pVesa->pVbe, pScrn->displayWidth);
if (pScrn->bitsPerPixel == 8 && pVesa->vbeInfo->Capabilities[0] & 0x01 &&
- !(data->data->MemoryModel & 0x6 || data->data->MemoryModel & 0x7))
+ !(data->data->MemoryModel == 0x6 || data->data->MemoryModel == 0x7))
VBESetGetDACPaletteFormat(pVesa->pVbe, 8);
pScrn->vtSema = TRUE;
@@ -1136,6 +1157,28 @@
pScrn->memPhysBase = pVesa->mapPhys;
pScrn->fbOffset = pVesa->mapOff;
+#ifdef XSERVER_LIBPCIACCESS
+ if ((pVesa->mapPhys != 0xa0000) && (pVesa->pciInfo != NULL)) {
+ (void) pci_device_map_range(pVesa->pciInfo, pScrn->memPhysBase,
+ pVesa->mapSize,
+ (PCI_DEV_MAP_FLAG_WRITABLE
+ | PCI_DEV_MAP_FLAG_WRITE_COMBINE),
+ & pVesa->base);
+ }
+ else
+ pVesa->base = xf86MapDomainMemory(pScrn->scrnIndex, 0, pVesa->pciInfo,
+ pScrn->memPhysBase, pVesa->mapSize);
+
+ if (pVesa->base) {
+ if (pVesa->mapPhys != 0xa0000)
+ pVesa->VGAbase = xf86MapDomainMemory(pScrn->scrnIndex, 0,
+ pVesa->pciInfo,
+ 0xa0000, 0x10000);
+ else
+ pVesa->VGAbase = pVesa->base;
+
+ }
+#else
if (pVesa->mapPhys != 0xa0000 && pVesa->pEnt->location.type == BUS_PCI)
pVesa->base = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_FRAMEBUFFER,
pVesa->pciTag, pScrn->memPhysBase,
@@ -1152,6 +1195,7 @@
else
pVesa->VGAbase = pVesa->base;
}
+#endif
pVesa->ioBase = pScrn->domainIOBase;
@@ -1171,9 +1215,20 @@
if (pVesa->base == NULL)
return;
+#ifdef XSERVER_LIBPCIACCESS
+ if (pVesa->mapPhys != 0xa0000) {
+ (void) pci_device_unmap_range(pVesa->pciInfo, pVesa->base,
+ pVesa->mapSize);
+ xf86UnMapVidMem(pScrn->scrnIndex, pVesa->VGAbase, 0x10000);
+ }
+ else {
+ xf86UnMapVidMem(pScrn->scrnIndex, pVesa->base, pVesa->mapSize);
+ }
+#else
xf86UnMapVidMem(pScrn->scrnIndex, pVesa->base, pVesa->mapSize);
if (pVesa->mapPhys != 0xa0000)
xf86UnMapVidMem(pScrn->scrnIndex, pVesa->VGAbase, 0x10000);
+#endif
pVesa->base = NULL;
}
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-1.3.0/src/vesa.h new/xf86-video-vesa-2.0.0/src/vesa.h
--- old/xf86-video-vesa-1.3.0/src/vesa.h 2006-11-30 22:04:02.000000000 +0100
+++ new/xf86-video-vesa-2.0.0/src/vesa.h 2008-07-01 19:23:12.000000000 +0200
@@ -69,16 +69,12 @@
#include "xf86Resources.h"
#include "xf86RAC.h"
-#include "xf1bpp.h"
-#include "xf4bpp.h"
#include "fb.h"
-#ifdef USE_AFB
-#include "afb.h"
+#ifdef XSERVER_LIBPCIACCESS
+#include
#endif
-#include "mfb.h"
-
#define VESA_VERSION 4000
#define VESA_NAME "VESA"
#define VESA_DRIVER_NAME "vesa"
@@ -94,9 +90,12 @@
EntityInfoPtr pEnt;
CARD16 major, minor;
VbeInfoBlock *vbeInfo;
- GDevPtr device;
+#ifdef XSERVER_LIBPCIACCESS
+ struct pci_device *pciInfo;
+#else
pciVideoPtr pciInfo;
PCITAG pciTag;
+#endif
miBankInfoRec bank;
int curBank, bankSwitchWindowB;
CARD16 maxBytesPerScanline;
@@ -108,7 +107,7 @@
CARD32 *pal, *savedPal;
CARD8 *fonts;
xf86MonPtr monitor;
- Bool shadowFB, primary;
+ Bool shadowFB, strict_validation;
CARD32 windowAoffset;
/* Don't override the default refresh rate. */
Bool defaultRefresh;
@@ -117,6 +116,8 @@
int nDGAMode;
CloseScreenProcPtr CloseScreen;
CreateScreenResourcesProcPtr CreateScreenResources;
+ xf86EnableDisableFBAccessProc *EnableDisableFBAccess;
+ Bool accessEnabled;
OptionInfoPtr Options;
IOADDRESS ioBase;
Bool ModeSetClearScreen;
++++++ xf86-video-xgixp-7945371.tar.bz2 -> xf86-video-xgixp-1.7.99.3.tar.bz2 ++++++
++++ 91184 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org